status-desktop/ui/app/mainui/activitycenter/views/ActivityNotificationCommuni...

79 lines
2.2 KiB
QML

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 StatusQ.Controls 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
property bool banned: true
bodyComponent: RowLayout {
width: parent.width
height: 50
readonly property var community: notification ?
root.store.getCommunityDetailsAsJson(notification.communityId) :
null
StatusSmartIdenticon {
Layout.preferredWidth: 40
Layout.preferredHeight: 40
Layout.alignment: Qt.AlignTop
Layout.leftMargin: Style.current.padding
Layout.topMargin: 2
asset {
width: 24
height: width
name: "communities"
color: root.banned ? "red" : "green"
bgWidth: 40
bgHeight: 40
bgColor: Theme.palette.getColor(asset.color, 0.1)
}
}
StatusBaseText {
text: root.banned ? qsTr("You were banned from") : qsTr("You've been unbanned from")
Layout.alignment: Qt.AlignVCenter
font.italic: true
color: Theme.palette.baseColor1
}
CommunityBadge {
communityName: community ? community.name : ""
communityImage: community ? community.image : ""
communityColor: community ? community.color : "black"
onCommunityNameClicked: root.store.setActiveCommunity(notification.communityId)
Layout.alignment: Qt.AlignVCenter
Layout.maximumWidth: 190
}
Item {
Layout.fillWidth: true
}
}
ctaComponent: root.banned ? undefined : visitCommunityCta
Component {
id: visitCommunityCta
StatusLinkText {
text: qsTr("Visit Community")
onClicked: {
root.store.setActiveCommunity(notification.communityId)
root.closeActivityCenter()
}
}
}
}