import { createFileRoute } from "@tanstack/react-router"; import { MapPin, Clock, Users, Trophy, Swords, Download } from "lucide-react"; import { cn } from "@/lib/utils"; import { Card, PageHeader, Section } from "@/components/crapp/ui-bits"; import { formatData } from "@/lib/crapp-data"; import { convocatiEvento, useEvento } from "@/lib/eventi"; import { useRosa } from "@/lib/rosa"; import { useCsi } from "@/lib/csi"; import { matchDaPartitaCsi, partiteGiocate } from "@/lib/csi-core"; import { Pagelle } from "@/components/crapp/Pagelle"; import { SondaggioCacche } from "@/components/crapp/SondaggioCacche"; import { ScoutEntry } from "@/components/crapp/ScoutEntry"; import { useScoutMatches, totaliPerGiocatore, totaliSquadra } from "@/lib/scout-store"; import { csvScoutMatch, scaricaCsv } from "@/lib/scout-export"; import { useGiocatoreCorrente } from "@/lib/user-store"; import { useIsAdmin } from "@/lib/ruoli"; import { VotazioneMvp } from "@/components/crapp/VotazioneMvp"; import { VotoSocial } from "@/components/crapp/VotoSocial"; import { TurnoPalloni } from "@/components/crapp/TurnoPalloni"; import { RosaPresenze } from "@/components/crapp/RosaPresenze"; import { usePresenzeEvento } from "@/lib/presenze"; export const Route = createFileRoute("/partita/$id")({ head: () => { const titolo = "Dettaglio partita"; return { meta: [ { title: `${titolo} — CrAPP` }, { name: "description", content: "Dettaglio partita, formazione e risultati del CRAP Volley.", }, { property: "og:title", content: `${titolo} — CrAPP` }, { property: "og:description", content: "Dettaglio partita, formazione e risultati del CRAP Volley.", }, { property: "og:type", content: "website" }, { name: "twitter:card", content: "summary" }, ], }; }, component: PartitaDetail, }); function PartitaDetail() { const { id } = Route.useParams(); const { evento } = useEvento(id); const io = useGiocatoreCorrente(); const admin = useIsAdmin(); const scoutMatches = useScoutMatches(); const { data: csi } = useCsi(); const { risposte } = usePresenzeEvento(id); const rosa = useRosa(); const presentiVeri = rosa.filter( (g) => risposte[g.id] === "presente" || risposte[g.id] === "ritardo", ).length; if (!evento) { return (
Partita non trovata
{casa ? "In casa" : "Fuori casa"} {evento.campionato ? " · Campionato" : " · Amichevole"}
{avversario}
{evento.note}
) : null}MVP eletto dalla squadra
La partita non è ancora stata disputata. Torna qui dopo il fischio finale per vedere il risultato.
{t.v}
{t.l}
Dettaglio giocatori (uso interno allenatori)