From 595f4b041b6529227c71240cfdf5be517cc74d27 Mon Sep 17 00:00:00 2001 From: Nastya Date: Fri, 6 Jun 2025 16:06:50 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9C=D0=BE=D0=B6=D0=BD=D0=BE=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D1=82=D1=8C=20=D0=BE=D0=B1=D0=B0=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GenderAndAgeSelector.tsx | 52 +++++++++++----- src/pages/PersonalizationAI/GenderButton.tsx | 61 +++++++++++++++++++ .../PersonalizationAI/GenderSelector.tsx | 54 ++++++++++++++++ 3 files changed, 151 insertions(+), 16 deletions(-) create mode 100644 src/pages/PersonalizationAI/GenderButton.tsx create mode 100644 src/pages/PersonalizationAI/GenderSelector.tsx diff --git a/src/pages/PersonalizationAI/GenderAndAgeSelector.tsx b/src/pages/PersonalizationAI/GenderAndAgeSelector.tsx index 267d9e78..f344038f 100644 --- a/src/pages/PersonalizationAI/GenderAndAgeSelector.tsx +++ b/src/pages/PersonalizationAI/GenderAndAgeSelector.tsx @@ -1,4 +1,4 @@ -import { Box, FormControl, FormLabel, RadioGroup, FormControlLabel, Radio, Select, MenuItem, useTheme, Button, useMediaQuery, IconButton } from "@mui/material"; +import { Box, FormControl, FormLabel, FormGroup, FormControlLabel, Checkbox, Select, MenuItem, useTheme, Button, useMediaQuery, IconButton } from "@mui/material"; import { InfoPopover } from '@ui_kit/InfoPopover'; import CheckboxIcon from "@icons/Checkbox"; import { useState } from "react"; @@ -15,7 +15,7 @@ interface GenderAndAgeSelectorProps { export default function GenderAndAgeSelector({ handleAdd }: GenderAndAgeSelectorProps) { const theme = useTheme(); const [age, setAge] = useState(''); - const [gender, setGender] = useState(''); + const [gender, setGender] = useState([]); const [selectOpen, setSelectOpen] = useState(false); const quiz = useCurrentQuiz(); const { enqueueSnackbar } = useSnackbar(); @@ -32,7 +32,7 @@ export default function GenderAndAgeSelector({ handleAdd }: GenderAndAgeSelector const [result, error] = await auditoryAdd({ quizId: quiz.backendId, body: { - sex: gender === "male", + sex: gender.includes("male"), age } }); @@ -46,13 +46,13 @@ export default function GenderAndAgeSelector({ handleAdd }: GenderAndAgeSelector handleAdd({ id: result.ID, quiz_id: quiz.backendId, - sex: gender === "male", + sex: gender.includes("male"), age, deleted: false, }); enqueueSnackbar('Ссылка успешно добавлена', { variant: 'success' }); // Очищаем форму - setGender(''); + setGender([]); setAge(''); } } catch (error) { @@ -81,7 +81,7 @@ export default function GenderAndAgeSelector({ handleAdd }: GenderAndAgeSelector component="legend">Пол - setGender(e.target.value)} > } checkedIcon={} />} + control={ + { + if (e.target.checked) { + setGender([...gender, 'male']); + } else { + setGender(gender.filter(g => g !== 'male')); + } + }} + icon={} + checkedIcon={} + /> + } label="М" /> } checkedIcon={} />} + control={ + { + if (e.target.checked) { + setGender([...gender, 'female']); + } else { + setGender(gender.filter(g => g !== 'female')); + } + }} + icon={} + checkedIcon={} + /> + } label="Ж" /> - + @@ -178,7 +198,7 @@ export default function GenderAndAgeSelector({ handleAdd }: GenderAndAgeSelector