import { Box, FormControl, FormLabel, Checkbox, FormControlLabel, useTheme, Button, useMediaQuery } from "@mui/material"; import CheckboxIcon from "@icons/Checkbox"; import AgeInputWithSelect from "./AgeInputWithSelect"; import { useState } from "react"; interface GenderAndAgeSelectorProps { gender: string; age: string; ageError: boolean; onGenderChange: (gender: string) => void; onAgeChange: (age: string) => void; onAgeErrorChange: (error: boolean) => void; onStartCreate: () => void; } export default function GenderAndAgeSelector({ gender, age, ageError, onGenderChange, onAgeChange, onAgeErrorChange, onStartCreate }: GenderAndAgeSelectorProps) { const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down(845)); const [maleChecked, setMaleChecked] = useState(false); const [femaleChecked, setFemaleChecked] = useState(false); const handleGenderChange = (type: 'male' | 'female', checked: boolean) => { if (type === 'male') { setMaleChecked(checked); } else { setFemaleChecked(checked); } // Обновляем значение gender в родительском компоненте if (type === 'male' && checked && !femaleChecked) { onGenderChange('1'); // Только мужской } else if (type === 'female' && checked && !maleChecked) { onGenderChange('0'); // Только женский } else if (type === 'male' && checked && femaleChecked) { onGenderChange('2'); // Оба пола } else if (type === 'female' && checked && maleChecked) { onGenderChange('2'); // Оба пола } else if (type === 'male' && !checked && femaleChecked) { onGenderChange('0'); // Только женский } else if (type === 'female' && !checked && maleChecked) { onGenderChange('1'); // Только мужской } else { onGenderChange(''); // Ничего не выбрано } }; return ( Пол } checkedIcon={} checked={maleChecked} onChange={(e) => handleGenderChange('male', e.target.checked)} /> } label="М" /> } checkedIcon={} checked={femaleChecked} onChange={(e) => handleGenderChange('female', e.target.checked)} /> } label="Ж" /> Возраст ); }