From 532700f6c7ec89f7c8db339b648e4d2d0b2b5aed Mon Sep 17 00:00:00 2001 From: MishkaRogachev Date: Tue, 18 Oct 2022 23:46:57 +0400 Subject: [PATCH] feat(ActivityCenter): Kicked from community notification --- .../mainui/activitycenter/controls/Badge.qml | 4 +- .../popups/ActivityCenterPopup.qml | 15 +++++- .../ActivityNotificationCommunityKicked.qml | 51 +++++++++++++++++++ .../ActivityNotificationCommunityRequest.qml | 15 +++--- ui/imports/utils/Constants.qml | 1 + 5 files changed, 76 insertions(+), 10 deletions(-) create mode 100644 ui/app/mainui/activitycenter/views/ActivityNotificationCommunityKicked.qml diff --git a/ui/app/mainui/activitycenter/controls/Badge.qml b/ui/app/mainui/activitycenter/controls/Badge.qml index df4be3027c..c74d8d1c71 100644 --- a/ui/app/mainui/activitycenter/controls/Badge.qml +++ b/ui/app/mainui/activitycenter/controls/Badge.qml @@ -9,8 +9,8 @@ Rectangle { id: root z: 100 // NOTE: workaround for message overlay - height: visible ? 24 : 0 - width: childrenRect.width + Style.current.smallPadding * 2 + implicitWidth: childrenRect.width + Style.current.smallPadding + implicitHeight: visible ? 24 : 0 radius: height / 2 border.width: 1 border.color: Style.current.borderSecondary diff --git a/ui/app/mainui/activitycenter/popups/ActivityCenterPopup.qml b/ui/app/mainui/activitycenter/popups/ActivityCenterPopup.qml index 9df27315b9..79c282b95f 100644 --- a/ui/app/mainui/activitycenter/popups/ActivityCenterPopup.qml +++ b/ui/app/mainui/activitycenter/popups/ActivityCenterPopup.qml @@ -64,7 +64,8 @@ Popup { case ActivityCenterPopup.ActivityCategory.Membership: return notificationType === Constants.activityCenterNotificationTypeCommunityInvitation || notificationType === Constants.activityCenterNotificationTypeCommunityMembershipRequest || - notificationType === Constants.activityCenterNotificationTypeCommunityRequest + notificationType === Constants.activityCenterNotificationTypeCommunityRequest || + notificationType === Constants.activityCenterNotificationTypeCommunityKicked default: return false } @@ -92,6 +93,9 @@ Popup { case Constants.activityCenterNotificationTypeCommunityRequest: root.membershipCount += cnt; break; + case Constants.ActivityCenterNotificationTypeCommunityKicked: + root.membershipCount += cnt; + break; default: break; } @@ -250,6 +254,15 @@ Popup { notification: model } } + DelegateChoice { + roleValue: Constants.activityCenterNotificationTypeCommunityKicked + + ActivityNotificationCommunityKicked { + width: listView.availableWidth + store: root.store + notification: model + } + } } } } diff --git a/ui/app/mainui/activitycenter/views/ActivityNotificationCommunityKicked.qml b/ui/app/mainui/activitycenter/views/ActivityNotificationCommunityKicked.qml new file mode 100644 index 0000000000..27b2c8f1b9 --- /dev/null +++ b/ui/app/mainui/activitycenter/views/ActivityNotificationCommunityKicked.qml @@ -0,0 +1,51 @@ +import QtQuick 2.14 +import QtQuick.Layouts 1.14 + +import StatusQ.Core 0.1 +import StatusQ.Core.Theme 0.1 +import StatusQ.Components 0.1 + +import shared 1.0 +import shared.panels 1.0 +import shared.controls 1.0 +import utils 1.0 + +import "../controls" + +ActivityNotificationBase { + id: root + + bodyComponent: RowLayout { + readonly property var community: root.store.getCommunityDetailsAsJson(notification.communityId) + + StatusSmartIdenticon { + id: identicon + name: community.name + asset.width: 40 + asset.height: 40 + asset.color: community.color + asset.letterSize: width / 2.4 + asset.name: community.image + asset.isImage: true + Layout.leftMargin: Style.current.padding + } + + StatusBaseText { + text: qsTr("You were kicked from") + font.pixelSize: 15 + Layout.alignment: Qt.AlignVCenter + } + + CommunityBadge { + communityName: community.name + communityImage: community.image + communityColor: community.color + onCommunityNameClicked: root.store.setActiveCommunity(notification.communityId) + Layout.alignment: Qt.AlignVCenter + } + + Item { + Layout.fillWidth: true + } + } +} \ No newline at end of file diff --git a/ui/app/mainui/activitycenter/views/ActivityNotificationCommunityRequest.qml b/ui/app/mainui/activitycenter/views/ActivityNotificationCommunityRequest.qml index 34401340c9..e021a6d086 100644 --- a/ui/app/mainui/activitycenter/views/ActivityNotificationCommunityRequest.qml +++ b/ui/app/mainui/activitycenter/views/ActivityNotificationCommunityRequest.qml @@ -27,12 +27,12 @@ ActivityNotificationBase { asset.letterSize: width / 2.4 asset.name: community.image asset.isImage: true + Layout.leftMargin: Style.current.padding } - StyledText { + StatusBaseText { text: qsTr("Request to join") - font.weight: Font.Medium - font.pixelSize: 13 + font.pixelSize: 15 Layout.alignment: Qt.AlignVCenter } @@ -44,7 +44,7 @@ ActivityNotificationBase { Layout.alignment: Qt.AlignVCenter } - StyledText { + StatusBaseText { text: { if (notification.membershipStatus === Constants.activityCenterMembershipStatusPending) return qsTr("pending") @@ -54,13 +54,14 @@ ActivityNotificationBase { return qsTr("declined") return "" } - font.weight: Font.Medium - font.pixelSize: 13 + font.pixelSize: 15 + color: Style.current.secondaryText Layout.alignment: Qt.AlignVCenter + Layout.fillWidth: true } } - ctaComponent: notification.membershipStatus === Constants.activityCenterMembershipStatusPending ? visitComponent : null + ctaComponent: notification.membershipStatus === Constants.activityCenterMembershipStatusAccepted ? visitComponent : null Component { id: visitComponent diff --git a/ui/imports/utils/Constants.qml b/ui/imports/utils/Constants.qml index 5a56b85be2..9db38d56fa 100644 --- a/ui/imports/utils/Constants.qml +++ b/ui/imports/utils/Constants.qml @@ -522,6 +522,7 @@ QtObject { readonly property int activityCenterNotificationTypeCommunityInvitation: 6 readonly property int activityCenterNotificationTypeCommunityRequest: 7 readonly property int activityCenterNotificationTypeCommunityMembershipRequest: 8 + readonly property int activityCenterNotificationTypeCommunityKicked: 9 readonly property int activityCenterMembershipStatusPending: 1 readonly property int activityCenterMembershipStatusAccepted: 2