From a0707d67a9710185d4ca662bb4d0bce129814b2f Mon Sep 17 00:00:00 2001 From: falendikategar Date: Tue, 22 Oct 2024 11:07:43 +0700 Subject: [PATCH] update: changes to the average score data update in real time when the user selects an answer --- .../queries/assessmentQueries.ts | 6 ++--- .../assessment/index.lazy.tsx | 22 ++++++++++++++----- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/apps/frontend/src/modules/assessmentManagement/queries/assessmentQueries.ts b/apps/frontend/src/modules/assessmentManagement/queries/assessmentQueries.ts index db58957..46eb5dd 100644 --- a/apps/frontend/src/modules/assessmentManagement/queries/assessmentQueries.ts +++ b/apps/frontend/src/modules/assessmentManagement/queries/assessmentQueries.ts @@ -94,13 +94,13 @@ export const submitOption = async (form: { ); }; -export const submitOptionMutationOptions: () => UseMutationOptions< +export const submitOptionMutationOptions: UseMutationOptions< SubmitOptionResponse, Error, Parameters[0] -> = () => ({ +> = { mutationFn: submitOption, -}); +}; export const submitValidation = async ( form: { diff --git a/apps/frontend/src/routes/_dashboardLayout/assessment/index.lazy.tsx b/apps/frontend/src/routes/_dashboardLayout/assessment/index.lazy.tsx index 7641703..220ecf8 100644 --- a/apps/frontend/src/routes/_dashboardLayout/assessment/index.lazy.tsx +++ b/apps/frontend/src/routes/_dashboardLayout/assessment/index.lazy.tsx @@ -180,8 +180,17 @@ export default function AssessmentPage() { }, }); - // Mutation function to submit answer - const submitOptionMutation = useMutation(submitOptionMutationOptions()); + // Usage of the mutation in your component + const submitOptionMutation = useMutation({ + ...submitOptionMutationOptions, // Spread the mutation options here + onSuccess: () => { + // Refetch the average scores after a successful submission + averageScoreQuery.refetch(); + }, + onError: (error) => { + console.error("Error submitting option:", error); + }, + }); useEffect(() => { const assessmentId = getQueryParam("id"); @@ -200,19 +209,20 @@ export default function AssessmentPage() { const handleAnswerChange = (questionId: string, optionId: string) => { const assessmentId = getQueryParam("id"); - + if (!assessmentId) { console.error("Assessment ID tidak ditemukan"); return; } - + // Simpan jawaban ke localStorage dengan ID assessment const updatedAnswers = { ...answers, [questionId]: optionId }; localStorage.setItem(`assessmentAnswers_${assessmentId}`, JSON.stringify(updatedAnswers)); - + // Update state setAnswers(updatedAnswers); - + + // Call the mutation to submit the option submitOptionMutation.mutate({ optionId, assessmentId,