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:
+3
-3
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user