fix add new answer
This commit is contained in:
parent
15ec6b9632
commit
6eb03dc112
10 changed files with 87 additions and 160 deletions
|
|
@ -26,7 +26,8 @@ interface QuestionItemProps {
|
|||
|
||||
const QuestionItem: React.FC<QuestionItemProps> = ({
|
||||
questionId,
|
||||
initialTextQuestion = `Вопрос ${questionId}`,
|
||||
// initialTextQuestion = `Вопрос ${questionId}`,
|
||||
initialTextQuestion = `Вопрос`,
|
||||
valueQuestion,
|
||||
answerVariants: initialAnswerVariants,
|
||||
onChangeQuestion,
|
||||
|
|
@ -45,26 +46,24 @@ const QuestionItem: React.FC<QuestionItemProps> = ({
|
|||
setTextQuestion(valueQuestion);
|
||||
}, [valueQuestion]);
|
||||
|
||||
// useEffect(() => {
|
||||
// if (initialAnswerVariants.length === 0 && surveyId) {
|
||||
// handleAddAnswer();
|
||||
// }
|
||||
// }, [initialAnswerVariants.length, surveyId]);
|
||||
|
||||
const handleTypeChange = (type: 'single' | 'multiply') => {
|
||||
setSelectedType(type);
|
||||
};
|
||||
|
||||
const handleAddAnswer = async () => {
|
||||
if (surveyId) {
|
||||
try {
|
||||
const newAnswer = await addNewAnswerVariant(surveyId, questionId, { text: '' });
|
||||
onAnswerVariantsChange([...initialAnswerVariants, { id: newAnswer.id, text: '' }]);
|
||||
} catch (error) {
|
||||
console.error('Ошибка при добавлении варианта ответа:', error);
|
||||
}
|
||||
} else {
|
||||
if (!surveyId) {
|
||||
onAnswerVariantsChange([...initialAnswerVariants, { text: '' }]);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const newAnswer = await addNewAnswerVariant(surveyId, questionId, { text: '' });
|
||||
onAnswerVariantsChange([...initialAnswerVariants, {
|
||||
id: newAnswer.id,
|
||||
text: newAnswer.text
|
||||
}]);
|
||||
} catch (error) {
|
||||
console.error('Ошибка при добавлении варианта ответа:', error);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -109,7 +108,6 @@ const QuestionItem: React.FC<QuestionItemProps> = ({
|
|||
newAnswerVariants[index] = { ...newAnswerVariants[index], text: value };
|
||||
onAnswerVariantsChange(newAnswerVariants);
|
||||
|
||||
// Обновляем на сервере только если вариант уже существует (имеет id)
|
||||
if (surveyId && newAnswerVariants[index].id) {
|
||||
try {
|
||||
await updateAnswerVariant(
|
||||
|
|
@ -134,7 +132,6 @@ const QuestionItem: React.FC<QuestionItemProps> = ({
|
|||
onAnswerVariantsChange(newAnswerVariants);
|
||||
setSelectedAnswers(selectedAnswers.filter((i) => i !== index));
|
||||
|
||||
// Обновляем список после удаления
|
||||
if (surveyId) {
|
||||
const variants = await getAnswerVariants(surveyId, questionId);
|
||||
const answers = variants.map((v: { id: number, text: string }) => ({ id: v.id, text: v.text }));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue