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