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; 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; export const SQUADRA_KEY = ["giocatori-squadra"] as const;
/** Rosa di riserva quando il database non risponde o non è ancora popolato. */ /** Rosa di riserva quando il database non risponde o non è ancora popolato. */
+19 -6
View File
@@ -22,6 +22,7 @@ import {
nomeCompleto, nomeCompleto,
numeroGiaUsato, numeroGiaUsato,
prossimoIdGiocatore, prossimoIdGiocatore,
RUOLI,
useAggiungiGiocatore, useAggiungiGiocatore,
useGiocatoriSquadra, useGiocatoriSquadra,
useImpostaAttivo, useImpostaAttivo,
@@ -223,12 +224,18 @@ function ModificaGiocatore({ g, profilo }: { g: GiocatoreSquadra; profilo: Profi
/> />
</Campo> </Campo>
<Campo label="Ruolo"> <Campo label="Ruolo">
<input <select
value={squadraCorrente.ruolo} value={squadraCorrente.ruolo}
maxLength={30}
onChange={(e) => setDatiSquadra({ ...squadraCorrente, ruolo: e.target.value })} onChange={(e) => setDatiSquadra({ ...squadraCorrente, ruolo: e.target.value })}
className={classiInput} className={classiInput}
/> >
<option value=""></option>
{RUOLI.map((r) => (
<option key={r} value={r}>
{r}
</option>
))}
</select>
</Campo> </Campo>
</div> </div>
<Campo label="Email (collegamento automatico al login, DD-018)"> <Campo label="Email (collegamento automatico al login, DD-018)">
@@ -540,12 +547,18 @@ function AggiungiGiocatore({ righe }: { righe: GiocatoreSquadra[] }) {
/> />
</Campo> </Campo>
<Campo label="Ruolo"> <Campo label="Ruolo">
<input <select
value={dati.ruolo} value={dati.ruolo}
maxLength={30}
onChange={(e) => setDati({ ...dati, ruolo: e.target.value })} onChange={(e) => setDati({ ...dati, ruolo: e.target.value })}
className={classiInput} className={classiInput}
/> >
<option value=""></option>
{RUOLI.map((r) => (
<option key={r} value={r}>
{r}
</option>
))}
</select>
</Campo> </Campo>
</div> </div>
<Campo label="Email (collegamento automatico al login, opzionale)"> <Campo label="Email (collegamento automatico al login, opzionale)">