import { useState } from "react"; import { SUPPORTED_LANGUAGE_CODES, SUPPORTED_POS, DIFFICULTY_LEVELS, GAME_ROUNDS, } from "@lila/shared"; import type { GameRequest } from "@lila/shared"; const LABELS: Record = { en: "English", it: "Italian", noun: "Nouns", verb: "Verbs", easy: "Easy", intermediate: "Intermediate", hard: "Hard", "3": "3 rounds", "10": "10 rounds", }; type GameSetupProps = { onStart: (settings: GameRequest) => void }; type SettingGroupProps = { label: string; options: readonly string[]; selected: string; onSelect: (value: string) => void; }; const SettingGroup = ({ label, options, selected, onSelect, }: SettingGroupProps) => (

{label}

{options.map((option) => ( ))}
); export const GameSetup = ({ onStart }: GameSetupProps) => { const [sourceLanguage, setSourceLanguage] = useState( SUPPORTED_LANGUAGE_CODES[0], ); const [targetLanguage, setTargetLanguage] = useState( SUPPORTED_LANGUAGE_CODES[1], ); const [pos, setPos] = useState(SUPPORTED_POS[0]); const [difficulty, setDifficulty] = useState(DIFFICULTY_LEVELS[0]); const [rounds, setRounds] = useState(GAME_ROUNDS[0]); const handleSourceLanguage = (value: string) => { if (value === targetLanguage) { setTargetLanguage(sourceLanguage); } setSourceLanguage(value); }; const handleTargetLanguage = (value: string) => { if (value === sourceLanguage) { setSourceLanguage(targetLanguage); } setTargetLanguage(value); }; const handleStart = () => { onStart({ source_language: sourceLanguage, target_language: targetLanguage, pos, difficulty, rounds, } as GameRequest); }; return (

lila

Set up your quiz

); };