fix(dashboard): show an error instead of a blank trip list when the server is unreachable (#1283)

When the backend or identity provider was unreachable, a returning user with a
persisted session landed on the dashboard with an empty trip grid and no error.
That looks identical to a logged-in user who simply has no trips, so people
assumed their data had been lost.

Three client-side layers were quietly swallowing the failure: the auth check
only cleared state on a 401, so a 5xx or a network error left the stale session
in place and kept rendering the protected route; the offline-first trip repo
turned a failed fetch into the empty cache without throwing; and the dashboard
had neither an error nor an empty state, so a blank grid meant both "outage" and
"no trips".

The auth check now tells genuine offline (keep serving the cache silently, the
PWA happy path) apart from a server outage while online (keep the session but
flag it). The dashboard shows a reassuring "couldn't reach the server, your
trips are safe" banner with a retry, and a real zero-trip account finally gets a
proper empty state so the two cases never look alike. New strings added across
all locales.
This commit is contained in:
Maurice
2026-06-21 23:08:25 +02:00
committed by Maurice
parent 328d1c9468
commit ebbbf91d60
24 changed files with 123 additions and 6 deletions
+2
View File
@@ -43,6 +43,8 @@ const dashboard: TranslationStrings = {
'dashboard.status.past': 'Múlt',
'dashboard.status.daysLeft': 'Még {count} nap',
'dashboard.toast.loadError': 'Nem sikerült betölteni az utazásokat',
'dashboard.loadErrorBanner': 'Nem sikerült elérni a kiszolgálót. Az utazásaid biztonságban vannak — kérlek, próbáld újra.',
'dashboard.retry': 'Újra',
'dashboard.toast.created': 'Utazás sikeresen létrehozva!',
'dashboard.toast.createError': 'Nem sikerült létrehozni',
'dashboard.toast.updated': 'Utazás frissítve!',