From 6d6cb7a7a79ed7f50e41980350eaa5746d8b75d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tinkl?= Date: Thu, 29 Jun 2023 10:47:37 +0200 Subject: [PATCH] Settings/Communities: fix duplicate entries in case a community is both `spectated` and `joined` Fixes #11301 --- .../Profile/panels/CommunitiesListPanel.qml | 13 +++++++------ ui/app/AppLayouts/Profile/views/CommunitiesView.qml | 5 ++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ui/app/AppLayouts/Profile/panels/CommunitiesListPanel.qml b/ui/app/AppLayouts/Profile/panels/CommunitiesListPanel.qml index a0f79b8f2e..9a1edda41c 100644 --- a/ui/app/AppLayouts/Profile/panels/CommunitiesListPanel.qml +++ b/ui/app/AppLayouts/Profile/panels/CommunitiesListPanel.qml @@ -47,6 +47,7 @@ StatusListView { onClicked: setActiveCommunityClicked(model.id) + readonly property bool isSpectator: model.spectated && !model.joined readonly property bool isOwner: model.memberRole === Constants.memberRole.owner readonly property bool isAdmin: model.memberRole === Constants.memberRole.admin readonly property bool isInvitationPending: root.rootStore.isCommunityRequestPending(model.id) @@ -64,7 +65,7 @@ StatusListView { anchors.verticalCenter: parent.verticalCenter size: StatusBaseButton.Size.Small text: listItem.isInvitationPending ? qsTr("Membership Request Sent") : qsTr("View & Join Community") - visible: model.spectated + visible: listItem.isSpectator onClicked: root.showCommunityIntroDialog(model.id, model.name, model.introMessage, model.image, model.access) }, StatusFlatButton { @@ -98,7 +99,7 @@ StatusListView { } } MuteChatMenuItem { - enabled: (model.joined || (model.spectated && !listItem.isInvitationPending)) && !model.muted + enabled: (model.joined || (listItem.isSpectator && !listItem.isInvitationPending)) && !model.muted title: qsTr("Mute Community") onMuteTriggered: { moreMenu.close() @@ -120,7 +121,7 @@ StatusListView { enabled: { if (listItem.isOwner) return false - if (model.spectated && !listItem.isInvitationPending) + if (listItem.isSpectator && !listItem.isInvitationPending) return false return true } @@ -139,12 +140,12 @@ StatusListView { text: { if (listItem.isInvitationPending) return qsTr("Cancel Membership Request") - return model.spectated ? qsTr("Close Community") : qsTr("Leave Community") + return listItem.isSpectator ? qsTr("Close Community") : qsTr("Leave Community") } icon.name: { if (listItem.isInvitationPending) return "arrow-left" - return model.spectated ? "close-circle" : "arrow-left" + return listItem.isSpectator ? "close-circle" : "arrow-left" } type: StatusAction.Type.Danger enabled: !listItem.isOwner @@ -152,7 +153,7 @@ StatusListView { moreMenu.close() if (listItem.isInvitationPending) root.cancelMembershipRequest(model.id) - else if (model.spectated) + else if (listItem.isSpectator) root.closeCommunityClicked(model.id) else root.leaveCommunityClicked(model.name, model.id, model.outroMessage) diff --git a/ui/app/AppLayouts/Profile/views/CommunitiesView.qml b/ui/app/AppLayouts/Profile/views/CommunitiesView.qml index d0b4611257..0e1810ace5 100644 --- a/ui/app/AppLayouts/Profile/views/CommunitiesView.qml +++ b/ui/app/AppLayouts/Profile/views/CommunitiesView.qml @@ -139,9 +139,8 @@ SettingsContentBase { Panel { id: panelPendingRequests - filters: ValueFilter { - roleName: "spectated" - value: true + filters: ExpressionFilter { + expression: model.spectated && !model.joined } } }