status-desktop/ui/app/AppLayouts/Chat/views/communities/CommunityMintedTokensView.qml
Michal Iskierko 1c53d1e9b9 fix(@desktop/communities): Chain details (name, icon) are taken from model.
Introduce TokenItem struct.
TokenModel keeps TokenItems.
TokenItem keeps CommunityTokenDto and chain details.
Chain details are taken from networks service.

Fix #9867
2023-03-16 11:46:39 +01:00

105 lines
3.1 KiB
QML

import QtQuick 2.0
import QtQuick.Layouts 1.14
import StatusQ.Core 0.1
import StatusQ.Components 0.1
import StatusQ.Core.Theme 0.1
import utils 1.0
import AppLayouts.Wallet.views.collectibles 1.0
StatusScrollView {
id: root
property int viewWidth: 560 // by design
property var model
signal itemClicked(int deployState,
string name,
string artworkSource,
string symbol,
string description,
int supply,
bool infiniteSupply,
bool transferable,
bool remoteSelfDestruct,
int chainId,
string chainName,
string chainIcon)
enum DeployState {
Failed,
InProgress,
Deployed
}
QtObject {
id: d
function getStateText(deployState) {
if(deployState === CommunityMintedTokensView.DeployState.Failed) {
return qsTr("Failed")
}
if(deployState === CommunityMintedTokensView.DeployState.InProgress) {
return qsTr("Minting...")
}
return ""
}
}
contentWidth: mainLayout.width
contentHeight: mainLayout.height
padding: 0
ColumnLayout {
id: mainLayout
width: root.viewWidth
spacing: Style.current.padding
StatusBaseText {
text: qsTr("Collectibles")
font.pixelSize: Theme.primaryTextFontSize
color: Theme.palette.baseColor1
}
StatusGridView {
id: gridView
Layout.fillWidth: true
Layout.preferredHeight: 500 // TODO
model: root.model
cellHeight: 229
cellWidth: 176
delegate: CollectibleView {
height: gridView.cellHeight
width: gridView.cellWidth
title: model.name ? model.name : "..."
subTitle: d.getStateText(model.deployState)
imageUrl: model.image ? model.image : ""
backgroundColor: model.backgroundColor ? model.backgroundColor : "transparent" // TODO BACKEND
isLoading: false// model.isLoading // TODO BACKEND
navigationIconVisible: true
onClicked: root.itemClicked(model.deployState,
model.name,
model.image,
model.symbol,
model.description,
model.supply,
model.infiniteSupply,
model.transferable,
model.remoteSelfDestruct,
model.chainId,
model.chainName,
model.chainIcon)
}
}
}
}