diff --git a/src/lib/features/new-game/steps/BreakOrderStep.tsx b/src/lib/features/new-game/steps/BreakOrderStep.tsx index 7708124..20ca93e 100644 --- a/src/lib/features/new-game/steps/BreakOrderStep.tsx +++ b/src/lib/features/new-game/steps/BreakOrderStep.tsx @@ -27,10 +27,17 @@ export const BreakOrderStep = ({ players, rule, onNext, onCancel, initialFirst = const handleFirst = (idx: number) => { setFirst(idx); + const isImmediateFlow = rule !== 'wechselbreak' || playerCount !== 3; + if (isImmediateFlow) { + onNext(idx); + } }; const handleSecond = (idx: number) => { setSecond(idx); + if (rule === 'wechselbreak' && playerCount === 3 && first > 0) { + onNext(first, idx); + } }; const handleSubmit = (e: Event) => { diff --git a/src/lib/features/new-game/steps/BreakRuleStep.tsx b/src/lib/features/new-game/steps/BreakRuleStep.tsx index c87c97a..e9297d6 100644 --- a/src/lib/features/new-game/steps/BreakRuleStep.tsx +++ b/src/lib/features/new-game/steps/BreakRuleStep.tsx @@ -16,6 +16,7 @@ export const BreakRuleStep = ({ onNext, onCancel, initialValue = 'winnerbreak' } const handleSelect = (nextRule: BreakRule) => { setRule(nextRule); + onNext(nextRule); }; const handleSubmit = (e: Event) => { diff --git a/src/lib/features/new-game/steps/GameTypeStep.tsx b/src/lib/features/new-game/steps/GameTypeStep.tsx index a3497f2..53e9340 100644 --- a/src/lib/features/new-game/steps/GameTypeStep.tsx +++ b/src/lib/features/new-game/steps/GameTypeStep.tsx @@ -16,6 +16,7 @@ export const GameTypeStep = ({ onNext, onCancel, initialValue = '' }: GameTypeSt const handleSelect = (selectedType: string) => { setGameType(selectedType); + onNext(selectedType); }; const handleSubmit = (e: Event) => { diff --git a/src/lib/features/new-game/steps/RaceToStep.tsx b/src/lib/features/new-game/steps/RaceToStep.tsx index aa34cfc..bbad175 100644 --- a/src/lib/features/new-game/steps/RaceToStep.tsx +++ b/src/lib/features/new-game/steps/RaceToStep.tsx @@ -23,6 +23,11 @@ export const RaceToStep = ({ onNext, onCancel, initialValue = '', gameType }: Ra initialValue !== '' ? initialValue : defaultValue ); + const toRaceToValue = (value: string | number) => { + if (value === RACE_TO_INFINITY || value === 'Infinity') return Infinity; + return parseInt(String(value), 10) || 0; + }; + useEffect(() => { if (initialValue === '' || initialValue === undefined) { setRaceTo(defaultValue); @@ -34,6 +39,7 @@ export const RaceToStep = ({ onNext, onCancel, initialValue = '', gameType }: Ra const handleQuickPick = (value: number | typeof RACE_TO_INFINITY) => { const selected = value === RACE_TO_INFINITY ? RACE_TO_INFINITY : value; setRaceTo(selected); + onNext(toRaceToValue(selected)); }; const handleInputChange = (e: Event) => { @@ -43,8 +49,7 @@ export const RaceToStep = ({ onNext, onCancel, initialValue = '', gameType }: Ra const handleSubmit = (e: Event) => { e.preventDefault(); - const raceToValue = raceTo === 'Infinity' ? Infinity : (parseInt(String(raceTo), 10) || 0); - onNext(raceToValue); + onNext(toRaceToValue(raceTo)); }; return (