fix
This commit is contained in:
@@ -4,10 +4,10 @@ import { useState, useMemo, useCallback, useEffect } from "react";
|
||||
import { Match, Team } from "@/lib/types";
|
||||
import { computeGroupTables, computeThirdPlaceTable } from "@/lib/standings";
|
||||
import { qualifiedThirdGroups, resolveAnnexC } from "@/lib/bracket";
|
||||
import { resolveBracket, ResolvedTie } from "@/lib/resolve-bracket";
|
||||
import { resolveBracket } from "@/lib/resolve-bracket";
|
||||
import {
|
||||
loadOverrides, saveOverrides, buildSimMatches,
|
||||
propagateSimWinners, defaultScore, SimOverrides,
|
||||
defaultScore, SimOverrides,
|
||||
} from "@/lib/simulation";
|
||||
import Bracket from "./Bracket";
|
||||
import Flag from "./Flag";
|
||||
@@ -76,11 +76,11 @@ export default function Simulation({ teams, matches }: { teams: Team[]; matches:
|
||||
);
|
||||
const simAnnexResolved = simAnnex != null;
|
||||
|
||||
const { r32, later: laterRaw } = useMemo(
|
||||
() => resolveBracket(simMatches, teams, simTables, simThirds, simAnnex, simAnnexResolved),
|
||||
const simBracket = useMemo(
|
||||
() => resolveBracket(simMatches, teams, simTables, simThirds, simAnnex, simAnnexResolved, true),
|
||||
[simMatches, teams, simTables, simThirds, simAnnex, simAnnexResolved],
|
||||
);
|
||||
const later = useMemo(() => propagateSimWinners(r32, laterRaw), [r32, laterRaw]);
|
||||
const { r32, later } = simBracket;
|
||||
const preResolved = useMemo(() => ({ r32, later }), [r32, later]);
|
||||
|
||||
// ---- Eingabeliste: offene Spiele aus dem echten Feed ----
|
||||
@@ -95,6 +95,11 @@ export default function Simulation({ teams, matches }: { teams: Team[]; matches:
|
||||
const groupPhase = openMatches.filter((m) => m.stage === "GROUP");
|
||||
const koPhase = openMatches.filter((m) => m.stage !== "GROUP");
|
||||
|
||||
// KO-Eingaben erst freigeben, wenn alle Gruppenspiele beendet sind.
|
||||
const groupPhaseComplete = matches
|
||||
.filter((m) => m.group != null)
|
||||
.every((m) => m.status === "FINISHED");
|
||||
|
||||
const hasChanges = Object.keys(overrides).length > 0;
|
||||
|
||||
return (
|
||||
@@ -144,11 +149,17 @@ export default function Simulation({ teams, matches }: { teams: Team[]; matches:
|
||||
<div style={{ fontFamily: "var(--font-display)", fontSize: 12, textTransform: "uppercase", letterSpacing: "0.06em", color: "var(--ink-faint)", marginBottom: 8 }}>
|
||||
K.o.-Phase
|
||||
</div>
|
||||
<div style={{ display: "flex", flexDirection: "column", gap: 4 }}>
|
||||
{koPhase.map((m) => (
|
||||
<SimRow key={m.id} match={m} teams={teams} overrides={overrides} onScore={handleScore} onClear={handleClear} />
|
||||
))}
|
||||
</div>
|
||||
{groupPhaseComplete ? (
|
||||
<div style={{ display: "flex", flexDirection: "column", gap: 4 }}>
|
||||
{koPhase.map((m) => (
|
||||
<SimRow key={m.id} match={m} teams={teams} overrides={overrides} onScore={handleScore} onClear={handleClear} />
|
||||
))}
|
||||
</div>
|
||||
) : (
|
||||
<div className="notice" style={{ fontSize: 13 }}>
|
||||
K.o.-Spiele werden zur Eingabe freigegeben, sobald die Gruppenphase abgeschlossen ist.
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user