status-desktop/ui/app/AppLayouts/Chat/CommunityComponents/AccessExistingCommunityPopup.qml
Pascal Precht 49b5e6c097 fix(Communities): make validation on community import work again
In https://github.com/status-im/status-desktop/commit/a90a30af1 we've introduced the functionality to import
communities through the UI via a community private key.
That private key is being validated before it gets imported.
For some reason, validation has been removed in another refactor
later on in https://github.com/status-im/status-desktop/commit/534cb23e1, rendering the import
functionality broken.

This commit re-introduces the `validate()` method to make importing
communities work again.
2021-03-11 10:00:05 -05:00

86 lines
2.1 KiB
QML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import QtQuick 2.12
import QtQuick.Controls 2.3
import QtGraphicalEffects 1.13
import QtQuick.Dialogs 1.3
import "../../../../imports"
import "../../../../shared"
import "../../../../shared/status"
ModalPopup {
id: popup
width: 400
height: 400
property string keyValidationError: ""
function validate() {
keyValidationError = ""
if (keyInput.text.trim() === "") {
keyValidationError = qsTr("You need to enter a key")
}
return !keyValidationError
}
title: qsTr("Access existing community")
onClosed: {
popup.destroy();
}
Item {
anchors.fill: parent
StyledTextArea {
id: keyInput
label: qsTr("Community private key")
placeholderText: "0x0..."
customHeight: 110
}
StyledText {
id: infoText1
text: qsTr("Entering a community key will grant you the ownership of that community. Please be responsible with it and dont share the key with people you dont trust.")
anchors.top: keyInput.bottom
wrapMode: Text.WordWrap
anchors.topMargin: Style.current.bigPadding
width: parent.width
font.pixelSize: 13
color: Style.current.secondaryText
}
}
footer: StatusButton {
id: btnBack
text: qsTr("Import")
anchors.right: parent.right
onClicked: {
if (!validate()) {
return
}
let communityKey = keyInput.text.trim()
if (!communityKey.startsWith("0x")) {
communityKey = "0x" + communityKey
}
const error = chatsModel.communities.importCommunity(communityKey)
if (error) {
creatingError.text = error
return creatingError.open()
}
popup.close()
}
MessageDialog {
id: creatingError
title: qsTr("Error importing the community")
icon: StandardIcon.Critical
standardButtons: StandardButton.Ok
}
}
}