diff --git a/src/lib/crapp-data.ts b/src/lib/crapp-data.ts index c464a76..59f4607 100644 --- a/src/lib/crapp-data.ts +++ b/src/lib/crapp-data.ts @@ -82,27 +82,35 @@ function inizialiDa(nome: string) { .toUpperCase(); } -export const giocatori: Giocatore[] = rosaCSI.map((r, i) => ({ - id: `g${i + 1}`, - nome: r.nome, - numero: r.numero ?? 0, - ruolo: r.ruolo, - nascita: r.nascita, - iniziali: inizialiDa(r.nome), - presenze: 0, - totaliEventi: 0, - streak: 0, - serieAllenamenti: 0, - seriePartite: 0, - serieConferme: 0, - mvp: 0, - mediaVoto: 0, - infortuni: 0, - ritardi: 0, - palloni: 0, - cacche: 0, - cacchePartita: 0, -})); +export function dividiNome(completo: string): { nome: string; cognome: string } { + const spazio = completo.indexOf(" "); + if (spazio < 0) return { nome: completo, cognome: "" }; + return { nome: completo.slice(0, spazio), cognome: completo.slice(spazio + 1) }; +} + +export const giocatori: Giocatore[] = rosaCSI + .map((r, i) => ({ + id: `g${i + 1}`, + nome: r.nome, + numero: r.numero ?? 0, + ruolo: r.ruolo, + nascita: r.nascita, + iniziali: inizialiDa(r.nome), + presenze: 0, + totaliEventi: 0, + streak: 0, + serieAllenamenti: 0, + seriePartite: 0, + serieConferme: 0, + mvp: 0, + mediaVoto: 0, + infortuni: 0, + ritardi: 0, + palloni: 0, + cacche: 0, + cacchePartita: 0, + })) + .sort((a, b) => dividiNome(a.nome).cognome.localeCompare(dividiNome(b.nome).cognome, "it")); export type RigaClassifica = { pos: number; diff --git a/src/lib/giocatori-squadra.ts b/src/lib/giocatori-squadra.ts index 2099ff4..3a598ee 100644 --- a/src/lib/giocatori-squadra.ts +++ b/src/lib/giocatori-squadra.ts @@ -1,6 +1,6 @@ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { supabaseNuoveTabelle } from "@/integrations/supabase/client-nuove-tabelle"; -import { giocatori } from "./crapp-data"; +import { dividiNome, giocatori } from "./crapp-data"; /** * Anagrafica operativa della squadra (`giocatori_squadra`, migration M1). È la source of @@ -31,13 +31,6 @@ type RigaGiocatoreSquadra = { export const SQUADRA_KEY = ["giocatori-squadra"] as const; -/** "Carlo Di Castelnuovo" -> nome "Carlo", cognome "Di Castelnuovo". */ -export function dividiNome(completo: string): { nome: string; cognome: string } { - const spazio = completo.indexOf(" "); - if (spazio < 0) return { nome: completo, cognome: "" }; - return { nome: completo.slice(0, spazio), cognome: completo.slice(spazio + 1) }; -} - /** Rosa di riserva quando il database non risponde o non è ancora popolato. */ export function rosaFallback(): GiocatoreSquadra[] { return giocatori.map((g) => ({ @@ -78,7 +71,8 @@ async function fetchSquadra(): Promise { const { data, error } = await supabaseNuoveTabelle .from("giocatori_squadra") .select("id, nome, cognome, numero, ruolo, auth_user_id, attivo, email") - .order("id"); + .order("cognome") + .order("nome"); if (error) throw error; const righe = (data ?? []) as RigaGiocatoreSquadra[]; return righe.map((r) => ({ diff --git a/test/unit/giocatori-squadra.test.ts b/test/unit/giocatori-squadra.test.ts index 8b51a2d..fc7504d 100644 --- a/test/unit/giocatori-squadra.test.ts +++ b/test/unit/giocatori-squadra.test.ts @@ -1,7 +1,6 @@ /** Check dell'anagrafica squadra: `bun test/unit/giocatori-squadra.test.ts`. */ import assert from "node:assert/strict"; import { - dividiNome, nomeCompleto, numeroGiaUsato, prossimoIdGiocatore, @@ -11,7 +10,7 @@ import { validaDatiSquadra, type GiocatoreSquadra, } from "@/lib/giocatori-squadra"; -import { giocatori } from "@/lib/crapp-data"; +import { dividiNome, giocatori } from "@/lib/crapp-data"; const riga = (parziale: Partial = {}): GiocatoreSquadra => ({ id: "g1", diff --git a/test/unit/profili-core.test.ts b/test/unit/profili-core.test.ts index 59680f5..041b09a 100644 --- a/test/unit/profili-core.test.ts +++ b/test/unit/profili-core.test.ts @@ -10,13 +10,13 @@ import { type Profilo, } from "@/lib/profili-core"; import { - dividiNome, numeroGiaUsato, rosaFallback, slotDi, validaDatiSquadra, type GiocatoreSquadra, } from "@/lib/giocatori-squadra"; +import { dividiNome } from "@/lib/crapp-data"; const vuoto: Profilo = { giocatoreId: "g1",