much better bracket viewer, better bracket structure

This commit is contained in:
yohlo
2025-08-23 13:42:35 -05:00
parent 942374d45d
commit ee97606279
6 changed files with 229 additions and 541 deletions

View File

@@ -0,0 +1,52 @@
interface Match {
lid: number;
round: number;
order: number | null;
type: string;
home: any;
away?: any;
reset?: boolean;
}
interface BracketData {
winners: Match[][];
losers: Match[][];
}
export interface BracketMaps {
matchByLid: Map<number, Match>;
matchByOrder: Map<number, Match>;
allMatches: Match[];
}
export function createBracketMaps(bracketData: BracketData): BracketMaps {
const matchByLid = new Map<number, Match>();
const matchByOrder = new Map<number, Match>();
const allMatches: Match[] = [];
[...bracketData.winners, ...bracketData.losers].forEach(round => {
round.forEach(match => {
matchByLid.set(match.lid, match);
if (match.order !== null && match.order !== undefined) {
matchByOrder.set(match.order, match);
}
allMatches.push(match);
});
});
return {
matchByLid,
matchByOrder,
allMatches
};
}
export function getMatchByLid(maps: BracketMaps, lid: number): Match | undefined {
return maps.matchByLid.get(lid);
}
export function getMatchByOrder(maps: BracketMaps, order: number): Match | undefined {
return maps.matchByOrder.get(order);
}