Přeskočit na hlavní obsah

X28 — Session Recovery Dialog

Screen IDX28
Typ Podpůrná
FázeMVP
Účel obrazovky

Jednorázový modální dialog po startu relace aplikace, když backend (GET /cart) vrátí platný aktivní košík s běžící rezervací. Nabídne obnovení nákupu nebo zrušení košíku a návrat na domovskou obrazovku.


Content Priority

  1. Hlavní text — např. „Máte rozpracovanou objednávku (zbývá X:XX). Pokračovat?" — čas X:XX musí odpovídat aktuálnímu stavu countdownu z košíku / rezervace
  2. Primární CTA„Pokračovat" → navigace na krok odpovídající stavu objednávky
  3. Sekundární / destruktivní CTA„Zrušit" → zrušení košíku na serveru a návrat na úvod

Interakce

TriggerAkceCíl
Otevření aplikace (cold start) po úspěšném GET /cart s aktivním košíkemZobrazení dialogu (jednou per „session recovery" dle produktové logiky)
Background → foreground za stejných podmínekStejné chování jako při cold startu (pokud dialog ještě nebyl vyřešen v dané relaci)
Tap „Pokračovat"navigate podle aktuálního kroku nákupuP4 — Seat map, P5 — Košík nebo P6 — Checkout
Tap „Zrušit"DELETE /cart (nebo ekvivalent API), vyčištění lokálního stavuP1 — Home / Feed

Stavy

StavPopis
Aktivní košík + běžící časDialog s konkrétním zbývajícím časem
Košík prázdný / neaktivníDialog se nezobrazí
Síťová chyba při DELETEChybová hláška, možnost opakovat; košík ponechat do vyřešení

Edge Cases

ScénářŘešení
Timer vypršel mezi GET /cart a tapnutím PokračovatPo navigaci řešit jako timeout (X4 — Chyba — Timeout) nebo nový fetch stavu
Uživatel je již na P5 a aplikace se obnovíDialog jen pokud to produkt definuje (např. nezobrazovat, pokud už jsme v purchase flow) — jinak deduplikace s X29
Více zařízeníServer je source of truth; lokální stav se synchronizuje po GET /cart
Opakované přepínání aplikaceZabránit spamu dialogy — např. jednou za relaci nebo dokud uživatel nezvolí akci

Mobilní patterny

  • Modal — nesmí blokovat systémové gesty nebezpečně; na iOS/Android konzistentní s DS
  • Countdown — formát mm:ss nebo jednotný s P4 / P5
  • Destruktivní akce — „Zrušit" vizuálně odlišené od primární (outline / text button)

Vztah k ostatním obrazovkám

  • X29 — Active Order Banner zůstává perzistentní po celou dobu aktivní objednávky; X28 je bod rozhodnutí při návratu do aplikace.
  • Po zrušení košíku uživatel nepokračuje v nákupní větvi — shoda s prázdným košíkem na P1.