diff --git a/lib/components/ViewPublicationPage/questions/Images/OwnImage.tsx b/lib/components/ViewPublicationPage/questions/Images/OwnImage.tsx index 6bc468d..bcff06e 100644 --- a/lib/components/ViewPublicationPage/questions/Images/OwnImage.tsx +++ b/lib/components/ViewPublicationPage/questions/Images/OwnImage.tsx @@ -55,7 +55,7 @@ export const OwnImage = ({ imageUrl, questionId, variantId, onValidationError }: }); const fileId = data?.data.fileIDMap[questionId]; const localImageUrl = URL.createObjectURL(file); - updateOwnVariant(variantId, "", "", fileId, localImageUrl); + updateOwnVariant(variantId, null, "", fileId, localImageUrl); } catch (error) { console.error("Error uploading image:", error); enqueueSnackbar(t("The answer was not counted")); diff --git a/lib/components/ViewPublicationPage/questions/Variant/VariantItem.tsx b/lib/components/ViewPublicationPage/questions/Variant/VariantItem.tsx index 6dbf913..eb8cd62 100644 --- a/lib/components/ViewPublicationPage/questions/Variant/VariantItem.tsx +++ b/lib/components/ViewPublicationPage/questions/Variant/VariantItem.tsx @@ -66,6 +66,7 @@ const OwnInput = ({ questionId, variant, largeCheck, ownPlaceholder }: OwnInputP value={ownAnswer} onClick={(e: React.MouseEvent) => e.stopPropagation()} onChange={(e: React.ChangeEvent) => { + console.log("клик", e.target.value); updateOwnVariant(variant.id, e.target.value); }} /> diff --git a/lib/stores/quizView.ts b/lib/stores/quizView.ts index 9fa7c36..a2c6a11 100644 --- a/lib/stores/quizView.ts +++ b/lib/stores/quizView.ts @@ -32,7 +32,7 @@ interface QuizViewActions { deleteAnswer: (questionId: string) => void; updateOwnVariant: ( id: string, // - answer: string, // + answer: string | null, // extendedText?: string, // originalImageUrl?: string, // localImageUrl?: string // @@ -55,8 +55,8 @@ export const createQuizViewStore = () => immer( devtools( (set, get) => ({ - answers: [], - ownVariants: [], + answers: [], //Массив вообще всех ответов. Объекты хранят инфо о id вопроса и списке выбранных ответов + ownVariants: [], //Подробное описание ответов для особенных. Здесь подробно расписана вся кастомизация ответов в own вариантах points: {}, pointsSum: 0, currentQuizStep: "startpage", @@ -99,10 +99,7 @@ export const createQuizViewStore = () => updateOwnVariant(id, answer, extendedText, originalImageUrl, localImageUrl) { set( (state) => { - console.log("Случился вызов варианта свой ответ. Вот что в моих стор массивах на данный момент:"); - console.log("answers", state.answers); - console.log("ownVariants", state.ownVariants); - console.log("Случился вызов варианта свой ответ. Вот что я получил:"); + console.log("!!! STORE !!! ___ Случился вызов варианта свой ответ. Вот что я получил:"); console.log(id, answer, extendedText, originalImageUrl, localImageUrl); const index = state.ownVariants.findIndex((variant) => variant.id === id); @@ -111,7 +108,7 @@ export const createQuizViewStore = () => id, variant: { id: id, - answer, + answer: answer === null ? state.ownVariants[index].variant.answer : answer, extendedText: extendedText || "", hints: "", originalImageUrl: originalImageUrl || "", @@ -119,7 +116,7 @@ export const createQuizViewStore = () => }, }); } else { - state.ownVariants[index].variant.answer = answer; + if (answer !== null) state.ownVariants[index].variant.answer = answer; if (extendedText !== undefined) { state.ownVariants[index].variant.extendedText = extendedText; } diff --git a/lib/utils/defineDomain.ts b/lib/utils/defineDomain.ts index 35ebd4a..94278b9 100644 --- a/lib/utils/defineDomain.ts +++ b/lib/utils/defineDomain.ts @@ -5,7 +5,7 @@ let domain = "https://hbpn.link"; const currentDomain = location.hostname; -let isProduction = !( +const isProduction = !( currentDomain === "s.hbpn.link" || currentDomain.includes("localhost") || currentDomain.includes("127.0.0.1") diff --git a/lib/utils/sendQuestionAnswer.ts b/lib/utils/sendQuestionAnswer.ts index 623d986..b2c4195 100644 --- a/lib/utils/sendQuestionAnswer.ts +++ b/lib/utils/sendQuestionAnswer.ts @@ -100,7 +100,9 @@ export async function sendQuestionAnswer( return; } case "images": { + console.log("Работает отправщик ответа для типа КАРТИНКИ"); if (question.content.multi) { + console.log("Этот вопрос есть МУЛЬТИ"); const answer = questionAnswer.answer; const ownAnswer = Array.isArray(answer) ? ownVariants[ownVariants.findIndex((variant) => answer.some((a: string) => a === variant.id))]?.variant @@ -148,15 +150,20 @@ export async function sendQuestionAnswer( qid: quizId, }); } + console.log("Этот вопрос НЕ есть МУЛЬТИ"); const variant = question.content.variants.find((v) => v.id === questionAnswer.answer); if (!variant) throw new Error(`Cannot find variant with id ${questionAnswer.answer} in question ${question.id}`); + // Берем fileId из ownVariants для own вариантов + const ownVariantData = ownVariants.find((v) => v.id === variant.id)?.variant; + + console.log("Был выбран вариант ", variant); + console.log("Был выбран ownVariant ", ownVariantData); + let imageValue = variant.extendedText; if (variant.isOwn) { - // Берем fileId из ownVariants для own вариантов - const ownVariantData = ownVariants.find((v) => v.id === variant.id)?.variant; if (ownVariantData?.originalImageUrl) { // Конструируем полный URL для own вариантов const baseUrl = @@ -167,9 +174,14 @@ export async function sendQuestionAnswer( } } + console.log("В конечном итоге я планирую отправить вот эти данные: ", { + Image: imageValue, + Description: ownVariantData ? ownVariantData.answer : variant.answer, + }); + const body = { Image: imageValue, - Description: variant.answer, + Description: ownVariantData ? ownVariantData.answer : variant.answer, }; if (!body) throw new Error(`Body of answer in question ${question.id} is undefined`);