67 lines
1.9 KiB
QML
67 lines
1.9 KiB
QML
import QtQuick 2.13
|
|
import QtQuick.Controls 2.13
|
|
import QtQuick.Layouts 1.13
|
|
|
|
import utils 1.0
|
|
import shared 1.0
|
|
import shared.panels 1.0
|
|
|
|
import StatusQ.Components 0.1
|
|
|
|
Rectangle {
|
|
property string name
|
|
property string address
|
|
property string identicon
|
|
property string localNickname
|
|
property var profileClick: function() {}
|
|
signal blockContactActionTriggered(name: string, address: string)
|
|
signal acceptClicked()
|
|
signal declineClicked()
|
|
property bool isHovered: false
|
|
id: container
|
|
|
|
height: visible ? 64 : 0
|
|
anchors.right: parent.right
|
|
anchors.left: parent.left
|
|
border.width: 0
|
|
radius: Style.current.radius
|
|
color: isHovered ? Style.current.backgroundHover : Style.current.transparent
|
|
|
|
StatusSmartIdenticon {
|
|
id: accountImage
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: Style.current.padding
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
image.source: identicon
|
|
image.isIdenticon: true
|
|
}
|
|
|
|
StyledText {
|
|
id: usernameText
|
|
text: name
|
|
elide: Text.ElideRight
|
|
font.pixelSize: 17
|
|
anchors.top: accountImage.top
|
|
anchors.topMargin: Style.current.smallPadding
|
|
anchors.left: accountImage.right
|
|
anchors.leftMargin: Style.current.padding
|
|
anchors.right: buttons.left
|
|
anchors.rightMargin: Style.current.padding
|
|
}
|
|
|
|
HoverHandler {
|
|
onHoveredChanged: container.isHovered = hovered
|
|
}
|
|
|
|
AcceptRejectOptionsButtonsPanel {
|
|
id: buttons
|
|
anchors.right: parent.right
|
|
anchors.rightMargin: Style.current.padding
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
onAcceptClicked: container.acceptClicked()
|
|
onDeclineClicked: container.declineClicked()
|
|
onProfileClicked: container.profileClick(true, name, address, identicon, "", localNickname)
|
|
onBlockClicked: container.blockContactActionTriggered(name, address)
|
|
}
|
|
}
|