2024-02-12 16:56:59 +00:00
|
|
|
import QtQuick 2.15
|
|
|
|
import QtQuick.Layouts 1.15
|
|
|
|
import QtQuick.Controls 2.15
|
2023-03-20 12:29:05 +00:00
|
|
|
|
|
|
|
import StatusQ.Core 0.1
|
|
|
|
import StatusQ.Core.Utils 0.1 as CoreUtils
|
|
|
|
|
|
|
|
import mainui 1.0
|
|
|
|
import AppLayouts.Profile.panels 1.0
|
2023-10-23 11:36:33 +00:00
|
|
|
import shared.stores 1.0
|
2023-03-20 12:29:05 +00:00
|
|
|
|
|
|
|
import utils 1.0
|
|
|
|
|
|
|
|
import Storybook 1.0
|
|
|
|
import Models 1.0
|
|
|
|
|
2024-02-09 13:31:36 +00:00
|
|
|
import StatusQ 0.1
|
|
|
|
|
2023-03-20 12:29:05 +00:00
|
|
|
SplitView {
|
|
|
|
id: root
|
|
|
|
|
|
|
|
Logs { id: logs }
|
|
|
|
|
|
|
|
orientation: Qt.Vertical
|
|
|
|
|
|
|
|
Popups {
|
|
|
|
popupParent: root
|
|
|
|
rootStore: QtObject {}
|
2023-10-23 11:36:33 +00:00
|
|
|
communityTokensStore: CommunityTokensStore {}
|
2023-03-20 12:29:05 +00:00
|
|
|
}
|
|
|
|
|
2024-02-15 17:26:05 +00:00
|
|
|
ListModel {
|
|
|
|
id: emptyModel
|
|
|
|
}
|
|
|
|
|
2023-03-20 12:29:05 +00:00
|
|
|
ListModel {
|
|
|
|
id: collectiblesModel
|
2023-11-09 14:24:05 +00:00
|
|
|
|
2023-03-20 12:29:05 +00:00
|
|
|
readonly property var data: [
|
|
|
|
{
|
2023-07-17 23:56:40 +00:00
|
|
|
uid: "123",
|
2023-03-20 12:29:05 +00:00
|
|
|
name: "SNT",
|
|
|
|
collectionName: "Super Nitro Toluen (with pink bg)",
|
|
|
|
backgroundColor: "pink",
|
|
|
|
imageUrl: ModelsData.collectibles.custom,
|
2024-02-09 13:31:36 +00:00
|
|
|
isLoading: false,
|
|
|
|
communityId: "ddls"
|
2023-03-20 12:29:05 +00:00
|
|
|
},
|
|
|
|
{
|
2023-07-17 23:56:40 +00:00
|
|
|
uid: "34545656768",
|
2023-03-20 12:29:05 +00:00
|
|
|
name: "Kitty 1",
|
|
|
|
collectionName: "Kitties",
|
|
|
|
backgroundColor: "",
|
|
|
|
imageUrl: ModelsData.collectibles.kitty1Big,
|
|
|
|
isLoading: false
|
|
|
|
},
|
|
|
|
{
|
2023-07-17 23:56:40 +00:00
|
|
|
uid: "123456",
|
2023-03-20 12:29:05 +00:00
|
|
|
name: "Kitty 2",
|
|
|
|
collectionName: "",
|
|
|
|
backgroundColor: "",
|
|
|
|
imageUrl: ModelsData.collectibles.kitty2Big,
|
2024-02-09 13:31:36 +00:00
|
|
|
isLoading: false,
|
|
|
|
communityId: "sox"
|
2023-03-20 12:29:05 +00:00
|
|
|
},
|
|
|
|
{
|
2023-07-17 23:56:40 +00:00
|
|
|
uid: "12345645459537432",
|
2023-03-20 12:29:05 +00:00
|
|
|
name: "",
|
|
|
|
collectionName: "Super Kitties",
|
|
|
|
backgroundColor: "oink",
|
|
|
|
imageUrl: ModelsData.collectibles.kitty3Big,
|
2024-02-09 13:31:36 +00:00
|
|
|
isLoading: false,
|
|
|
|
communityId: "ast"
|
2023-03-20 12:29:05 +00:00
|
|
|
},
|
|
|
|
{
|
2023-07-17 23:56:40 +00:00
|
|
|
uid: "691",
|
2023-03-20 12:29:05 +00:00
|
|
|
name: "KILLABEAR",
|
|
|
|
collectionName: "KILLABEARS",
|
|
|
|
backgroundColor: "#807c56",
|
|
|
|
imageUrl: "https://assets.killabears.com/content/killabears/img/691-e81f892696a8ae700e0dbc62eb072060679a2046d1ef5eb2671bdb1fad1f68e3.png",
|
|
|
|
isLoading: true
|
|
|
|
},
|
|
|
|
{
|
2023-07-17 23:56:40 +00:00
|
|
|
uid: "8876",
|
2023-03-20 12:29:05 +00:00
|
|
|
name: "AIORBIT",
|
|
|
|
description: "",
|
|
|
|
collectionName: "AIORBIT (Animated SVG)",
|
|
|
|
backgroundColor: "",
|
|
|
|
imageUrl: "https://dl.openseauserdata.com/cache/originImage/files/8b14ef530b28853445c27d6693c4e805.svg",
|
|
|
|
isLoading: false
|
|
|
|
}
|
|
|
|
]
|
|
|
|
Component.onCompleted: append(data)
|
|
|
|
}
|
|
|
|
|
2024-02-09 13:31:36 +00:00
|
|
|
ListModel {
|
|
|
|
id: communityModel
|
|
|
|
|
|
|
|
readonly property var data: [
|
2024-02-12 16:56:59 +00:00
|
|
|
{
|
|
|
|
communityId: "ddls",
|
|
|
|
communityName: "Doodles",
|
|
|
|
communityImage: ModelsData.collectibles.doodles
|
|
|
|
},
|
|
|
|
{
|
|
|
|
communityId: "sox",
|
|
|
|
communityName: "Socks",
|
|
|
|
communityImage: ModelsData.icons.socks
|
|
|
|
},
|
|
|
|
{
|
|
|
|
communityId: "ast",
|
|
|
|
communityName: "Astafarians",
|
|
|
|
communityImage: ModelsData.icons.dribble
|
|
|
|
}
|
|
|
|
]
|
2024-02-09 13:31:36 +00:00
|
|
|
Component.onCompleted: append(data)
|
|
|
|
}
|
|
|
|
|
|
|
|
LeftJoinModel {
|
|
|
|
id: leftJoinModel
|
|
|
|
|
|
|
|
leftModel: collectiblesModel
|
|
|
|
rightModel: communityModel
|
|
|
|
|
|
|
|
joinRole: "communityId"
|
|
|
|
}
|
|
|
|
|
2023-11-09 14:24:05 +00:00
|
|
|
ListModel {
|
|
|
|
id: inShowcaseCollectiblesModel
|
|
|
|
|
2024-02-15 17:26:05 +00:00
|
|
|
property int hiddenCount: emptyModelChecker.checked ? 0 : collectiblesModel.count - count
|
|
|
|
|
2023-11-09 14:24:05 +00:00
|
|
|
signal baseModelFilterConditionsMayHaveChanged()
|
|
|
|
|
|
|
|
function setVisibilityByIndex(index, visibility) {
|
|
|
|
if (visibility === Constants.ShowcaseVisibility.NoOne) {
|
|
|
|
remove(index)
|
|
|
|
} else {
|
2024-02-09 13:31:36 +00:00
|
|
|
get(index).showcaseVisibility = visibility
|
2023-11-09 14:24:05 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function setVisibility(uid, visibility) {
|
|
|
|
for (let i = 0; i < count; ++i) {
|
|
|
|
if (get(i).uid === uid) {
|
|
|
|
setVisibilityByIndex(i, visibility)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function hasItemInShowcase(uid) {
|
|
|
|
for (let i = 0; i < count; ++i) {
|
|
|
|
if (get(i).uid === uid) {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
|
|
|
function upsertItemJson(item) {
|
|
|
|
append(JSON.parse(item))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-03-20 12:29:05 +00:00
|
|
|
StatusScrollView { // wrapped in a ScrollView on purpose; to simulate SettingsContentBase.qml
|
|
|
|
SplitView.fillWidth: true
|
|
|
|
SplitView.preferredHeight: 500
|
|
|
|
ProfileShowcaseCollectiblesPanel {
|
|
|
|
id: showcasePanel
|
|
|
|
width: 500
|
2024-02-15 17:26:05 +00:00
|
|
|
baseModel: emptyModelChecker.checked ? emptyModel : leftJoinModel
|
2023-11-09 14:24:05 +00:00
|
|
|
showcaseModel: inShowcaseCollectiblesModel
|
2024-02-12 16:56:59 +00:00
|
|
|
addAccountsButtonVisible: !hasAllAccountsChecker.checked
|
|
|
|
|
|
|
|
onNavigateToAccountsTab: logs.logEvent("ProfileShowcaseCollectiblesPanel::onNavigateToAccountsTab")
|
2023-03-20 12:29:05 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
LogsAndControlsPanel {
|
|
|
|
id: logsAndControlsPanel
|
|
|
|
|
|
|
|
SplitView.minimumHeight: 100
|
|
|
|
SplitView.preferredHeight: 200
|
|
|
|
|
|
|
|
logsView.logText: logs.logText
|
|
|
|
|
2024-02-12 16:56:59 +00:00
|
|
|
ColumnLayout {
|
|
|
|
Button {
|
|
|
|
text: "Reset (clear settings)"
|
|
|
|
|
|
|
|
onClicked: showcasePanel.settings.reset()
|
|
|
|
}
|
|
|
|
|
|
|
|
CheckBox {
|
|
|
|
id: hasAllAccountsChecker
|
|
|
|
|
|
|
|
text: "Has the user already shared all of their accounts"
|
|
|
|
checked: true
|
|
|
|
}
|
|
|
|
|
2024-02-15 17:26:05 +00:00
|
|
|
CheckBox {
|
|
|
|
id: emptyModelChecker
|
|
|
|
|
|
|
|
text: "Empty model"
|
|
|
|
checked: false
|
|
|
|
|
|
|
|
onClicked: showcasePanel.reset()
|
|
|
|
}
|
|
|
|
|
2023-03-20 12:29:05 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-07-31 12:21:14 +00:00
|
|
|
|
|
|
|
// category: Panels
|
2023-10-03 11:56:30 +00:00
|
|
|
|
|
|
|
// https://www.figma.com/file/idUoxN7OIW2Jpp3PMJ1Rl8/%E2%9A%99%EF%B8%8F-Settings-%7C-Desktop?node-id=14609-235560&t=RkXAEv3G6mp3EUvl-0
|
|
|
|
// https://www.figma.com/file/idUoxN7OIW2Jpp3PMJ1Rl8/%E2%9A%99%EF%B8%8F-Settings-%7C-Desktop?node-id=14729-235696&t=RkXAEv3G6mp3EUvl-0
|
|
|
|
// https://www.figma.com/file/idUoxN7OIW2Jpp3PMJ1Rl8/%E2%9A%99%EF%B8%8F-Settings-%7C-Desktop?node-id=14729-237604&t=RkXAEv3G6mp3EUvl-0
|
2024-02-12 16:56:59 +00:00
|
|
|
// https://www.figma.com/file/ibJOTPlNtIxESwS96vJb06/%F0%9F%91%A4-Profile-%7C-Desktop?type=design&node-id=2460%3A37407&mode=design&t=IMh6iN4JPD7OQbJI-1
|