frontPanel/src/pages/Questions/UploadFile/OptionsAndPicture/SettingOptionsAndPict.tsx

172 lines
5.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import type { QuizQuestionVarImg, QuizQuestionVariant } from "@frontend/squzanswerer";
import { Box, Typography, useMediaQuery, useTheme } from "@mui/material";
import { updateQuestion } from "@root/questions/actions";
import CustomCheckbox from "@ui_kit/CustomCheckbox";
import CustomTextField from "@ui_kit/CustomTextField";
import { memo } from "react";
type SettingOptionsAndPictProps = {
questionId: string;
replText: string;
isRequired: boolean;
isOwn: boolean;
};
const SettingOptionsAndPict = memo<SettingOptionsAndPictProps>(function ({ questionId, replText, isRequired, isOwn }) {
const theme = useTheme();
const isWrappColumn = useMediaQuery(theme.breakpoints.down(980));
const isFigmaTablte = useMediaQuery(theme.breakpoints.down(990));
const isTablet = useMediaQuery(theme.breakpoints.down(985));
const isMobile = useMediaQuery(theme.breakpoints.down(680));
const setReplText = (replText: string) => {
updateQuestion(questionId, (question) => {
if (question.type !== "varimg") return;
question.content.replText = replText;
});
};
return (
<>
<Box
sx={{
display: "flex",
justifyContent: "space-between",
flexDirection: isWrappColumn ? "column" : "none",
pb: "20px",
pl: "20px",
pt: isTablet ? "5px" : "0px",
}}
>
<Box
sx={{
pt: "20px",
display: "flex",
flexDirection: "column",
gap: "14px",
maxWidth: isFigmaTablte ? "297px" : "360px",
width: "100%",
}}
>
{/* <Typography
sx={{
height: isMobile ? "18px" : "auto",
fontWeight: "500",
fontSize: "18px",
color: " #4D4D4D",
}}
>
Настройки ответов
</Typography> */}
{/* <CustomCheckbox
dataCy="checkbox-own-answer"
sx={{ mr: isMobile ? "0px" : "16px" }}
label={'Вариант "свой ответ"'}
checked={isOwn}
handleChange={({ target }) => {
updateQuestion<QuizQuestionVariant>(questionId, (question) => {
question.content.own = target.checked;
});
}}
/> */}
{!isWrappColumn && (
<Box sx={{ mt: isMobile ? "11px" : "6px", width: "100%" }}>
<Typography
sx={{
height: isMobile ? "18px" : "auto",
fontWeight: "500",
fontSize: "18px",
color: " #4D4D4D",
mb: "14px",
}}
>
Текст-заглушка на картинке
</Typography>
<CustomTextField
sx={{
maxWidth: "330px",
width: "100%",
mr: isMobile ? "0px" : "16px",
}}
maxLength={60}
placeholder={"Пример текста"}
value={replText}
onChange={({ target }) => setReplText(target.value)}
/>
</Box>
)}
</Box>
<Box
sx={{
pt: isMobile ? "0px" : "20px",
pr: isFigmaTablte ? "19px" : "20px",
display: "flex",
flexDirection: "column",
gap: isMobile ? "13px" : "14px",
width: isMobile ? "auto" : "100%",
}}
>
<Typography
sx={{
height: isMobile ? "18px" : "auto",
fontWeight: "500",
fontSize: "18px",
color: " #4D4D4D",
}}
>
Настройки вопросов
</Typography>
<CustomCheckbox
dataCy="checkbox-optional-question"
sx={{ mr: isMobile ? "0px" : "16px" }}
label={"Необязательный вопрос"}
checked={!isRequired}
handleChange={({ target }) =>
updateQuestion<QuizQuestionVarImg>(questionId, (question) => {
if (question.type !== "varimg") return;
question.content.required = !target.checked;
})
}
/>
{isWrappColumn && (
<Box
sx={{
pt: "20px",
display: "flex",
flexDirection: "column",
gap: "14px",
maxWidth: isFigmaTablte ? "297px" : "360px",
width: "100%",
}}
>
<Typography
sx={{
height: isMobile ? "18px" : "auto",
fontWeight: "500",
fontSize: "18px",
color: " #4D4D4D",
}}
>
Текст-заглушка на картинке
</Typography>
<CustomTextField
sx={{ maxWidth: "360px", width: "100%" }}
placeholder={"Пример текста"}
value={replText}
maxLength={60}
onChange={({ target }) => setReplText(target.value)}
/>
</Box>
)}
</Box>
</Box>
</>
);
});
SettingOptionsAndPict.displayName = "SettingOptionsAndPict";
export default SettingOptionsAndPict;