diff --git a/src/app/modules/onboarding/module.nim b/src/app/modules/onboarding/module.nim
index b723247bae..a08eb219d8 100644
--- a/src/app/modules/onboarding/module.nim
+++ b/src/app/modules/onboarding/module.nim
@@ -264,12 +264,14 @@ method onNodeLogin*[T](self: Module[T], err: string, account: AccountDto, settin
let err2 = self.delegate.userLoggedIn()
if err2.len != 0:
error "error from userLoggedIn", err2
+ self.onAccountLoginError(err2)
return
if self.localPairingStatus != nil and self.localPairingStatus.installation != nil and self.localPairingStatus.installation.id != "":
# We tried to login by pairing, so finilize the process
self.controller.finishPairingThroughSeedPhraseProcess(self.localPairingStatus.installation.id)
+ self.view.accountLoginSuccess()
self.finishAppLoading2()
method onLocalPairingStatusUpdate*[T](self: Module[T], status: LocalPairingStatus) =
diff --git a/src/app/modules/onboarding/view.nim b/src/app/modules/onboarding/view.nim
index 1dd494b4a7..c3c6b4ce69 100644
--- a/src/app/modules/onboarding/view.nim
+++ b/src/app/modules/onboarding/view.nim
@@ -36,6 +36,7 @@ QtObject:
proc appLoaded*(self: View) {.signal.}
proc accountLoginError*(self: View, error: string, wrongPassword: bool) {.signal.}
+ proc accountLoginSuccess*(self: View) {.signal.}
### QtProperties ###
diff --git a/storybook/pages/OnboardingLayoutPage.qml b/storybook/pages/OnboardingLayoutPage.qml
index ecff586f81..d1c005fd7f 100644
--- a/storybook/pages/OnboardingLayoutPage.qml
+++ b/storybook/pages/OnboardingLayoutPage.qml
@@ -164,14 +164,18 @@ SplitView {
logs.logEvent("OnboardingStore.inputConnectionStringForBootstrapping", ["connectionString"], arguments)
}
- // password signals
+ // login result signals
signal accountLoginError(string error, bool wrongPassword)
-
- // (test) error handler
onAccountLoginError: function (error, wrongPassword) {
ctrlLoginResult.result = "⛔"
onboarding.unwindToLoginScreen()
}
+
+ signal accountLoginSuccess()
+ onAccountLoginSuccess: {
+ ctrlLoginResult.result = "✔"
+ onboarding.stack.push(splashScreen, { runningProgressAnimation: true })
+ }
}
biometricsAvailable: ctrlBiometrics.checked
@@ -204,8 +208,7 @@ SplitView {
onboardingStore.accountLoginError("", true)
ctrlLoginResult.result = "⛔"
} else {
- ctrlLoginResult.result = "✔"
- stack.push(splashScreen, { runningProgressAnimation: true })
+ onboardingStore.accountLoginSuccess()
}
}
diff --git a/ui/app/AppLayouts/Onboarding2/stores/OnboardingStore.qml b/ui/app/AppLayouts/Onboarding2/stores/OnboardingStore.qml
index 4bd0a9db2b..bb9aab75aa 100644
--- a/ui/app/AppLayouts/Onboarding2/stores/OnboardingStore.qml
+++ b/ui/app/AppLayouts/Onboarding2/stores/OnboardingStore.qml
@@ -9,6 +9,9 @@ QtObject {
signal appLoaded
+ signal accountLoginSuccess()
+ signal accountLoginError(string error, bool wrongPassword)
+
readonly property QtObject d: StatusQUtils.QObject {
id: d
readonly property var onboardingModuleInst: onboardingModule
@@ -16,6 +19,7 @@ QtObject {
Component.onCompleted: {
d.onboardingModuleInst.appLoaded.connect(root.appLoaded)
d.onboardingModuleInst.accountLoginError.connect(root.accountLoginError)
+ d.onboardingModuleInst.accountLoginSuccess.connect(root.accountLoginSuccess)
}
}
@@ -62,8 +66,6 @@ QtObject {
}
// password
- signal accountLoginError(string error, bool wrongPassword)
-
function getPasswordStrengthScore(password: string) { // -> int
return d.onboardingModuleInst.getPasswordStrengthScore(password, "") // The second argument is username
}
diff --git a/ui/main.qml b/ui/main.qml
index f499594256..a4c10319ff 100644
--- a/ui/main.qml
+++ b/ui/main.qml
@@ -480,7 +480,6 @@ StatusWindow {
}
onLoginRequested: function (keyUid, method, data) {
- stack.push(splashScreenV2, { runningProgressAnimation: true })
onboardingStore.loginRequested(keyUid, method, data)
}
@@ -499,6 +498,9 @@ StatusWindow {
applicationWindow.storeAppState()
moveToAppMain()
}
+ onAccountLoginSuccess: {
+ stack.push(splashScreenV2, { runningProgressAnimation: true })
+ }
onAccountLoginError: function (error, wrongPassword) {
onboardingLayout.unwindToLoginScreen() // error handled internally
}