Root cause: when auth.me() failed during initial navigation, the catch block
called navigate('/login') without clearing _pendingLoginRedirect. The outer
finally then fired a second concurrent navigate('/login'), which held
isNavigating=true while running. If the user submitted the login form (or
iCloud Keychain autofilled credentials) before the second navigation
completed, navigate('/', user) was silently blocked by the isNavigating guard —
login appeared to succeed but the app never advanced to the dashboard.
Fix: clear _pendingLoginRedirect in the catch block so the finally handler
does not spawn the duplicate navigation.
Also adds a GET /api/v1/version endpoint (no auth required) and shows the
version on the login page, so users can verify their PWA has received the
latest cached JS.
Resolves #68
Co-authored-by: Ulas Kalayci <ulas.kalayci@googlemail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -618,7 +618,8 @@
|
||||
"loginButton": "Anmelden",
|
||||
"loggingIn": "Wird angemeldet …",
|
||||
"tooManyAttempts": "Zu viele Versuche. Bitte warte kurz.",
|
||||
"invalidCredentials": "Ungültige Anmeldedaten."
|
||||
"invalidCredentials": "Ungültige Anmeldedaten.",
|
||||
"version": "v{{version}}"
|
||||
},
|
||||
"install": {
|
||||
"title": "Oikos installieren",
|
||||
@@ -676,4 +677,4 @@
|
||||
"pendingBadgeTitle": "{{count}} fällige Erinnerung",
|
||||
"pendingBadgeTitlePlural": "{{count}} fällige Erinnerungen"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user