Sostituisce l'input libero del ruolo con un menu a tendina

Evita ruoli scritti in modo incoerente (maiuscole, refusi) sia in
modifica che in aggiunta giocatore.
This commit is contained in:
2026-09-03 14:17:30 +02:00
parent 70b4123452
commit 6286c18a72
2 changed files with 22 additions and 6 deletions
+3
View File
@@ -33,6 +33,9 @@ export type RigaGiocatoreSquadra = {
data_tessera: string | null;
};
/** Ruoli ammessi in campo (pallavolo): usati per il menu a tendina del profilo squadra. */
export const RUOLI = ["Palleggiatore", "Banda", "Opposto", "Centrale", "Libero", "Jolly"] as const;
export const SQUADRA_KEY = ["giocatori-squadra"] as const;
/** Rosa di riserva quando il database non risponde o non è ancora popolato. */
+19 -6
View File
@@ -22,6 +22,7 @@ import {
nomeCompleto,
numeroGiaUsato,
prossimoIdGiocatore,
RUOLI,
useAggiungiGiocatore,
useGiocatoriSquadra,
useImpostaAttivo,
@@ -223,12 +224,18 @@ function ModificaGiocatore({ g, profilo }: { g: GiocatoreSquadra; profilo: Profi
/>
</Campo>
<Campo label="Ruolo">
<input
<select
value={squadraCorrente.ruolo}
maxLength={30}
onChange={(e) => setDatiSquadra({ ...squadraCorrente, ruolo: e.target.value })}
className={classiInput}
/>
>
<option value=""></option>
{RUOLI.map((r) => (
<option key={r} value={r}>
{r}
</option>
))}
</select>
</Campo>
</div>
<Campo label="Email (collegamento automatico al login, DD-018)">
@@ -540,12 +547,18 @@ function AggiungiGiocatore({ righe }: { righe: GiocatoreSquadra[] }) {
/>
</Campo>
<Campo label="Ruolo">
<input
<select
value={dati.ruolo}
maxLength={30}
onChange={(e) => setDati({ ...dati, ruolo: e.target.value })}
className={classiInput}
/>
>
<option value=""></option>
{RUOLI.map((r) => (
<option key={r} value={r}>
{r}
</option>
))}
</select>
</Campo>
</div>
<Campo label="Email (collegamento automatico al login, opzionale)">