status-desktop/ui/app/AppLayouts/Onboarding/views/KeycardFlowSelectionView.qml

115 lines
2.4 KiB
QML
Raw Normal View History

2021-09-24 12:03:57 +00:00
import QtQuick 2.13
import shared.keycard 1.0
import "../popups"
import "../stores"
2021-09-24 12:03:57 +00:00
Item {
2021-10-01 10:22:51 +00:00
enum OnboardingFlow {
Recover,
Generate,
ImportMnemonic
}
2021-09-24 12:03:57 +00:00
property var onClosed: function () {}
2021-09-27 13:55:39 +00:00
property bool connected: false
2021-10-01 10:22:51 +00:00
property int flow: OnboardingFlow.Recover
2021-09-27 13:55:39 +00:00
2021-09-24 12:03:57 +00:00
id: keycardView
Component.onCompleted: {
insertCard.open()
KeycardStore.startConnection()
2021-09-27 13:55:39 +00:00
}
KeycardCreatePINModal {
2021-09-24 12:03:57 +00:00
id: createPinModal
onSubmitBtnClicked: KeycardStore.init(pin)
2021-09-24 12:03:57 +00:00
onClosed: function () {
2021-10-01 10:22:51 +00:00
if (!createPinModal.submitted) {
keycardView.onClosed()
}
2021-09-24 12:03:57 +00:00
}
}
PairingModal {
id: pairingModal
onClosed: function () {
2021-09-30 11:52:46 +00:00
if (!pairingModal.submitted) {
keycardView.onClosed()
}
2021-09-24 12:03:57 +00:00
}
}
PINModal {
id: pinModal
onClosed: function () {
2021-10-01 10:22:51 +00:00
if (!pinModal.submitted) {
keycardView.onClosed()
}
2021-09-27 07:36:38 +00:00
}
}
InsertCard {
id: insertCard
2021-09-27 13:55:39 +00:00
onCancel: function() {
2021-09-24 12:03:57 +00:00
keycardView.onClosed()
}
}
2021-09-30 11:52:46 +00:00
Connections {
id: connection
target: OnboardingStore.keycardModelInst
2021-09-30 11:52:46 +00:00
ignoreUnknownSignals: true
onCardUnpaired: {
pairingModal.open()
}
onCardPaired: {
2021-10-01 10:22:51 +00:00
pinModal.open()
}
2021-09-30 11:52:46 +00:00
2021-10-01 10:22:51 +00:00
onCardAuthenticated: {
switch (flow) {
case OnboardingFlow.Recover: {
KeycardStore.recoverAccount();
2021-10-01 10:22:51 +00:00
break;
}
case OnboardingFlow.Generate: {
break;
}
case OnboardingFlow.ImportMnemonic: {
break;
}
}
2021-09-30 11:52:46 +00:00
}
//TODO: support the states below
onCardPreInit: {
2021-10-01 10:22:51 +00:00
createPinModal.open()
2021-09-30 11:52:46 +00:00
}
onCardFrozen: {
keycardView.onClosed()
}
onCardBlocked: {
keycardView.onClosed()
}
// TODO: handle these by showing an error an prompting for another card
// later add factory reset option for the NoFreeSlots case
onCardNoFreeSlots: {
2021-10-01 10:22:51 +00:00
keycardView.onClosed()
2021-09-30 11:52:46 +00:00
}
onCardNotKeycard: {
keycardView.onClosed()
}
}
}