status-desktop/storybook/pages/ManageHiddenPanelPage.qml
Michał Cieślak 2e29e847ac chore(WalletSettings): Use DoubleFlickable for assets/collectibles tabs in manage tokens
It provides visual alignments to the current design and also
significantly improves performance because ListView components
are not "unrolled" causing instantiation of too many delegates.

Closes: #12703
Closes: #13043
2024-01-31 13:51:00 +01:00

130 lines
3.7 KiB
QML

import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15
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"
}
ManageTokensController {
id: collectiblesController
sourceModel: ctrlEmptyModel.checked ? null : renamedModel
settingsKey: "WalletCollectibles"
}
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