update: change function to implement queries toggle flag answers

This commit is contained in:
abiyasa05 2024-11-09 11:32:26 +07:00
parent 9445690238
commit ab29d0c1a1

View File

@ -64,6 +64,14 @@ interface ToggleFlagResponse {
};
}
export interface SubmitOptionResponse {
message: string;
answer: {
id: string;
isFlagged: boolean | null;
};
}
export default function AssessmentPage() {
const [page, setPage] = useState(1);
const limit = 10;
@ -275,13 +283,14 @@ export default function AssessmentPage() {
// Mutation function to toggle flag
const { mutate: toggleFlag } = useMutation({
mutationFn: (questionId: string) => toggleFlagAnswer(questionId),
onSuccess: (response) => {
if (response && response.answer) {
mutationFn: (formData: { assessmentId: string; questionId: string; isFlagged: boolean }) =>
toggleFlagAnswer(formData),
onSuccess: (response: SubmitOptionResponse) => {
if (response.answer) {
const { answer } = response;
setFlaggedQuestions((prevFlags) => ({
...prevFlags,
[answer.id]: answer.isFlagged !== null ? answer.isFlagged : false,
[answer.id]: answer.isFlagged ?? false,
}));
}
},
@ -293,14 +302,25 @@ export default function AssessmentPage() {
// Fungsi untuk toggle flag
const handleToggleFlag = (questionId: string) => {
const newFlagState = !flaggedQuestions[questionId];
const assessmentId = getQueryParam("id");
// Update flaggedQuestions dan kirim ke server
if (!assessmentId) {
console.error("Assessment ID tidak ditemukan");
return;
}
// Update flaggedQuestions di state
setFlaggedQuestions((prevFlags) => ({
...prevFlags,
[questionId]: newFlagState,
}));
toggleFlag(questionId);
// Kirim perubahan flag ke server
toggleFlag({
assessmentId,
questionId,
isFlagged: newFlagState,
});
};
// Usage of the mutation in your component