status-desktop/ui/imports/shared/popups/SendContactRequestModal.qml

79 lines
2.0 KiB
QML
Raw Normal View History

import QtQuick 2.14
import QtQuick.Controls 2.14
import QtQuick.Layouts 1.14
import utils 1.0
2022-06-22 12:16:21 +00:00
import shared.controls.chat 1.0
import StatusQ.Core 0.1
import StatusQ.Core.Theme 0.1
import StatusQ.Controls 0.1
import StatusQ.Controls.Validators 0.1
import StatusQ.Popups 0.1
StatusModal {
id: root
2022-06-22 12:16:21 +00:00
property string userPublicKey: ""
property string userDisplayName: ""
property string userIcon: ""
signal accepted(string message)
2022-06-22 12:16:21 +00:00
padding: 16
QtObject {
id: d
readonly property int maxMsgLength: 280
readonly property int minMsgLength: 1
readonly property int msgHeight: 152
readonly property int contentSpacing: 5
}
ColumnLayout {
id: content
2022-06-22 12:16:21 +00:00
anchors.fill: parent
spacing: d.contentSpacing
2022-06-22 12:16:21 +00:00
ProfileHeader {
Layout.fillWidth: true
2022-06-22 12:16:21 +00:00
displayName: root.userDisplayName
pubkey: root.userPublicKey
icon: root.userIcon
displayNameVisible: false
pubkeyVisible: false
imageSize: ProfileHeader.ImageSize.Middle
editImageButtonVisible: false
}
StatusInput {
id: messageInput
charLimit: d.maxMsgLength
input.placeholderText: qsTr("Say who you are / why you want to become a contact...")
input.multiline: true
input.implicitHeight: d.msgHeight
input.verticalAlignment: TextEdit.AlignTop
validators: StatusMinLengthValidator {
minLength: d.minMsgLength
errorMessage: Utils.getErrorMessage(messageInput.errors, qsTr("who are you"))
}
validationMode: StatusInput.ValidationMode.Always
Layout.fillWidth: true
}
}
rightButtons: StatusButton {
enabled: messageInput.valid
text: qsTr("Send Contact Request")
onClicked: {
root.accepted(Utils.escapeHtml(messageInput.text));
root.close();
}
}
2022-06-22 12:16:21 +00:00
}