import React, { useMemo } from "react"; import BracketView from "@/features/bracket/components/bracket-view"; import { groupMatchesIntoBracket } from "@/features/bracket/utils/group"; import { Match } from "@/features/matches/types"; import { PicksMap } from "../types"; import { PickResult, resolvePredictedBracket } from "../utils"; import { PredictionMatchCard } from "./prediction-match-card"; interface PredictionBracketProps { matches: Match[]; picks: PicksMap; mode: "edit" | "view"; perMatch?: Map; activeLid?: number; onActivate?: (lid: number) => void; } export const PredictionBracket: React.FC = ({ matches, picks, mode, perMatch, activeLid, onActivate, }) => { const bracket = useMemo(() => groupMatchesIntoBracket(matches), [matches]); const resolved = useMemo( () => resolvePredictedBracket(matches, picks), [matches, picks] ); const orders = useMemo(() => { const map: Record = {}; bracket.winners.flat().forEach((match) => (map[match.lid] = match.order)); bracket.losers.flat().forEach((match) => (map[match.lid] = match.order)); return map; }, [bracket]); return ( ( onActivate(match.lid) : undefined } /> )} /> ); };