fix multi question bug

This commit is contained in:
Majd_dk 2026-05-30 23:18:22 +03:00
parent 98b828199f
commit 6da53ca2a4
9 changed files with 29 additions and 15 deletions

10
package-lock.json generated
View File

@ -21062,6 +21062,16 @@
"csstype": "^3.0.2" "csstype": "^3.0.2"
} }
}, },
"dotenv": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz",
"integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw=="
},
"dotenv-expand": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
"integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA=="
},
"ejs": { "ejs": {
"version": "3.1.10", "version": "3.1.10",
"resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",

View File

@ -26,7 +26,7 @@ export function useReOrderQuestions() {
if (index <= 0) return; if (index <= 0) return;
const next = moveToTop(index, values.Questions); const next = moveToTop(index, values.Questions);
setFieldValue("Questions", withSubOrder(next)); setFieldValue("Questions", withSubOrder(next));
afterLayout(() => scrollToIdWithOffset(`q-${item.id}`)); afterLayout(() => scrollToIdWithOffset(`q-${item.id || item.unique}`));
}; };
@ -34,7 +34,7 @@ export function useReOrderQuestions() {
if (index >= values.Questions.length - 1) return; if (index >= values.Questions.length - 1) return;
const next = moveToBottom(index, values.Questions); const next = moveToBottom(index, values.Questions);
setFieldValue("Questions", withSubOrder(next)); setFieldValue("Questions", withSubOrder(next));
afterLayout(() => scrollToIdWithOffset(`q-${item.id}`)); afterLayout(() => scrollToIdWithOffset(`q-${item.id || item.unique}`));
}; };

View File

@ -95,7 +95,7 @@ const BaseFormContainer = ({
enableReinitialize enableReinitialize
> >
{({ values, isValid, handleSubmit, dirty }) => ( {({ values, isValid, handleSubmit, dirty }) => (
<Form className="w-100"> <Form className="w-100" onClick={() => console.log(values)}>
<main className="w-100 exercise_add_main"> <main className="w-100 exercise_add_main">
{/* <Header/> */} {/* <Header/> */}
<header className="exercise_add_header mb-4"> <header className="exercise_add_header mb-4">

View File

@ -45,10 +45,10 @@ const Choices = React.memo(
{(values?.Questions?.[parent_index]?.answers || []).map( {(values?.Questions?.[parent_index]?.answers || []).map(
(item: Choice, index: number) => { (item: Choice, index: number) => {
return ( return (
<div className="Choices ChoicesMalty" key={item?.id} onClick={() => console.log(item)}> <div className="Choices ChoicesMalty" key={item.id || item.unique} onClick={() => console.log(item)}>
<ChoiceFields <ChoiceFields
key={item?.id} key={item.id || item.unique}
choiceId={item.id} // جديد choiceId={item.id || item.unique || -1} // جديد
parent_index={parent_index} parent_index={parent_index}
index={index} index={index}
setFieldValue={setFieldValue} setFieldValue={setFieldValue}

View File

@ -47,10 +47,11 @@ const Form = () => {
image: "", image: "",
parent: "", parent: "",
isBase: 0, isBase: 0,
id:uid(), // id:uid(),
unique: uid(),
// max_mark: 1, // max_mark: 1,
// min_mark_to_pass: 1, // min_mark_to_pass: 1,
answers: [{id:uid(), answer: null, answer_image: null, isCorrect: 0 ,content_image:null}], answers: [{unique: uid(), answer: null, answer_image: null, isCorrect: 0 ,content_image:null}],
tags: [], tags: [],
}, },
]); ]);

View File

@ -19,7 +19,8 @@ export const Question: React.FC<any> = React.memo(({ index, data }) => {
setFieldValue(`Questions.[${parent_index}].answers`, [ setFieldValue(`Questions.[${parent_index}].answers`, [
...(values?.Questions?.[parent_index]?.answers as Choice[]), ...(values?.Questions?.[parent_index]?.answers as Choice[]),
{ {
id: uid(), // id: uid(),
unique :uid(),
answer: null, answer: null,
content_image: null, content_image: null,
content: null, content: null,

View File

@ -77,11 +77,10 @@ import { useReOrderQuestions } from "../../../../../../Hooks/useReOrderQuestions
console.log(questions) console.log(questions)
return ( return (
<div <div
key={item.id} key={item.id || item.unique}
id={`q-${item.id}`} id={`q-${item.id || item.unique}`}
onClick={() => console.log(questions)}
ref={(el) => (rowRefs.current[item.id] = el)}
> <Question > <Question
key={item.id || item.unique}
// key={questions[index]?.content} // key={questions[index]?.content}
index={index} index={index}
data={{ values, setFieldValue, ShowHint, t }} data={{ values, setFieldValue, ShowHint, t }}

View File

@ -1,6 +1,8 @@
// export const BaseURL = "https://nerd-back.point-dev.net/api/"; // export const BaseURL = "https://nerd-back.point-dev.net/api/";
// export const BaseURL = "http://192.168.43.153:8080/api/"; // export const BaseURL = "http://192.168.43.153:8080/api/";
// export const BaseURL = import.meta.env.VITE_BASE_URL ; // export const BaseURL = import.meta.env.VITE_BASE_URL ;
export const BaseURL = "https://zaker-back-dev.misbar.education/api/" // export const BaseURL = "https://nerd-back.point-dev.net/api/"
export const BaseURL = "http://zaker-back-dev.misbar.education/api/"
export const HEADER_KEY = "X-Custom-Query-Key"; export const HEADER_KEY = "X-Custom-Query-Key";

View File

@ -284,6 +284,7 @@ export type Exercise = {};
export type Choice = { export type Choice = {
name: string; name: string;
id:number id:number
unique?: number
}; };
export type tags = { export type tags = {