status-desktop/ui/app/AppLayouts/Chat/components/ContactRequest.qml

64 lines
2.0 KiB
QML

import QtQuick 2.13
import QtQuick.Controls 2.13
import QtQuick.Layouts 1.13
import "../../../../imports"
import "../../../../shared"
import "../../../../shared/status"
Rectangle {
property string name
property string address
property string identicon
property string localNickname
property var profileClick: function() {}
signal blockContactActionTriggered(name: string, address: string)
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
StatusImageIdenticon {
id: accountImage
anchors.left: parent.left
anchors.leftMargin: Style.current.padding
anchors.verticalCenter: parent.verticalCenter
source: identicon
}
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
}
AcceptRejectOptionsButtons {
id: buttons
anchors.right: parent.right
anchors.rightMargin: Style.current.padding
anchors.verticalCenter: parent.verticalCenter
onAcceptClicked: {
chatsModel.channelView.joinPrivateChat(container.address, "")
profileModel.contacts.addContact(container.address)
}
onDeclineClicked: profileModel.contacts.rejectContactRequest(container.address)
onProfileClicked: profileClick(true, name, address, identicon, "", localNickname)
onBlockClicked: container.blockContactActionTriggered(name, address)
}
}