status-desktop/storybook/pages/CommunitiesPortalLayoutPage...

94 lines
2.9 KiB
QML

import QtQuick 2.14
import QtQuick.Controls 2.14
import AppLayouts.CommunitiesPortal 1.0
import AppLayouts.CommunitiesPortal.stores 1.0
import SortFilterProxyModel 0.2
import Storybook 1.0
import utils 1.0
SplitView {
Logs { id: logs }
SplitView {
orientation: Qt.Vertical
SplitView.fillWidth: true
CommunitiesPortalLayout {
SplitView.fillWidth: true
SplitView.fillHeight: true
communitiesStore: CommunitiesStore {
readonly property string locale: ""
readonly property int unreadNotificationsCount: 42
readonly property string communityTags:
JSON.stringify({"Activism":"✊","Art":"🎨","Blockchain":"🔗","Books & blogs":"📚","Career":"💼"})
readonly property var curatedCommunitiesModel: SortFilterProxyModel {
sourceModel: CommunitiesPortalDummyModel { id: mockedModel }
filters: IndexFilter {
inverted: true
minimumIndex: Math.floor(slider.value)
}
}
function setActiveCommunity() {
logs.logEvent("CommunitiesStore::setActiveCommunity", ["communityId"], arguments)
}
}
// TODO: onCompleted handler and localAccountSensitiveSettings are here to allow opening
// "Import Community" and "Create New Community" popups. However those popups shouldn't
// be tightly coupled with `CommunitiesPortalLayout` so it should be refactored in the next step.
// Pressing buttons "Import using key" and "Create new community" should only request for opening
// dialogs, and in Storybook it should be logged in the same way as calls to stores.
// Mentioned popups should have their own pages in the Storybook.
Component.onCompleted: {
Global.appMain = this
}
QtObject {
id: localAccountSensitiveSettings
readonly property bool isDiscordImportToolEnabled: false
}
}
LogsAndControlsPanel {
id: logsAndControlsPanel
SplitView.minimumHeight: 100
SplitView.preferredHeight: 200
logsView.logText: logs.logText
Row {
Label {
anchors.verticalCenter: parent.verticalCenter
text: "number of communities:"
}
Slider {
id: slider
value: 9
from: 0
to: 9
}
}
}
}
Pane {
SplitView.minimumWidth: 300
SplitView.preferredWidth: 300
CommunitiesPortalModelEditor {
anchors.fill: parent
model: mockedModel
}
}
}