status-desktop/storybook/pages/ManageCollectiblesPanelPage.qml
Stefan b9271005cd fix(wallet): update wallet assets and collectibles order on user action
Add a specific state to the saveSettings action to update the model
by reloading the data.

The previous implementation was using the same save address which
doesn't update. Either in the past there was a side effect that made it
work or it was never working.

Closes #14365
2024-04-12 11:30:15 +02:00

101 lines
2.4 KiB
QML

import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15
import StatusQ 0.1
import StatusQ.Models 0.1
import StatusQ.Core 0.1
import AppLayouts.Wallet.panels 1.0
import utils 1.0
import Storybook 1.0
import Models 1.0
SplitView {
id: root
Logs { id: logs }
orientation: Qt.Horizontal
ManageCollectiblesModel {
id: collectiblesModel
}
RolesRenamingModel {
id: renamedModel
sourceModel: ctrlEmptyModel.checked ? null : collectiblesModel
mapping: [
RoleRename {
from: "uid"
to: "symbol"
}
]
}
ManageCollectiblesPanel {
id: showcasePanel
SplitView.fillWidth: true
SplitView.fillHeight: true
controller: ManageTokensController {
sourceModel: renamedModel
settingsKey: "WalletCollectibles"
serializeAsCollectibles: true
onRequestSaveSettings: (jsonData) => saveToQSettings(jsonData)
onRequestLoadSettings: loadFromQSettings()
onRequestClearSettings: clearQSettings()
}
}
LogsAndControlsPanel {
id: logsAndControlsPanel
SplitView.minimumWidth: 150
SplitView.preferredWidth: 250
logsView.logText: logs.logText
ColumnLayout {
Label {
Layout.fillWidth: true
text: "Dirty: %1 (rev %2)".arg(showcasePanel.dirty ? "true" : "false").arg(showcasePanel.controller.revision)
}
Label {
Layout.fillWidth: true
text: "Has saved settings: %1".arg(showcasePanel.hasSettings ? "true" : "false")
}
Button {
enabled: showcasePanel.dirty
text: "Save"
onClicked: showcasePanel.saveSettings(false /* update */)
}
Button {
text: "Revert"
onClicked: showcasePanel.revert()
}
Button {
enabled: showcasePanel.hasSettings
text: "Clear settings"
onClicked: showcasePanel.clearSettings()
}
Switch {
id: ctrlEmptyModel
text: "Empty model"
}
}
}
}
// category: Panels
// https://www.figma.com/file/eM26pyHZUeAwMLviaS1KJn/%E2%9A%99%EF%B8%8F-Wallet-Settings%3A-Manage-Tokens