import { h } from 'preact'; import { useEffect, useState } from 'preact/hooks'; import styles from '../NewGame.module.css'; interface RaceToStepProps { onNext: (raceTo: string | number) => void; onCancel: () => void; initialValue?: string | number; gameType?: string; } export const RaceToStep = ({ onNext, onCancel, initialValue = '', gameType }: RaceToStepProps) => { const quickPicks = [1, 2, 3, 4, 5, 6, 7, 8, 9]; const defaultValue = 5; const [raceTo, setRaceTo] = useState(initialValue !== '' ? initialValue : defaultValue); useEffect(() => { if ((initialValue === '' || initialValue === undefined) && raceTo !== defaultValue) { setRaceTo(defaultValue); } if (initialValue !== '' && initialValue !== undefined && initialValue !== raceTo) { setRaceTo(initialValue); } }, [gameType, initialValue, defaultValue]); const handleQuickPick = (value: number) => { const selected = value === 0 ? 'Infinity' : value; setRaceTo(selected); const raceToValue = selected === 'Infinity' ? Infinity : (parseInt(String(selected), 10) || 0); onNext(raceToValue); }; const handleInputChange = (e: Event) => { const target = e.target as HTMLInputElement; setRaceTo(target.value); }; const handleSubmit = (e: Event) => { e.preventDefault(); const raceToValue = raceTo === 'Infinity' ? Infinity : (parseInt(String(raceTo), 10) || 0); onNext(raceToValue); }; return (
Race To auswählen
{quickPicks.map(value => ( ))}
); };