status-desktop/ui/app/AppLayouts/Wallet/CollectiblesTab.qml

78 lines
2.4 KiB
QML

import QtQuick 2.13
import QtGraphicalEffects 1.13
import "../../../imports"
import "../../../shared"
import "./components/collectiblesComponents"
import "./components/collectiblesComponents/collectiblesData.js" as CollectiblesData
Item {
id: root
StyledText {
id: noCollectiblesText
color: Style.current.secondaryText
//% "Collectibles will appear here"
text: qsTrId("collectibles-will-appear-here")
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
font.pixelSize: 15
}
CollectiblesModal {
id: collectiblesModalComponent
}
function checkCollectiblesVisibility() {
// Show the collectibles section only if at least one of the sub-items is visible
// Sub-items are visible only if they are loading or have more than zero collectible
let showCollectibles = false
let currentItem
for (let i = 0; i < collectiblesRepeater.count; i++) {
currentItem = collectiblesRepeater.itemAt(i)
if (currentItem && currentItem.active) {
showCollectibles = true
break
}
}
noCollectiblesText.visible = !showCollectibles
collectiblesSection.visible = showCollectibles
}
Column {
id: collectiblesSection
spacing: Style.current.halfPadding
anchors.fill: parent
Repeater {
id: collectiblesRepeater
model: walletModel.collectiblesLists
CollectiblesContainer {
property var collectibleData: CollectiblesData.collectiblesData[model.collectibleType]
collectibleName: collectibleData.collectibleName
collectibleIconSource: "../../img/collectibles/" + collectibleData.collectibleIconSource
collectiblesModal: collectiblesModalComponent
buttonText: collectibleData.buttonText
getLink: collectibleData.getLink
onActiveChanged: {
checkCollectiblesVisibility()
}
}
}
}
Connections {
target: walletModel.collectiblesLists
onDataChanged: {
checkCollectiblesVisibility()
}
}
}
/*##^##
Designer {
D{i:0;autoSize:true;formeditorColor:"#ffffff";height:480;width:640}
}
##^##*/