fix bugs
This commit is contained in:
commit
0cd932ec45
@ -35,9 +35,11 @@ export default function OptionsAndPicture({
|
|||||||
const [selectedVariantId, setSelectedVariantId] = useState<string | null>(
|
const [selectedVariantId, setSelectedVariantId] = useState<string | null>(
|
||||||
null,
|
null,
|
||||||
);
|
);
|
||||||
const variant = useMemo(() => question.content.variants.find(
|
const variant = question.content.variants.find(
|
||||||
(variant) => variant.id === selectedVariantId,
|
(variant) => variant.id === selectedVariantId,
|
||||||
),[selectedVariantId])
|
)
|
||||||
|
console.log("variant")
|
||||||
|
console.log(variant)
|
||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
const isMobile = useMediaQuery(theme.breakpoints.down(790));
|
const isMobile = useMediaQuery(theme.breakpoints.down(790));
|
||||||
const quizQid = useCurrentQuiz()?.qid;
|
const quizQid = useCurrentQuiz()?.qid;
|
||||||
@ -48,6 +50,7 @@ export default function OptionsAndPicture({
|
|||||||
|
|
||||||
setPictureUploading(true);
|
setPictureUploading(true);
|
||||||
|
|
||||||
|
closeImageUploadModal();
|
||||||
const url = await uploadQuestionImage(
|
const url = await uploadQuestionImage(
|
||||||
question.id,
|
question.id,
|
||||||
quizQid,
|
quizQid,
|
||||||
@ -64,7 +67,7 @@ export default function OptionsAndPicture({
|
|||||||
variant.originalImageUrl = url;
|
variant.originalImageUrl = url;
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
closeImageUploadModal();
|
setOpenCropModal(true)
|
||||||
|
|
||||||
setPictureUploading(false);
|
setPictureUploading(false);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -35,9 +35,9 @@ export default function OptionsPicture({
|
|||||||
const [openCropModal, setOpenCropModal] = useState(false);
|
const [openCropModal, setOpenCropModal] = useState(false);
|
||||||
|
|
||||||
const [selectedVariantId, setSelectedVariantId] = useState<string | null>(null);
|
const [selectedVariantId, setSelectedVariantId] = useState<string | null>(null);
|
||||||
const variant = useMemo(() => question.content.variants.find(
|
const variant = question.content.variants.find(
|
||||||
(variant) => variant.id === selectedVariantId,
|
(variant) => variant.id === selectedVariantId,
|
||||||
),[selectedVariantId])
|
)
|
||||||
|
|
||||||
const [switchState, setSwitchState] = useState("setting");
|
const [switchState, setSwitchState] = useState("setting");
|
||||||
const isMobile = useMediaQuery(theme.breakpoints.down(790));
|
const isMobile = useMediaQuery(theme.breakpoints.down(790));
|
||||||
|
|||||||
@ -26,6 +26,7 @@ export default function UploadImage({
|
|||||||
|
|
||||||
if (!quiz) return null;
|
if (!quiz) return null;
|
||||||
console.log(question)
|
console.log(question)
|
||||||
|
console.log(quiz)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Box sx={{ padding: "20px" }}>
|
<Box sx={{ padding: "20px" }}>
|
||||||
@ -72,6 +73,7 @@ export default function UploadImage({
|
|||||||
updateQuestion(question.id, (question) => {
|
updateQuestion(question.id, (question) => {
|
||||||
question.content.back = null;
|
question.content.back = null;
|
||||||
question.content.originalBack = null;
|
question.content.originalBack = null;
|
||||||
|
if ("editedUrlImagesList" in question.content) question.content.editedUrlImagesList = null;
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
onImageSavedClick={() => {
|
onImageSavedClick={() => {
|
||||||
@ -84,7 +86,7 @@ export default function UploadImage({
|
|||||||
editedUrlImagesList={question.content?.editedUrlImagesList}
|
editedUrlImagesList={question.content?.editedUrlImagesList}
|
||||||
questionId={question.id.toString()}
|
questionId={question.id.toString()}
|
||||||
questionType={question.type}
|
questionType={question.type}
|
||||||
quizId={quiz.id}
|
quizId={quiz.qid}
|
||||||
open={openCropModal}
|
open={openCropModal}
|
||||||
selfClose={() => setOpenCropModal(false)}
|
selfClose={() => setOpenCropModal(false)}
|
||||||
setPictureUploading={setPictureUploading}
|
setPictureUploading={setPictureUploading}
|
||||||
|
|||||||
@ -97,7 +97,7 @@ export const DropZone = ({
|
|||||||
handleImageChange={handleImageUpload}
|
handleImageChange={handleImageUpload}
|
||||||
/>
|
/>
|
||||||
<ButtonBase
|
<ButtonBase
|
||||||
onClick={ () => onImageSavedClick ? onImageSavedClick() : openImageUploadModal()
|
onClick={ () => onImageSavedClick &&imageUrl ? onImageSavedClick() : openImageUploadModal()
|
||||||
}
|
}
|
||||||
sx={{
|
sx={{
|
||||||
width: "100%",
|
width: "100%",
|
||||||
|
|||||||
@ -45,6 +45,7 @@ export const MediaSelectionAndDisplay: FC<Iprops> = ({
|
|||||||
async function handleImageUpload(file: File) {
|
async function handleImageUpload(file: File) {
|
||||||
setPictureUploading(true);
|
setPictureUploading(true);
|
||||||
|
|
||||||
|
closeImageUploadModal();
|
||||||
const url = await uploadQuestionImage(
|
const url = await uploadQuestionImage(
|
||||||
resultData.id,
|
resultData.id,
|
||||||
quizQid,
|
quizQid,
|
||||||
@ -54,7 +55,7 @@ export const MediaSelectionAndDisplay: FC<Iprops> = ({
|
|||||||
question.content.originalBack = url;
|
question.content.originalBack = url;
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
closeImageUploadModal();
|
setOpenCropModal(true)
|
||||||
|
|
||||||
setPictureUploading(false);
|
setPictureUploading(false);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -50,9 +50,7 @@ export const CropModalInit: FC<CropOnOpenType> = ({
|
|||||||
(async () => {
|
(async () => {
|
||||||
let newImageBlob = imageBlob;
|
let newImageBlob = imageBlob;
|
||||||
if (originalImageUrl !== undefined) {
|
if (originalImageUrl !== undefined) {
|
||||||
const response = await fetch(originalImageUrl, {
|
const response = await fetch(originalImageUrl);
|
||||||
mode: 'no-cors',
|
|
||||||
});
|
|
||||||
newImageBlob = await response.blob();
|
newImageBlob = await response.blob();
|
||||||
console.log(newImageBlob)
|
console.log(newImageBlob)
|
||||||
};
|
};
|
||||||
@ -61,7 +59,7 @@ export const CropModalInit: FC<CropOnOpenType> = ({
|
|||||||
const isGif = await isImageBlobAGifFile(newImageBlob);
|
const isGif = await isImageBlobAGifFile(newImageBlob);
|
||||||
if (isGif) {
|
if (isGif) {
|
||||||
saveImagesAndRules(newImageBlob);
|
saveImagesAndRules(newImageBlob);
|
||||||
return;
|
return setPictureUploading(false);
|
||||||
}
|
}
|
||||||
//Для работы нам нужны урлы. Оригинальной и редактированных картинок
|
//Для работы нам нужны урлы. Оригинальной и редактированных картинок
|
||||||
let newOriginalImageUrl = originalImageUrl || URL.createObjectURL(newImageBlob)
|
let newOriginalImageUrl = originalImageUrl || URL.createObjectURL(newImageBlob)
|
||||||
@ -157,48 +155,61 @@ export const CropModalInit: FC<CropOnOpenType> = ({
|
|||||||
const saveImagesAndRules = async () => {
|
const saveImagesAndRules = async () => {
|
||||||
setPictureUploading(true)
|
setPictureUploading(true)
|
||||||
if (editedImages === null) return;
|
if (editedImages === null) return;
|
||||||
|
|
||||||
|
closeModal();
|
||||||
|
|
||||||
|
//массив запросов
|
||||||
|
const requests: Promise<void>[] = [];
|
||||||
|
|
||||||
//Преобразовываем и отправляем на бек картинки.
|
//Преобразовываем и отправляем на бек картинки.
|
||||||
|
|
||||||
if (variantId) {//Работаем с вариантом
|
if (variantId) {//Работаем с вариантом
|
||||||
for (let k in editedImages) {
|
for (let k in editedImages) {
|
||||||
let key = k;
|
requests.push(new Promise(async (resolve) => {
|
||||||
|
|
||||||
const img = document.createElement("img");
|
let key = k;
|
||||||
img.crossOrigin = 'anonymous';
|
|
||||||
img.src = editedImages[key].url;
|
|
||||||
const blob = await getModifiedImageBlob(img, editedImages[key].newRules.crop, editedImages[key].newRules.darken);
|
|
||||||
|
|
||||||
uploadQuestionImage(questionId, quizId, blob, (question, url) => {
|
const img = document.createElement("img");
|
||||||
if (!("variants" in question.content)) return;
|
img.crossOrigin = 'anonymous';
|
||||||
|
img.src = editedImages[key].url;
|
||||||
|
const blob = await getModifiedImageBlob(img, editedImages[key].newRules.crop, editedImages[key].newRules.darken);
|
||||||
|
|
||||||
const variant = question.content.variants.find(
|
uploadQuestionImage(questionId, quizId, blob, (question, url) => {
|
||||||
(variant) => variant.id === variantId,
|
if (!("variants" in question.content)) return;
|
||||||
);
|
|
||||||
if (!variant) return;
|
|
||||||
if (!("editedUrlImagesList" in variant)) variant.editedUrlImagesList = {}
|
|
||||||
|
|
||||||
variant.editedUrlImagesList[key] = url;
|
const variant = question.content.variants.find(
|
||||||
});
|
(variant) => variant.id === variantId,
|
||||||
|
);
|
||||||
|
if (!variant) return;
|
||||||
|
if (!variant.editedUrlImagesList) variant.editedUrlImagesList = {}
|
||||||
|
|
||||||
|
variant.editedUrlImagesList[key] = url;
|
||||||
|
resolve()
|
||||||
|
});
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
} else {//Работаем с контентом
|
} else {//Работаем с контентом
|
||||||
|
|
||||||
for (let k in editedImages) {
|
for (let k in editedImages) {
|
||||||
let key = k;
|
requests.push(new Promise(async (resolve) => {
|
||||||
|
|
||||||
const img = document.createElement("img");
|
let key = k;
|
||||||
img.crossOrigin = 'anonymous';
|
|
||||||
img.src = editedImages[key].url;
|
|
||||||
const blob = await getModifiedImageBlob(img, editedImages[key].newRules.crop, editedImages[key].newRules.darken);
|
|
||||||
|
|
||||||
uploadQuestionImage(questionId, quizId, blob, (question, url) => {
|
const img = document.createElement("img");
|
||||||
if (!("editedUrlImagesList" in question.content)) question.content.editedUrlImagesList = {};
|
img.crossOrigin = 'anonymous';
|
||||||
|
img.src = editedImages[key].url;
|
||||||
|
const blob = await getModifiedImageBlob(img, editedImages[key].newRules.crop, editedImages[key].newRules.darken);
|
||||||
|
|
||||||
question.content.editedUrlImagesList[key] = url;
|
uploadQuestionImage(questionId, quizId, blob, (question, url) => {
|
||||||
});
|
if (!question.content.editedUrlImagesList) question.content.editedUrlImagesList = {};
|
||||||
|
|
||||||
|
question.content.editedUrlImagesList[key] = url;
|
||||||
|
resolve()
|
||||||
|
});
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
closeModal();
|
await Promise.all(requests)
|
||||||
setPictureUploading(false);
|
setPictureUploading(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user