2021-09-24 12:03:57 +00:00
|
|
|
import QtQuick 2.13
|
|
|
|
import "./Keycard"
|
|
|
|
import "../shared/keycard"
|
|
|
|
|
|
|
|
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: {
|
2021-09-29 13:23:28 +00:00
|
|
|
insertCard.open()
|
|
|
|
keycardModel.startConnection()
|
2021-09-27 13:55:39 +00:00
|
|
|
}
|
|
|
|
|
2021-09-24 12:03:57 +00:00
|
|
|
CreatePINModal {
|
|
|
|
id: createPinModal
|
|
|
|
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: keycardModel
|
|
|
|
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: {
|
|
|
|
keycardModel.recoverAccount();
|
|
|
|
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()
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
2021-09-24 12:03:57 +00:00
|
|
|
}
|