status-desktop/ui/imports/shared/popups/keycard/states/EnterSeedPhrase.qml

101 lines
3.2 KiB
QML
Raw Normal View History

import QtQuick 2.15
import StatusQ.Core 0.1
import StatusQ.Core.Theme 0.1
import utils 1.0
import shared.panels 1.0 as SharedPanels
Item {
id: root
property var sharedKeycardModule
signal validation(bool result)
QtObject {
id: d
property bool wrongSeedPhrase: root.sharedKeycardModule.keycardData & Constants.predefinedKeycardData.wrongSeedPhrase
onWrongSeedPhraseChanged: {
seedPhrase.setWrongSeedPhraseMessage(wrongSeedPhrase? qsTr("The phrase youve entered does not match this Keycards seed phrase") : "")
}
}
StatusBaseText {
id: title
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
anchors.topMargin: Theme.padding
anchors.leftMargin: Theme.xlPadding
anchors.rightMargin: Theme.xlPadding
visible: text != ""
font.pixelSize: Constants.keycard.general.fontSize1
font.weight: Font.Bold
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.WordWrap
}
SharedPanels.EnterSeedPhrase {
id: seedPhrase
anchors.top: title.visible? title.bottom : parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
anchors.topMargin: Theme.xlPadding
anchors.bottomMargin: Theme.halfPadding
anchors.leftMargin: Theme.xlPadding
anchors.rightMargin: Theme.xlPadding
isSeedPhraseValid: function(mnemonic) {
return root.sharedKeycardModule.validSeedPhrase(mnemonic)
}
onSeedPhraseUpdated: {
if (valid) {
root.sharedKeycardModule.setSeedPhrase(seedPhrase)
}
root.validation(valid)
}
onSubmitSeedPhrase: {
root.sharedKeycardModule.currentState.doPrimaryAction()
}
}
states: [
State {
name: Constants.keycardSharedState.enterSeedPhrase
when: root.sharedKeycardModule.currentState.stateType === Constants.keycardSharedState.enterSeedPhrase
PropertyChanges {
target: title
text: {
switch (root.sharedKeycardModule.currentState.flowType) {
case Constants.keycardSharedFlow.migrateFromKeycardToApp:
return qsTr("Enter seed phrase for %1 key pair").arg(root.sharedKeycardModule.keyPairForProcessing.name)
}
return ""
}
}
},
State {
name: Constants.keycardSharedState.wrongSeedPhrase
when: root.sharedKeycardModule.currentState.stateType === Constants.keycardSharedState.wrongSeedPhrase
PropertyChanges {
target: title
text: {
switch (root.sharedKeycardModule.currentState.flowType) {
case Constants.keycardSharedFlow.migrateFromKeycardToApp:
return qsTr("Enter seed phrase for %1 key pair").arg(root.sharedKeycardModule.keyPairForProcessing.name)
}
return ""
}
}
}
]
}