fix: feedback clearing on type change (#334)

This commit is contained in:
Kristin Aoki
2023-05-22 09:57:22 -04:00
committed by GitHub
parent 9239d2b8b1
commit e0c0c918d0
2 changed files with 36 additions and 11 deletions

View File

@@ -221,34 +221,59 @@ export const typeRowHooks = ({
}) => {
const clearPreviouslySelectedAnswers = () => {
let currentAnswerTitles;
const { selectedFeedback, unselectedFeedback, ...editorContent } = fetchEditorContent({ format: 'text' });
if (RichTextProblems.includes(problemType)) {
currentAnswerTitles = fetchEditorContent({ format: 'text' }).answers;
currentAnswerTitles = editorContent.answers;
}
answers.forEach(answer => {
const title = currentAnswerTitles?.[answer.id] || answer.title;
if (answer.correct) {
updateAnswer({ ...answer, title, correct: false });
updateAnswer({
...answer,
title,
selectedFeedback,
unselectedFeedback,
correct: false,
});
} else {
updateAnswer({ ...answer, title });
updateAnswer({
...answer,
selectedFeedback,
unselectedFeedback,
title,
});
}
});
};
const updateAnswersToCorrect = () => {
let currentAnswerTitles;
const { selectedFeedback, unselectedFeedback, ...editorContent } = fetchEditorContent({ format: 'text' });
if (RichTextProblems.includes(problemType)) {
currentAnswerTitles = fetchEditorContent({ format: 'text' }).answers;
currentAnswerTitles = editorContent.answers;
}
answers.forEach(answer => {
const title = currentAnswerTitles ? currentAnswerTitles[answer.id] : answer.title;
updateAnswer({ ...answer, title, correct: true });
updateAnswer({
...answer,
title,
selectedFeedback,
unselectedFeedback,
correct: true,
});
});
};
const convertToPlainText = () => {
const currentAnswerTitles = fetchEditorContent({ format: 'text' }).answers;
const { selectedFeedback, unselectedFeedback, ...editorContent } = fetchEditorContent({ format: 'text' });
const currentAnswerTitles = editorContent.answers;
answers.forEach(answer => {
updateAnswer({ ...answer, title: currentAnswerTitles[answer.id] });
updateAnswer({
...answer,
selectedFeedback,
unselectedFeedback,
title: currentAnswerTitles[answer.id],
});
});
};

View File

@@ -32,17 +32,17 @@ export const fetchEditorContent = ({ format }) => {
const { selectedFeedback, unselectedFeedback, groupFeedback } = editorObject;
const feedbackId = id.substring(id.indexOf('-') + 1);
if (id.startsWith('selected')) {
editorObject.selectedFeedback = { ...selectedFeedback, [feedbackId]: editor.getContent({ format }) };
editorObject.selectedFeedback = { ...selectedFeedback, [feedbackId]: editor.getContent() };
}
if (id.startsWith('unselected')) {
editorObject.unselectedFeedback = { ...unselectedFeedback, [feedbackId]: editor.getContent({ format }) };
editorObject.unselectedFeedback = { ...unselectedFeedback, [feedbackId]: editor.getContent() };
}
if (id.startsWith('group')) {
editorObject.groupFeedback = { ...groupFeedback, [feedbackId]: editor.getContent({ format }) };
editorObject.groupFeedback = { ...groupFeedback, [feedbackId]: editor.getContent() };
}
} else if (id.startsWith('hint')) {
const { hints } = editorObject;
hints.push(editor.getContent({ format }));
hints.push(editor.getContent());
} else {
editorObject[id] = editor.getContent();
}