1.8 KiB
1.8 KiB
Selezione giocatore al primo avvio
Aggiungere un flusso di onboarding che chiede "Chi sei?" la prima volta che l'app viene aperta, memorizzando la scelta in localStorage. Il profilo e la home si aggiorneranno automaticamente in base al giocatore selezionato.
Cosa cambia
-
Nuovo store
src/lib/user-store.ts- Persiste in
localStoragel'iddel giocatore scelto. - Espone
useGiocatoreCorrente()che restituisce il giocatore selezionato onull. - Espone
impostaGiocatore(id)eresetGiocatore().
- Persiste in
-
Nuova route
/benvenuto- Schermata full-screen con logo, titolo "Benvenuto in CrAPP" e lista scrollabile della rosa.
- Ogni riga mostra iniziali, nome, ruolo e numero maglia.
- Al tap su un giocatore, lo store viene aggiornato e l'utente viene portato a
/. - Non mostra la bottom navigation.
-
Reindirizzamento condizionato in
__root.tsx- Se non è ancora stato selezionato un giocatore, qualunque route apre
/benvenuto. - Dopo la scelta, l'app funziona normalmente.
- Se non è ancora stato selezionato un giocatore, qualunque route apre
-
Sostituzione di
giocatoreCorrenteconuseGiocatoreCorrente()- Aggiornare
src/routes/index.tsxper salutare il giocatore selezionato e mostrarne le statistiche rapide. - Aggiornare
src/routes/profilo.tsxper renderlo il profilo personale del giocatore scelto.
- Aggiornare
-
Cambio utente dalle impostazioni
- In
src/routes/profilo.tsx, aggiungere una voce "Cambia giocatore" che resetta la selezione e porta a/benvenuto.
- In
Note tecniche
localStorageviene letto solo lato client, usandouseSyncExternalStoreper evitare mismatch di hydration.- La rosa reale è già presente in
src/lib/crapp-data.ts(giocatori). - La costante esportata
giocatoreCorrenteverrà rimossa; i componenti consumeranno il nuovo hook. - Nessun backend richiesto: resta un prototipo locale.