status-desktop/storybook/pages/ManageHiddenPanelPage.qml
Stefan d3f037f93b fix(wallet): hidden groups are still loading from user local settings
Removed loading hidden groups from local settings and instead reload
them from the externally loaded settings.
Also move the local saving code from the controller to external,
therefore now it is implemented in storybook

Updates #14365
2024-04-14 10:59:08 +02:00

172 lines
5.0 KiB
QML

import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15
import Qt.labs.settings 1.0
import StatusQ 0.1
import StatusQ.Core 0.1
import StatusQ.Models 0.1
import AppLayouts.Wallet.panels 1.0
import AppLayouts.Wallet.stores 1.0
import utils 1.0
import Storybook 1.0
import Models 1.0
SplitView {
id: root
Logs { id: logs }
orientation: Qt.Horizontal
readonly property WalletAssetsStore walletAssetStore: WalletAssetsStore {
assetsWithFilteredBalances: groupedAccountsAssetsModel
}
ManageCollectiblesModel {
id: collectiblesModel
}
RolesRenamingModel {
id: renamedModel
sourceModel: collectiblesModel
mapping: [
RoleRename {
from: "uid"
to: "symbol"
}
]
}
ManageTokensController {
id: assetsController
sourceModel: ctrlEmptyModel.checked ? null : walletAssetStore.groupedAccountAssetsModel
settingsKey: "WalletAssets"
serializeAsCollectibles: false
onRequestSaveSettings: (jsonData) => {
savingStarted()
assetsSettingsStore.setValue(settingsKey, jsonData)
savingFinished()
}
onRequestLoadSettings: {
loadingStarted()
const jsonData = assetsSettingsStore.value(settingsKey, null)
loadingFinished(jsonData)
}
onRequestClearSettings: {
assetsSettingsStore.setValue(settingsKey, null)
}
}
Settings {
id: assetsSettingsStore
category: "ManageTokens-" + assetsController.settingsKey
}
ManageTokensController {
id: collectiblesController
sourceModel: ctrlEmptyModel.checked ? null : renamedModel
settingsKey: "WalletCollectibles"
serializeAsCollectibles: true
onRequestSaveSettings: (jsonData) => {
savingStarted()
collectiblesSettingsStore.setValue(settingsKey, jsonData)
savingFinished()
}
onRequestLoadSettings: {
loadingStarted()
const jsonData = collectiblesSettingsStore.value(settingsKey, null)
loadingFinished(jsonData)
}
onRequestClearSettings: {
collectiblesSettingsStore.setValue(settingsKey, null)
}
}
Settings {
id: collectiblesSettingsStore
category: "ManageTokens-" + collectiblesController.settingsKey
}
ManageHiddenPanel {
id: showcasePanel
SplitView.fillWidth: true
SplitView.fillHeight: true
assetsController: assetsController
collectiblesController: collectiblesController
getCurrencyAmount: function (balance, symbol) {
return ({
amount: balance,
symbol: symbol,
displayDecimals: 2,
stripTrailingZeroes: false
})
}
getCurrentCurrencyAmount: function (balance) {
return ({
amount: balance,
symbol: "USD",
displayDecimals: 2,
stripTrailingZeroes: false
})
}
}
LogsAndControlsPanel {
id: logsAndControlsPanel
SplitView.minimumWidth: 150
SplitView.preferredWidth: 250
logsView.logText: logs.logText
ColumnLayout {
Label {
Layout.fillWidth: true
text: "Has saved settings: %1".arg(showcasePanel.hasSettings ? "true" : "false")
}
Button {
enabled: showcasePanel.hasSettings
text: "Clear settings"
onClicked: showcasePanel.clearSettings()
}
Switch {
id: ctrlEmptyModel
text: "Empty model"
}
Label {
text: "Hidden community groups:"
}
Label {
text: assetsController.hiddenCommunityGroups.concat(collectiblesController.hiddenCommunityGroups).join()
}
Label {
text: "Hidden collection groups:"
}
Label {
text: assetsController.hiddenCollectionGroups.concat(collectiblesController.hiddenCollectionGroups).join()
}
}
}
}
// category: Panels
// https://www.figma.com/file/eM26pyHZUeAwMLviaS1KJn/%E2%9A%99%EF%B8%8F-Wallet-Settings%3A-Manage-Tokens?type=design&node-id=12-126364&mode=design&t=ZqKtOXpYtpReg4oL-0
// https://www.figma.com/file/eM26pyHZUeAwMLviaS1KJn/%E2%9A%99%EF%B8%8F-Wallet-Settings%3A-Manage-Tokens?type=design&node-id=40-127902&mode=design&t=ZqKtOXpYtpReg4oL-0
// https://www.figma.com/file/eM26pyHZUeAwMLviaS1KJn/%E2%9A%99%EF%B8%8F-Wallet-Settings%3A-Manage-Tokens?type=design&node-id=577-130046&mode=design&t=ZqKtOXpYtpReg4oL-0
// https://www.figma.com/file/eM26pyHZUeAwMLviaS1KJn/%E2%9A%99%EF%B8%8F-Wallet-Settings%3A-Manage-Tokens?type=design&node-id=577-151896&mode=design&t=ZqKtOXpYtpReg4oL-0