2023-11-29 13:49:52 +00:00
|
|
|
|
import { AnyTypedQuizQuestion } from "@model/questionTypes/shared";
|
2023-10-24 15:18:31 +00:00
|
|
|
|
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-10-24 15:18:31 +00:00
|
|
|
|
|
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
|
|
|
|
}
|