Skip to content

Session- und Prize-Lifecycle

Stand: 2026-03-25

Ziel

Die aktuellen Session-, Prize- und verwandten Archivflaechen folgen denselben sichtbaren Zustandsmustern:

  • Loading: Skeleton oder Platzhalter, solange noch kein erfolgreiches Snapshot vorliegt
  • Blocking error: klarer Fehlerzustand mit Refresh-Aktion, wenn noch kein nutzbarer Snapshot vorhanden ist
  • Stale warning: letzter erfolgreicher Snapshot bleibt sichtbar, waehrend ein Refresh fehlgeschlagen ist
  • Empty: eigener Leerzustand fuer echte Leere oder filterbedingte Leere
  • Detail not found: ein angeforderter Detailpfad zeigt einen expliziten Not-Found-Zustand statt still leer zu bleiben

Geltungsbereich

Die vereinheitlichten Muster gelten aktuell fuer:

  • PrizeShooting
  • CategorySessionsPage
  • DashboardSession
  • YouthDashboard

Aktuelle Regeln

PrizeShooting

  • Event-Historie und eigene Prize-Sessions halten jeweils den letzten erfolgreichen Snapshot
  • Fehler in der Event-Historie blockieren nur dann voll, wenn noch kein Snapshot vorhanden ist
  • Fehler im eigenen Session-Archiv blockieren nur den Archivblock, nicht die gesamte Prize-Seite
  • Suchleere und echte Leere sind getrennte Zustaende

CategorySessionsPage

  • Alle Kategoriearchive (Training, Wettkampf, Preisschiessen) halten den letzten erfolgreichen Snapshot
  • Fehler ohne Snapshot zeigen einen blocking error
  • Fehler mit Snapshot zeigen einen stale warning ueber dem Archiv
  • Leere durch Suche und echte Leere haben eigene Copy und eigene Reset-/Refresh-Aktionen

DashboardSession

  • Ein fehlender Dashboard-Snapshot zeigt einen blocking error
  • Eine nicht mehr auffindbare Session innerhalb eines vorhandenen Snapshots zeigt einen eigenen Not-Found-Zustand
  • Partielle Sessionaufnahmen bleiben sichtbar und werden ueber die Partial-Warnung ausgezeichnet

YouthDashboard

  • Das Jugend-Dashboard behaelt den letzten erfolgreichen Snapshot bei Refresh-Fehlern
  • Ein fehlender Snapshot zeigt einen blocking error
  • Leere Trainer-/Klassenfilter zeigen einen eigenen Empty-State

Gemeinsame Bausteine

  • SessionSurfaceState rendert die eigentliche inhaltliche Zustandsflaeche
  • SessionSurfaceFeedback kapselt die Card-Huelle fuer blocking, stale und empty states
  • dashboardSessionModel enthaelt gemeinsame Session-Helfer fuer Kategorie-, Treffer-, Teiler- und Timestamp-Aufloesung

Offene Grenzen

  • Die Datenvertraege fuer Prize-/Event-Lifecycle werden weiterhin vom bestehenden Backend geliefert und hier nur UI-seitig vereinheitlicht
  • Ein groesserer Event-/Prize-Backend-Refactor ist bewusst nicht vorweggenommen