feat(#28): reorder new game steps and remove step labels

- Order: player1 → player2 → player3 → game type → race to → break type → first break
- Removed all step title labels from forms; kept progress dots only
- Adjusted navigation and back behavior accordingly

Refs #28
This commit is contained in:
Frank Schwenk
2025-10-30 12:01:39 +01:00
parent dc1d9a23a9
commit 81c7c9579b
2 changed files with 24 additions and 14 deletions

View File

@@ -44,7 +44,7 @@ export default function NewGameScreen({
gameType: type as any, // Type assertion for now, could be improved with proper validation
raceTo: '8'
});
onStepChange('breakRule');
onStepChange('raceTo');
};
const handleBreakRuleNext = (rule: 'winnerbreak' | 'wechselbreak') => {
@@ -54,12 +54,15 @@ export default function NewGameScreen({
const handleBreakOrderNext = (first: number, second?: number) => {
onDataChange({ breakFirst: first, breakSecond: second ?? '' });
onStepChange('raceTo');
// Final step completes via RaceTo already
onStepChange(null);
};
const handleRaceToNext = (raceTo: string) => {
const finalData = { ...data, raceTo };
onCreateGame(finalData);
// After race to, go to break rule selection
onDataChange({ raceTo });
onStepChange('breakRule');
};
const handleStepBack = () => {
@@ -73,15 +76,12 @@ export default function NewGameScreen({
case 'gameType':
onStepChange('player3');
break;
case 'breakRule':
case 'raceTo':
onStepChange('gameType');
break;
case 'breakOrder':
onStepChange('breakRule');
break;
case 'raceTo':
onStepChange('breakOrder');
break;
default:
onCancel();
}
@@ -149,6 +149,23 @@ export default function NewGameScreen({
gameType={data.gameType}
/>
)}
{step === 'breakRule' && (
<BreakRuleStep
onNext={handleBreakRuleNext}
onCancel={handleStepBack}
initialValue={(data.breakRule as any) || 'winnerbreak'}
/>
)}
{step === 'breakOrder' && (
<BreakOrderStep
players={[data.player1, data.player2, data.player3]}
rule={(data.breakRule as any) || 'winnerbreak'}
onNext={handleBreakOrderNext}
onCancel={handleStepBack}
/>
)}
</Screen>
);
}