исправлен порядок сбора данных для вопроса типа images
This commit is contained in:
parent
2f5d742be4
commit
acc2bd67f1
@ -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"));
|
||||
|
@ -66,6 +66,7 @@ const OwnInput = ({ questionId, variant, largeCheck, ownPlaceholder }: OwnInputP
|
||||
value={ownAnswer}
|
||||
onClick={(e: React.MouseEvent<HTMLTextAreaElement>) => e.stopPropagation()}
|
||||
onChange={(e: React.ChangeEvent<HTMLTextAreaElement>) => {
|
||||
console.log("клик", e.target.value);
|
||||
updateOwnVariant(variant.id, e.target.value);
|
||||
}}
|
||||
/>
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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")
|
||||
|
@ -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}`);
|
||||
|
||||
let imageValue = variant.extendedText;
|
||||
if (variant.isOwn) {
|
||||
// Берем 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) {
|
||||
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`);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user