Pull Request branch dev-clone to main #1
|
|
@ -14,11 +14,10 @@ import {
|
||||||
} from "@mantine/core";
|
} from "@mantine/core";
|
||||||
import { useQuery, useMutation } from "@tanstack/react-query";
|
import { useQuery, useMutation } from "@tanstack/react-query";
|
||||||
import {
|
import {
|
||||||
getAnswersQueryOptions,
|
submitOptionMutationOptions,
|
||||||
getAverageScoreSubAspectQueryOptions,
|
getAverageScoreSubAspectQueryOptions,
|
||||||
getAverageScoreQueryOptions,
|
getAverageScoreQueryOptions,
|
||||||
fetchAspects,
|
fetchAspects,
|
||||||
submitAnswerMutationOptions,
|
|
||||||
getQuestionsAllQueryOptions,
|
getQuestionsAllQueryOptions,
|
||||||
toggleFlagAnswer,
|
toggleFlagAnswer,
|
||||||
} from "@/modules/assessmentManagement/queries/assessmentQueries";
|
} from "@/modules/assessmentManagement/queries/assessmentQueries";
|
||||||
|
|
@ -100,7 +99,7 @@ export default function AssessmentPage() {
|
||||||
|
|
||||||
if (firstMatchingSubAspect) {
|
if (firstMatchingSubAspect) {
|
||||||
setSelectedSubAspectId(firstMatchingSubAspect.id);
|
setSelectedSubAspectId(firstMatchingSubAspect.id);
|
||||||
setSelectedAspectId(aspectsQuery.data.data.find(aspect =>
|
setSelectedAspectId(aspectsQuery.data.data.find(aspect =>
|
||||||
aspect.subAspects.some(sub => sub.id === firstMatchingSubAspect.id)
|
aspect.subAspects.some(sub => sub.id === firstMatchingSubAspect.id)
|
||||||
)?.id || null); // Set selectedAspectId based on the found sub-aspect
|
)?.id || null); // Set selectedAspectId based on the found sub-aspect
|
||||||
}
|
}
|
||||||
|
|
@ -141,7 +140,7 @@ export default function AssessmentPage() {
|
||||||
|
|
||||||
// Filter average scores for the selected sub-aspect
|
// Filter average scores for the selected sub-aspect
|
||||||
const averageScoresForSelectedSubAspect = averageScoreSubAspectQuery.data?.subAspects?.filter(
|
const averageScoresForSelectedSubAspect = averageScoreSubAspectQuery.data?.subAspects?.filter(
|
||||||
(subAspect) =>
|
(subAspect) =>
|
||||||
subAspect.aspectId === selectedAspectId // Use the appropriate property for filtering
|
subAspect.aspectId === selectedAspectId // Use the appropriate property for filtering
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -163,8 +162,8 @@ export default function AssessmentPage() {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// Inside the AssessmentPage function:
|
// Mutation function to submit answer
|
||||||
const submitAnswerMutation = useMutation(submitAnswerMutationOptions());
|
const submitOptionMutation = useMutation(submitOptionMutationOptions());
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const savedAnswers = localStorage.getItem("assessmentAnswers");
|
const savedAnswers = localStorage.getItem("assessmentAnswers");
|
||||||
|
|
@ -174,7 +173,7 @@ export default function AssessmentPage() {
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const handleAnswerChange = (questionId: string, optionId: string) => {
|
const handleAnswerChange = (questionId: string, optionId: string) => {
|
||||||
const assessmentId = getQueryParam("id"); // Mengambil assessmentId otomatis dari URL
|
const assessmentId = getQueryParam("id");
|
||||||
|
|
||||||
if (!assessmentId) {
|
if (!assessmentId) {
|
||||||
console.error("Assessment ID tidak ditemukan");
|
console.error("Assessment ID tidak ditemukan");
|
||||||
|
|
@ -188,13 +187,12 @@ export default function AssessmentPage() {
|
||||||
// Update state
|
// Update state
|
||||||
setAnswers(updatedAnswers);
|
setAnswers(updatedAnswers);
|
||||||
|
|
||||||
// Kirim jawaban ke backend
|
submitOptionMutation.mutate({
|
||||||
submitAnswerMutation.mutate({
|
|
||||||
optionId,
|
optionId,
|
||||||
assessmentId, // Menggunakan assessmentId dari URL
|
assessmentId,
|
||||||
validationInformation: JSON.stringify({
|
questionId,
|
||||||
questionId,
|
isFlagged: false,
|
||||||
}),
|
filename: undefined,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -261,9 +259,6 @@ export default function AssessmentPage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
const totalQuestions = data?.data?.length || 0;
|
const totalQuestions = data?.data?.length || 0;
|
||||||
const totalPages = Math.ceil(totalQuestions / limit);
|
|
||||||
const averageScores = averageScoreQuery.data?.aspects;
|
|
||||||
const averageScoresSubAspect = averageScoreSubAspectQuery.data?.subAspects;
|
|
||||||
|
|
||||||
if (!assessmentId) {
|
if (!assessmentId) {
|
||||||
return (
|
return (
|
||||||
|
|
@ -555,7 +550,7 @@ export default function AssessmentPage() {
|
||||||
|
|
||||||
{/* Skor Sub-Aspek */}
|
{/* Skor Sub-Aspek */}
|
||||||
<div>
|
<div>
|
||||||
{averageScoresForSelectedSubAspect?.length ? (
|
{averageScoresForSelectedSubAspect?.length ? (
|
||||||
averageScoresForSelectedSubAspect.map((subAspect) => (
|
averageScoresForSelectedSubAspect.map((subAspect) => (
|
||||||
<div key={subAspect.aspectId} className="flex justify-between items-center">
|
<div key={subAspect.aspectId} className="flex justify-between items-center">
|
||||||
<Text className="text-lg text-gray-400">
|
<Text className="text-lg text-gray-400">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user