status-desktop/storybook/pages/ProfileFetchingViewPage.qml

118 lines
4.0 KiB
QML

import QtQuick 2.14
import QtQuick.Controls 2.14
import AppLayouts.Onboarding.views 1.0
import AppLayouts.Onboarding.stores 1.0
import Storybook 1.0
import utils 1.0
SplitView {
Logs { id: logs }
SplitView {
orientation: Qt.Vertical
SplitView.fillWidth: true
ProfileFetchingView {
SplitView.fillWidth: true
SplitView.fillHeight: true
startupStore: StartupStore {
id: startupStore
property QtObject currentStartupState: QtObject {
property string stateType
}
property ListModel fetchingDataModel: ListModel {
Component.onCompleted: append([
{
entity: Constants.onboarding.profileFetching.entity.profile,
loadedMessages: 0,
totalMessages: 0,
icon: "profile"
},
{
entity: Constants.onboarding.profileFetching.entity.contacts,
loadedMessages: 0,
totalMessages: 0,
icon: "contact-book"
},
{
entity: Constants.onboarding.profileFetching.entity.communities,
loadedMessages: 0,
totalMessages: 0,
icon: "communities"
},
{
entity: Constants.onboarding.profileFetching.entity.settings,
loadedMessages: 0,
totalMessages: 0,
icon: "settings"
}])
}
function doPrimaryAction() {
logs.logEvent("StartupStore::doPrimaryAction")
}
function doSecondaryAction() {
logs.logEvent("StartupStore::doSecondaryAction")
}
function doTertiaryAction() {
logs.logEvent("StartupStore::doTertiaryAction")
}
}
}
LogsAndControlsPanel {
id: logsAndControlsPanel
SplitView.minimumHeight: 100
SplitView.preferredHeight: 200
logsView.logText: logs.logText
}
}
Pane {
SplitView.minimumWidth: 300
SplitView.preferredWidth: 300
ProfileFetchingModelEditor {
anchors.fill: parent
model: startupStore.fetchingDataModel
onStateChanged: {
if (state === Constants.startupState.profileFetching) {
for(let i = 0; i < startupStore.fetchingDataModel.rowCount(); i++) {
startupStore.fetchingDataModel.setProperty(i, "totalMessages", 0)
startupStore.fetchingDataModel.setProperty(i, "loadedMessages", 0)
}
}
else if (state === Constants.startupState.profileFetchingSuccess) {
for(let i = 0; i < startupStore.fetchingDataModel.rowCount(); i++) {
let n = Math.ceil(Math.random() * 10) + 1
startupStore.fetchingDataModel.setProperty(i, "totalMessages", n)
startupStore.fetchingDataModel.setProperty(i, "loadedMessages", n)
}
}
else if (state === Constants.startupState.profileFetchingTimeout) {
for(let i = 0; i < startupStore.fetchingDataModel.rowCount(); i++) {
let n = Math.ceil(Math.random() * 5)
startupStore.fetchingDataModel.setProperty(i, "totalMessages", n + 5)
startupStore.fetchingDataModel.setProperty(i, "loadedMessages", n)
}
}
startupStore.currentStartupState.stateType = state
}
}
}
}
// category: Views