v1.6: Login-Race behoben (schwarzer Bildschirm nach Anmeldung)

- Store setzt 'me' erst nach dem Laden der Bootstrap-Daten (Start, Login,
  Registrierung) - vorher rendereten Seiten gegen leere Daten und brachen ab;
  Seite lief erst nach manuellem Reload (Race zwischen setMe und ladeAlles)
- FehlerGrenze (ErrorBoundary) in App.tsx: Render-Fehler zeigen Hinweis +
  Reload-Button statt schwarzem Bildschirm
This commit is contained in:
2026-10-02 13:56:03 +02:00
parent f1ceb44b47
commit 07d58ecb58
2 changed files with 38 additions and 6 deletions
+3 -3
View File
@@ -112,9 +112,9 @@ export function StoreProvider({ children }: { children: ReactNode }) {
;(async () => {
try {
const { benutzer } = await apiGet<{ benutzer: Benutzer }>('/api/auth/me')
await ladeAlles() // erst Daten, dann me – sonst rendern Seiten gegen leere Daten
if (!aktiv) return
setMe(benutzer)
await ladeAlles()
} catch {
/* nicht angemeldet – Login-Seite zeigen */
} finally {
@@ -148,8 +148,8 @@ export function StoreProvider({ children }: { children: ReactNode }) {
benutzername,
passwortHash: await sha256(passwort),
})
await ladeAlles() // erst Daten, dann me (s. useEffect)
setMe(benutzer)
await ladeAlles()
return null
} catch (e) {
return fehlerNachricht(e)
@@ -173,8 +173,8 @@ export function StoreProvider({ children }: { children: ReactNode }) {
email,
passwortHash: await sha256(passwort),
})
await ladeAlles() // erst Daten, dann me (s. useEffect)
setMe(benutzer)
await ladeAlles()
return null
} catch (e) {
return fehlerNachricht(e)