S14 — Editace profilu
Účel obrazovky
Po otevření S14 je hned zobrazen editovatelný formulář (bez režimu pouze pro čtení a bez přepínače „Upravit“). Uživatel mění jméno, příjmení, e-mail, telefon, volitelně ISIC (pod rozbalovací sekcí) a heslo (v rozbalovací sekci), mění fotku přes odkaz u avatara a ukládá změny tlačítkem dole na obrazovce.
Content Priority
- Avatar + textový odkaz „Změnit fotku" (výběr z galerie / fotoaparátu dle platformy) AvatarGhost/Text Button
- Základní pole — Jméno, Příjmení, E-mail, Telefon (u OAuth účtu zůstává e-mail readonly) Text Input
- „Přidat slevovou kartu" — rozbalovací sekce (accordion); po rozbalení pole ISIC Accordion / ExpandableText Input
- „Změna hesla" — rozbalovací sekce; po rozbalení inline formulář: staré heslo, nové heslo, potvrzení nového hesla Accordion / ExpandablePassword Input
- CTA „Uložit změny" — fixně na spodku obrazovky (footer oblast); disabled, dokud se hodnoty formuláře shodují s naposledy uloženým stavem (žádná „dirty“ změna) Primary Button
Interakce
| Trigger | Akce | Cíl |
|---|---|---|
| Otevření S14 | Zobrazení formuláře | Okamžitě editovatelná pole (direct edit mode) |
| Změna kteréhokoli pole | Porovnání s uloženým stavem | Zapnutí CTA „Uložit změny"; při návratu k původním hodnotám opět disabled |
| Tap „Změnit fotku" | Výběr média | Aktualizace náhledu avatara + označení formuláře jako změněného |
| Rozbalení „Přidat slevovou kartu" / „Změna hesla" | Toggle accordionu | Zobrazení/skrytí vnořených polí |
| Tap „Uložit změny" | API call → úspěch | Toast „Změny uloženy" + aktualizace „baseline" pro detekci změn |
| Změna pole | Inline validace | Chyba pod polem (typicky on blur) |
| Back nebo gesto zpět při neuložených změnách | Blokace navigace | Dialog „Neuložené změny. Odejít?" — potvrzení = opuštění bez uložení, zrušení = zůstat na S14 |
| Současná úprava hesla | Validace v sekci | Stejná pravidla síly/opakování jako při registraci; odeslání hesla v rámci celkového uložení nebo dedikovaný krok dle API |
Stavy
| Stav | Popis | Vizuální chování |
|---|---|---|
| Default (uloženo) | Žádná odchylka od serveru | CTA „Uložit změny" disabled |
| Dirty | Uživatel upravil alespoň jedno pole nebo fotku | CTA enabled |
| Saving | Ukládání probíhá | Indikátor na CTA, pole disabled |
| Validation errors | Chyby ve formuláři | Červené / helper text pod poli, CTA může zůstat aktivní nebo být disabled podle pravidel validace |
| Success | Úspěšné uložení | Toast „Změny uloženy", formulář přejde do stavu „uloženo" (CTA zase disabled) |
Edge Cases a Error States
| Scénář | Řešení |
|---|---|
| OAuth účet | E-mail readonly (vázaný na Google/Apple/…); změna hesla jen pokud má účet heslo |
| Validace telefonu | Formát dle země (např. +420 pro ČR) |
| Neuložené změny | Dialog „Neuložené změny. Odejít?" při backu / gestu zpět |
| API chyba při ukládání | Toast „Nepodařilo se uložit změny. Zkuste to znovu." + možnost retry |
| Rozbalená sekce heslo + prázdná pole | Validace jen pokud uživatel začal vyplňovat změnu hesla |
| ISIC expirace | Volitelně: datum platnosti, upozornění před expirací (dle produktu) |
Mobilní patterny a odlišení od webu
Keyboard-aware scroll
- Při focus na pole automaticky scrollovat tak, aby bylo pole vidět nad klávesnicí
- Klávesnice nesmí zakrývat aktivní input
Inline validace
- Validace on blur (po opuštění pole), ne při každém keystroke — méně rušivé
- Chyby zobrazit přímo pod polem
Přímá editace a spodní CTA
- Jedna obrazovka = vždy editace; žádný mezikrok „zobrazit → upravit"
- Primární akce dole je konzistentní s palcem a očekáváním „dokončit a uložit"
Reference — Aktuální web
SCR-WEB-44Editace dat — jméno, telefon, email, ISICSCR-WEB-47Kontaktní údaje, fakturační adresaSCR-WEB-49GDPR souhlas, smazání účtu

