status-desktop/ui/app/AppLayouts/Onboarding/panels/AccountMenuItemPanel.qml
Lukáš Tinkl 94ca1ff22a fix: ENS keycap display issues
- run the user's display name (ENS name) thru the `Emoji.parse()`
function as that will convert the potentially UTF-16 encoded name
containing emojis into an image

Fixes #12290
2024-05-13 16:20:54 +02:00

105 lines
2.6 KiB
QML

import QtQuick 2.13
import QtQuick.Controls 2.13
import QtQuick.Dialogs 1.3
import StatusQ.Core 0.1
import StatusQ.Core.Theme 0.1
import StatusQ.Components 0.1
import StatusQ.Popups 0.1
import StatusQ.Core.Utils 0.1 as StatusQUtils
import shared.controls.chat 1.0
import utils 1.0
Item {
id: root
property string label: ""
property string colorId: ""
property var colorHash
property string image: ""
property bool keycardCreatedAccount: false
property StatusAssetSettings asset: StatusAssetSettings {
name: "add"
}
signal clicked()
width: parent.width
height: 64
Rectangle {
anchors.fill: root
color: sensor.containsMouse ? Theme.palette.statusSelect.menuItemHoverBackgroundColor
: Theme.palette.statusSelect.menuItemBackgroundColor
}
Loader {
id: userImageOrIcon
sourceComponent: !!root.image.toString() || !!root.colorId ? userImage : addIcon
anchors.leftMargin: Style.current.padding
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
}
Component {
id: addIcon
StatusRoundIcon {
asset.name: root.asset.name
}
}
Component {
id: userImage
UserImage {
name: root.label
image: root.image
colorId: root.colorId
colorHash: root.colorHash
imageHeight: Constants.onboarding.userImageHeight
imageWidth: Constants.onboarding.userImageWidth
}
}
StatusBaseText {
text: StatusQUtils.Emoji.parse(root.label)
anchors.verticalCenter: parent.verticalCenter
anchors.left: userImageOrIcon.right
anchors.right: root.keycardCreatedAccount? keycardIcon.left : parent.right
anchors.leftMargin: Style.current.padding
color: !!root.colorId ? Theme.palette.directColor1 : Theme.palette.primaryColor1
elide: Text.ElideRight
}
Loader {
id: keycardIcon
active: root.keycardCreatedAccount
sourceComponent: keycardIconComponent
anchors.rightMargin: Style.current.padding
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
}
Component {
id: keycardIconComponent
StatusIcon {
icon: "keycard"
height: Style.current.padding
color: Theme.palette.baseColor1
}
}
MouseArea {
id: sensor
cursorShape: Qt.PointingHandCursor
anchors.fill: root
hoverEnabled: true
onClicked: {
root.clicked()
}
}
}