frontPanel/src/pages/Questions/UploadImage/index.tsx

58 lines
1.8 KiB
TypeScript
Raw Normal View History

2023-11-29 13:49:52 +00:00
import { AnyTypedQuizQuestion } from "@model/questionTypes/shared";
import { Box, ButtonBase, Typography, useTheme } from "@mui/material";
2023-12-04 11:57:54 +00:00
import { updateQuestion, uploadQuestionImage } from "@root/questions/actions";
2023-12-01 18:05:59 +00:00
import { useCurrentQuiz } from "@root/quizes/hooks";
2023-12-04 11:57:54 +00:00
import { CropModal, useCropModalState } from "@ui_kit/Modal/CropModal";
import { DropZone } from "../../../pages/startPage/dropZone";
2023-12-02 09:35:35 +00:00
import { useDisclosure } from "../../../utils/useDisclosure";
2023-12-04 11:57:54 +00:00
import { UploadImageModal } from "./UploadImageModal";
2023-09-05 13:54:41 +00:00
type UploadImageProps = {
2023-12-31 02:53:25 +00:00
question: AnyTypedQuizQuestion;
2023-09-05 13:54:41 +00:00
};
2023-11-15 18:38:02 +00:00
export default function UploadImage({ question }: UploadImageProps) {
2023-12-31 02:53:25 +00:00
const theme = useTheme();
const quiz = useCurrentQuiz();
2023-12-31 02:53:25 +00:00
if (!quiz) return null;
2023-09-05 13:54:41 +00:00
2023-12-31 02:53:25 +00:00
return (
<Box sx={{ padding: "20px" }}>
<Typography
sx={{
fontWeight: 500,
color: theme.palette.grey3.main,
mt: "11px",
mb: "14px",
}}
>
Загрузить изображение
</Typography>
<DropZone
text={"5 MB максимум"}
heightImg={"110px"}
sx={{ maxWidth: "300px", width: "100%" }}
imageUrl={question.content.back}
originalImageUrl={question.content.originalBack}
onImageUploadClick={(file) => {
uploadQuestionImage(question.id, quiz.qid, file, (question, url) => {
question.content.back = url;
question.content.originalBack = url;
});
}}
onDeleteClick={() => {
updateQuestion(question.id, (question) => {
question.content.back = null;
});
}}
onImageSaveClick={(file) => {
uploadQuestionImage(question.id, quiz.qid, file, (question, url) => {
question.content.back = url;
});
}}
/>
</Box>
);
2023-09-05 13:54:41 +00:00
}