76 lines
2.2 KiB
QML
76 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.Controls 0.1
|
||
import StatusQ.Controls.Validators 0.1
|
||
|
||
import utils 1.0
|
||
import "../controls"
|
||
|
||
Item {
|
||
id: root
|
||
|
||
property alias displayName: displayNameInput
|
||
property alias bio: bioInput
|
||
|
||
implicitHeight: layout.implicitHeight
|
||
implicitWidth: layout.implicitWidth
|
||
|
||
ColumnLayout {
|
||
id: layout
|
||
anchors.fill: parent
|
||
|
||
spacing: 19 // by design
|
||
|
||
StatusInput {
|
||
id: displayNameInput
|
||
objectName: "displayNameInput"
|
||
|
||
Layout.fillWidth: true
|
||
|
||
label: qsTr("Display name")
|
||
placeholderText: qsTr("Display Name")
|
||
charLimit: Constants.keypair.nameLengthMax
|
||
validators: Constants.validators.displayName
|
||
|
||
input.tabNavItem: bioInput.input.edit
|
||
}
|
||
|
||
|
||
StatusInput {
|
||
id: bioInput
|
||
objectName: "bioInput"
|
||
|
||
Layout.fillWidth: true
|
||
Layout.topMargin: 5 // by design
|
||
|
||
label: qsTr("Bio")
|
||
placeholderText: qsTr("Tell us about yourself")
|
||
input.maximumLength : 32767
|
||
charLimit: 240
|
||
multiline: true
|
||
minimumHeight: 108
|
||
maximumHeight: 108
|
||
input.verticalAlignment: TextEdit.AlignTop
|
||
validationMode: StatusInput.ValidationMode.Always
|
||
validators: [
|
||
StatusValidator {
|
||
name: "maxLengthValidator"
|
||
validate: function (t) { return t.length <= bioInput.charLimit}
|
||
errorMessage: qsTr("Bio can’t be longer than %n character(s)", "", bioInput.charLimit)
|
||
},
|
||
StatusRegularExpressionValidator {
|
||
regularExpression: Constants.regularExpressions.asciiWithEmoji
|
||
errorMessage: qsTr("Invalid characters. Standard keyboard characters and emojis only.")
|
||
validate: function (value) {
|
||
return (regularExpression.test(value) || (value.length === 0));
|
||
}
|
||
}
|
||
]
|
||
input.tabNavItem: displayNameInput.input.edit
|
||
}
|
||
}
|
||
}
|