This commit is contained in:
2026-06-23 03:56:48 +01:00
parent ffd68f0e13
commit 8b8f645ec0
+16 -14
View File
@@ -5345,7 +5345,7 @@ function TournamentStandings({ standings }) {
) )
} }
function TournamentListColumn({ column, navigate }) { function TournamentListColumn({ column, navigate, highlight, onHover }) {
const [collapsed, setCollapsed] = useState(false) const [collapsed, setCollapsed] = useState(false)
return ( return (
<div className={`tournament-list-column${collapsed ? ' is-collapsed' : ''}`}> <div className={`tournament-list-column${collapsed ? ' is-collapsed' : ''}`}>
@@ -5361,29 +5361,31 @@ function TournamentListColumn({ column, navigate }) {
</button> </button>
{collapsed ? null : ( {collapsed ? null : (
<div className="grid grid-cols-2 gap-3"> <div className="grid grid-cols-2 gap-3">
{column.matches.map((match) => ( {column.matches.map((match) => {
<TournamentMatchCard const traced = traceClass(teamsOf(match), highlight)
key={`${match.type_bracket}-${match.match_id}`} return (
match={match} <div className={`tournament-match-node${traced}`} key={`${match.type_bracket}-${match.match_id}`}>
navigate={navigate} <TournamentMatchCard match={match} navigate={navigate} onHover={onHover} />
/> </div>
))} )
})}
</div> </div>
)} )}
</div> </div>
) )
} }
function TournamentListSide({ side, navigate }) { function TournamentListSide({ side, navigate, highlight, onHover }) {
const active = Boolean(highlight)
return ( return (
<div className="bracket-side"> <div className="bracket-side">
<p className="mb-3 text-sm font-semibold uppercase tracking-wide text-fury-violet"> <p className="mb-3 text-sm font-semibold uppercase tracking-wide text-fury-violet">
{side.label} {side.label}
</p> </p>
<BracketViewport> <BracketViewport>
<div className="tournament-bracket-grid"> <div className={`tournament-bracket-grid${active ? ' has-trace' : ''}`}>
{side.columns.map((column) => ( {side.columns.map((column) => (
<TournamentListColumn column={column} key={column.id} navigate={navigate} /> <TournamentListColumn column={column} highlight={highlight} key={column.id} navigate={navigate} onHover={onHover} />
))} ))}
</div> </div>
</BracketViewport> </BracketViewport>
@@ -5391,11 +5393,11 @@ function TournamentListSide({ side, navigate }) {
) )
} }
function TournamentMatchList({ sides, navigate }) { function TournamentMatchList({ sides, navigate, highlight, onHover }) {
return ( return (
<div className="space-y-6"> <div className="space-y-6">
{sides.map((side) => ( {sides.map((side) => (
<TournamentListSide key={side.key} side={side} navigate={navigate} /> <TournamentListSide highlight={highlight} key={side.key} navigate={navigate} onHover={onHover} side={side} />
))} ))}
</div> </div>
) )
@@ -5515,7 +5517,7 @@ function TournamentDetailPage({ tournamentId, navigate }) {
<div className="space-y-4"> <div className="space-y-4">
{bracketSides.length ? <h2 className="text-lg font-semibold">Group stage</h2> : null} {bracketSides.length ? <h2 className="text-lg font-semibold">Group stage</h2> : null}
{hasStandings ? <TournamentStandings standings={standings} /> : null} {hasStandings ? <TournamentStandings standings={standings} /> : null}
{listSides.length ? <TournamentMatchList sides={listSides} navigate={navigate} /> : null} {listSides.length ? <TournamentMatchList highlight={highlight} navigate={navigate} onHover={onHover} sides={listSides} /> : null}
</div> </div>
) : null} ) : null}