status-desktop/storybook/pages/ActivityNotificationCommuni...

183 lines
5.4 KiB
QML

import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import Qt.labs.settings 1.0
import StatusQ.Core.Theme 0.1
import mainui.activitycenter.views 1.0
import mainui.activitycenter.stores 1.0
import AppLayouts.Chat.stores 1.0 as ChatStores
import utils 1.0
import Storybook 1.0
SplitView {
id: root
property bool utilsReady: false
orientation: Qt.Vertical
Logs { id: logs }
Item {
id: wrapper
SplitView.fillHeight: true
SplitView.fillWidth: true
Loader {
active: root.utilsReady
anchors.centerIn: parent
width: parent.width - 50
height: 80
sourceComponent : ActivityNotificationCommunityMembershipRequest {
store: storeMock
notification: notificationMock
}
}
}
LogsAndControlsPanel {
SplitView.minimumHeight: 100
SplitView.preferredHeight: 160
logsView.logText: logs.logText
ColumnLayout {
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
Label {
text: "Request state"
}
ComboBox {
id: stateSelector
textRole: "text"
valueRole: "value"
model: ListModel {
id: model
ListElement { text: "Pending"; value: 1 } // ActivityCenterStore.ActivityCenterMembershipStatus.Pending }
ListElement { text: "Accepted"; value: 2 } //ActivityCenterStore.ActivityCenterMembershipStatus.Accepted }
ListElement { text: "Declined"; value: 3 } //ActivityCenterStore.ActivityCenterMembershipStatus.Declined }
ListElement { text: "AcceptedPending"; value: 4 } //ActivityCenterStore.ActivityCenterMembershipStatus.AcceptedPending }
ListElement { text: "DeclinedPending"; value: 5 } //ActivityCenterStore.ActivityCenterMembershipStatus.DeclinedPending }
}
}
}
}
QtObject {
id: utilsMock
function getContactDetailsAsJson(arg1, arg2) {
return JSON.stringify({
displayName: "Mock user",
displayIcon: Theme.png("tokens/AST"),
publicKey: 123456789,
name: "",
ensVerified: false,
alias: "",
lastUpdated: 0,
lastUpdatedLocally: 0,
localNickname: "",
thumbnailImage: "",
largeImage: "",
isContact: false,
isAdded: false,
isBlocked: false,
requestReceived: false,
isSyncing: false,
removed: false,
trustStatus: Constants.trustStatus.unknown,
verificationStatus: Constants.verificationStatus.unverified,
})
}
function isCompressedPubKey(key) {
return true
}
function getColorId(publicKey) {
return 1
}
function isEnsVerified(publicKey) {
return true
}
Component.onCompleted: {
Utils.mainModuleInst = this
Utils.globalUtilsInst = this
root.utilsReady = true
}
Component.onDestruction: {
root.utilsReady = false
Utils.mainModuleInst = {}
Utils.globalUtilsInst = {}
}
}
ChatStores.RootStore {
id: storeMock
function getCommunityDetailsAsJson(community) {
return {
name : "Mock Community",
image : Theme.png("tokens/UNI"),
color : "orchid"
}
}
function acceptRequestToJoinCommunity(notificationId, communityId) {
stateSelector.currentIndex = stateSelector.indexOfValue(ActivityCenterStore.ActivityCenterMembershipStatus.AcceptedPending)
}
function declineRequestToJoinCommunity(notificationId, communityId) {
stateSelector.currentIndex = stateSelector.indexOfValue(ActivityCenterStore.ActivityCenterMembershipStatus.DeclinedPending)
}
property var contactsStore: QtObject {
property var myContactsModel: QtObject {
signal itemChanged(string pubKey)
}
}
}
QtObject {
id: notificationMock
property string id: "1"
property string chatId: "1"
property string communityId: "1"
property int membershipStatus: stateSelector.currentValue
property int verificationStatus: 1
property string sectionId: "1"
property string name: "name"
property string author: "author"
property int notificationType: 1
property var message: QtObject {
property bool amISender: false
}
property int timestamp: Date.now()
property int previousTimestamp: 0
property bool read: false
property bool dismissed: false
property bool accepted: false
property var repliedMessage: ({})
property int chatType: 1
}
Settings {
property alias activityNotificationRequestState: stateSelector.currentIndex
}
}
// category: Activity Center
// https://www.figma.com/file/17fc13UBFvInrLgNUKJJg5/Kuba⎜Desktop?type=design&node-id=35909-606817&mode=design&t=Ia7Z0AzyYIjkuPtr-0