status-desktop/ui/app/AppLayouts/Chat/views/communities/CommunityMintedTokensView.qml

107 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 selfDestruct,
int chainId,
string chainName,
string chainIcon,
string accountName)
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
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,
model.accountName)
}
}
}
}