вопросы отправляют текст ответов а не ид. при отмене выбора отправляется пустая строка

This commit is contained in:
Nastya 2023-12-29 20:17:50 +03:00
parent b91cc475fe
commit 15431912ae
8 changed files with 108 additions and 30 deletions

@ -431,6 +431,8 @@ function QuizPreviewLayoutByType({
sx={{
width: "60%",
overflow: "hidden",
display: "flex",
justifyContent: "center"
}}
>
{backgroundBlock}

@ -18,7 +18,7 @@ const QID =
process.env.NODE_ENV === "production" ?
window.location.pathname.replace(/\//g, '')
:
"6955f170-f0f8-4b04-9be1-b8e3906fca5c"
"6e96e958-d30e-49f6-aa85-32aaef975733"
export const ViewPage = () => {

@ -56,7 +56,6 @@ export const Date = ({ currentQuestion }: DateProps) => {
}
try {
await sendAnswer({
questionId: currentQuestion.id,
body: new window.Date(date.toDate()).toLocaleDateString("ru-RU", {

@ -44,12 +44,14 @@ export const Emoji = ({ currentQuestion }: EmojiProps) => {
value={currentQuestion.content.variants.findIndex(
({ id }) => answer === id
)}
onChange={({ target }) =>
onChange={({ target }) =>{
console.log(currentQuestion.content.variants[Number(target.value)])
updateAnswer(
currentQuestion.id,
currentQuestion.content.variants[Number(target.value)].id
currentQuestion.content.variants[Number(target.value)].answer
)
}
}
sx={{
display: "flex",
flexWrap: "wrap",
@ -104,18 +106,46 @@ export const Emoji = ({ currentQuestion }: EmojiProps) => {
gap: "10px",
}}
value={index}
onClick={(event) => {
onClick={async (event) => {
event.preventDefault();
updateAnswer(
currentQuestion.id,
currentQuestion.content.variants[index].id
);
try {
await sendAnswer({
questionId: currentQuestion.id,
body: currentQuestion.content.variants[index].answer,
//@ts-ignore
qid: settings.qid
})
updateAnswer(
currentQuestion.id,
currentQuestion.content.variants[index].id
);
} catch (e) {
enqueueSnackbar("ответ не был засчитан")
}
if (answer === currentQuestion.content.variants[index].id) {
deleteAnswer(currentQuestion.id);
try {
await sendAnswer({
questionId: currentQuestion.id,
body: "",
//@ts-ignore
qid: settings.qid
})
} catch (e) {
enqueueSnackbar("ответ не был засчитан")
}
}
}}
control={
//@ts-ignore
<Radio checkedIcon={<RadioCheck color={theme.palette.primary.main}/>} icon={<RadioIcon />} />

@ -69,14 +69,14 @@ export const Images = ({ currentQuestion }: ImagesProps) => {
border: `1px solid`,
borderColor: answer === variant.id ? theme.palette.primary.main : "#9A9AAF",
}}
onClick={async(event) => {
onClick={async (event) => {
event.preventDefault();
try {
await sendAnswer({
questionId: currentQuestion.id,
body: currentQuestion.content.variants[index].id,
body: currentQuestion.content.variants[index].answer,
//@ts-ignore
qid: settings.qid
})
@ -93,6 +93,18 @@ export const Images = ({ currentQuestion }: ImagesProps) => {
if (answer === currentQuestion.content.variants[index].id) {
deleteAnswer(currentQuestion.id);
try {
await sendAnswer({
questionId: currentQuestion.id,
body: "",
//@ts-ignore
qid: settings.qid
})
} catch (e) {
enqueueSnackbar("ответ не был засчитан")
}
}
}}
>
@ -123,7 +135,7 @@ export const Images = ({ currentQuestion }: ImagesProps) => {
value={index}
control={
//@ts-ignore
<Radio checkedIcon={<RadioCheck color={theme.palette.primary.main}/>} icon={<RadioIcon />} />
<Radio checkedIcon={<RadioCheck color={theme.palette.primary.main} />} icon={<RadioIcon />} />
}
label={variant.answer}
/>

@ -45,7 +45,18 @@ export const Select = ({ currentQuestion }: SelectProps) => {
onChange={async(_, value) => {
if (value < 0) {
deleteAnswer(currentQuestion.id);
try {
await sendAnswer({
questionId: currentQuestion.id,
body: "",
//@ts-ignore
qid: settings.qid
})
} catch (e) {
enqueueSnackbar("ответ не был засчитан")
}
return;
}
@ -53,7 +64,7 @@ export const Select = ({ currentQuestion }: SelectProps) => {
await sendAnswer({
questionId: currentQuestion.id,
body: String(value),
body: String(currentQuestion.content.variants[Number(value)].answer),
//@ts-ignore
qid: settings.qid
})

@ -166,13 +166,13 @@ const VariantItem = ({
icon={<CheckboxIcon />}
/>
) :
//@ts-ignore
(<Radio checkedIcon={<RadioCheck color={theme.palette.primary.main}/>} icon={<RadioIcon />} />
)
//@ts-ignore
(<Radio checkedIcon={<RadioCheck color={theme.palette.primary.main} />} icon={<RadioIcon />} />
)
}
//@ts-ignore
label={own ? <TextField label="Другое..." /> : variant.answer}
onClick={async(event) => {
onClick={async (event) => {
event.preventDefault();
const variantId = currentQuestion.content.variants[index].id;
@ -184,8 +184,8 @@ const VariantItem = ({
await sendAnswer({
questionId: currentQuestion.id,
body: currentAnswer.includes(variantId)
? currentAnswer?.filter((item) => item !== variantId)
: [...currentAnswer, variantId],
? currentAnswer?.filter((item) => item !== variantId)
: [...currentAnswer, variantId],
//@ts-ignore
qid: settings.qid
})
@ -209,7 +209,7 @@ const VariantItem = ({
await sendAnswer({
questionId: currentQuestion.id,
body: variantId,
body: currentQuestion.content.variants[index].answer,
//@ts-ignore
qid: settings.qid
})
@ -221,6 +221,18 @@ const VariantItem = ({
}
if (answer === variantId) {
try {
await sendAnswer({
questionId: currentQuestion.id,
body: "",
//@ts-ignore
qid: settings.qid
})
} catch (e) {
enqueueSnackbar("ответ не был засчитан")
}
deleteAnswer(currentQuestion.id);
}
}}

@ -87,7 +87,7 @@ export const Varimg = ({ currentQuestion }: VarimgProps) => {
await sendAnswer({
questionId: currentQuestion.id,
body: currentQuestion.content.variants[index].id,
body: currentQuestion.content.variants[index].answer,
//@ts-ignore
qid: settings.qid
})
@ -103,6 +103,18 @@ export const Varimg = ({ currentQuestion }: VarimgProps) => {
if (answer === currentQuestion.content.variants[index].id) {
try {
await sendAnswer({
questionId: currentQuestion.id,
body: "",
//@ts-ignore
qid: settings.qid
})
} catch (e) {
enqueueSnackbar("ответ не был засчитан")
}
deleteAnswer(currentQuestion.id);
}
}}