import { PickerSelect } from "./PickerSelect"; import { LAST_STANDING, WIN_REASONS, type WinReason, winReasonLabel } from "../domain/winReasons"; const REASON_OPTIONS = WIN_REASONS.map((w) => ({ id: w.code, label: w.label })); const NO_ROUND = 0; /** * Итог партии в форме завершения и правки результатов: причина победы, раунд окончания * и предупреждения о несогласованном вводе. «Последний выживший» не выбирается — * пока выживший один, причина зафиксирована (её ставит родитель, см. reasonForSurvivors). */ export function MatchOutcomeFields({ winReason, onReason, endRound, onEndRound, maxRounds, warnings, }: { winReason: WinReason | null; onReason: (reason: WinReason) => void; endRound: number | null; onEndRound: (round: number | null) => void; maxRounds: number; warnings: string[]; }) { const roundOptions = [ { id: NO_ROUND, label: "не указан" }, ...Array.from({ length: maxRounds }, (_, i) => ({ id: i + 1, label: `${i + 1}-й` })), ]; return (
Раунд, цели и миры необязательны, но делают рейтинг точнее: быстрая и крупная победа весит больше.
{warnings.length > 0 && (