Rende raggiungibile il voto MVP dalle card dei risultati

"Ultima partita" in home e le card di "Storico match" in squadra ora
sono link a /partita/$id quando esiste un evento di calendario con la
stessa data del risultato (CSI o scout), con un'indicazione "Vota MVP"
quando non è ancora stato eletto. Prima erano card statiche: per votare
bisognava trovare la partita a mano dal calendario.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-01 13:56:56 +02:00
co-authored by Claude Sonnet 5
parent 1a93c7657a
commit f6036f21ec
2 changed files with 72 additions and 29 deletions
+42 -24
View File
@@ -56,6 +56,9 @@ function Index() {
: null;
const obiettivi = useObiettivi();
const obiettivo = obiettivi.find((o) => progressoObiettivo(o) < 100) ?? obiettivi[0] ?? null;
const eventoUltima = ultima
? (eventi.find((e) => e.tipo === "partita" && e.data === ultima.data) ?? null)
: null;
if (!giocatore) return null;
@@ -143,30 +146,45 @@ function Index() {
}
>
{ultima ? (
<div className="premi rounded-3xl bg-card p-4 shadow-card">
<div className="flex items-center justify-between gap-3">
<div className="min-w-0">
<p className="truncate text-sm font-bold">CRAP Volley vs {ultima.avversario}</p>
<p className="text-xs text-muted-foreground">
{ultima.casa ? "In casa" : "Trasferta"}
{ultima.mvp ? ` · MVP ${ultima.mvp}` : ""}
</p>
</div>
<p className="font-display text-3xl leading-none text-accent">
{ultima.setNostri}-{ultima.setLoro}
</p>
</div>
<div className="mt-3 flex flex-wrap gap-1.5">
{ultima.parziali.map((p, i) => (
<span
key={i}
className="rounded-lg bg-secondary px-2 py-1 text-[11px] font-semibold tabular-nums"
>
{p[0]}-{p[1]}
</span>
))}
</div>
</div>
(() => {
const corpo = (
<>
<div className="flex items-center justify-between gap-3">
<div className="min-w-0">
<p className="truncate text-sm font-bold">CRAP Volley vs {ultima.avversario}</p>
<p className="text-xs text-muted-foreground">
{ultima.casa ? "In casa" : "Trasferta"}
{ultima.mvp ? ` · MVP ${ultima.mvp}` : " · MVP da votare"}
</p>
</div>
<p className="font-display text-3xl leading-none text-accent">
{ultima.setNostri}-{ultima.setLoro}
</p>
</div>
<div className="mt-3 flex flex-wrap gap-1.5">
{ultima.parziali.map((p, i) => (
<span
key={i}
className="rounded-lg bg-secondary px-2 py-1 text-[11px] font-semibold tabular-nums"
>
{p[0]}-{p[1]}
</span>
))}
</div>
</>
);
return eventoUltima ? (
<Link
to="/partita/$id"
params={{ id: eventoUltima.id }}
className="premi block rounded-3xl bg-card p-4 shadow-card active:scale-[0.99]"
>
{corpo}
</Link>
) : (
<div className="premi rounded-3xl bg-card p-4 shadow-card">{corpo}</div>
);
})()
) : (
<p className="rounded-3xl bg-card p-4 text-xs text-muted-foreground shadow-card">
Nessun risultato disponibile.