import React, { useState } from 'react'; import { Player, GameState } from '../../types'; import { useGameStateContext } from '../../context/GameStateContext'; const SetupScreen: React.FC = () => { const { gameState, updatePlayers, updateCardValues, addPlayer, startNewGame } = useGameStateContext(); const [newPlayerName, setNewPlayerName] = useState(''); const handleAddPlayer = () => { if (newPlayerName.trim() && gameState.players.length < 10) { addPlayer(newPlayerName.trim()); setNewPlayerName(''); } }; const handleKeyDown = (e: React.KeyboardEvent) => { if (e.key === 'Enter') { handleAddPlayer(); } }; const handleCardValueChange = (suit: 'Schellen' | 'Schilten' | 'Eicheln' | 'Rosen', value: number) => { updateCardValues({ ...gameState.cardValues, [suit]: value }); }; const resetCardValues = () => { updateCardValues({ Schellen: 11, Schilten: 12, Eicheln: 10, Rosen: 10 }); }; const startGame = () => { if (gameState.players.length >= 2) { startNewGame(); } }; return (

🎴 Tschausepp - Jass Card Tracker

Setup a New Game

{gameState.players.map((player: Player, index: number) => (

👤 {index + 1}. {player.name}

))}
setNewPlayerName(e.target.value)} onKeyDown={handleKeyDown} maxLength={20} placeholder="Enter player name" />

Card Value Configuration

Configure point values for each suit:

Schellen: handleCardValueChange('Schellen', Number(e.target.value))} min="1" max="20" />
Schilten: handleCardValueChange('Schilten', Number(e.target.value))} min="1" max="20" />
Eicheln: handleCardValueChange('Eicheln', Number(e.target.value))} min="1" max="20" />
Rosen: handleCardValueChange('Rosen', Number(e.target.value))} min="1" max="20" />
{ const value = Number(e.target.value); updateCardValues({ Schellen: value, Schilten: value, Eicheln: value, Rosen: value }); }} />
); }; export default SetupScreen;