diff --git a/apps/frontend/src/routes/_dashboardLayout/assessment/index.lazy.tsx b/apps/frontend/src/routes/_dashboardLayout/assessment/index.lazy.tsx index 5ef8086..c1d0494 100644 --- a/apps/frontend/src/routes/_dashboardLayout/assessment/index.lazy.tsx +++ b/apps/frontend/src/routes/_dashboardLayout/assessment/index.lazy.tsx @@ -60,6 +60,7 @@ export default function AssessmentPage() { }>({}); const fileInputRef = useRef(null); const [modalOpen, setModalOpen] = useState(false); + const [selectedAspectId, setSelectedAspectId] = useState(null); const [selectedSubAspectId, setSelectedSubAspectId] = useState(null); const [assessmentId, setAssessmentId] = useState(null); const [answers, setAnswers] = useState<{ [key: string]: string }>({}); @@ -99,10 +100,13 @@ export default function AssessmentPage() { if (firstMatchingSubAspect) { setSelectedSubAspectId(firstMatchingSubAspect.id); + setSelectedAspectId(aspectsQuery.data.data.find(aspect => + aspect.subAspects.some(sub => sub.id === firstMatchingSubAspect.id) + )?.id || null); // Set selectedAspectId based on the found sub-aspect } } } - }, [aspectsQuery.data, selectedSubAspectId, data?.data]); + }, [aspectsQuery.data, selectedSubAspectId, data?.data]) const handleConfirmFinish = () => { if (assessmentId) { @@ -124,14 +128,21 @@ export default function AssessmentPage() { })); }; - // Fetch average scores berdasarkan assessmentId yang diambil dari URL - const averageScoreQuery = useQuery( - getAverageScoreQueryOptions(assessmentId || "") + // Fetch average scores by aspect + const averageScoreQuery = useQuery(getAverageScoreQueryOptions(assessmentId || "")); + + // Fetch average scores by sub-aspect + const averageScoreSubAspectQuery = useQuery(getAverageScoreSubAspectQueryOptions(assessmentId || "")); + + // Filter average score aspect berdasarkan sub-aspect yang dipilih + const filteredAverageScores = averageScoreQuery.data?.aspects?.filter(aspect => + aspect.subAspects.some(subAspect => subAspect.subAspectId === selectedSubAspectId) ); - // Fetch average scores for sub-aspects - const averageScoreSubAspectQuery = useQuery( - getAverageScoreSubAspectQueryOptions(assessmentId || "") + // Filter average scores for the selected sub-aspect + const averageScoresForSelectedSubAspect = averageScoreSubAspectQuery.data?.subAspects?.filter( + (subAspect) => + subAspect.aspectId === selectedAspectId // Use the appropriate property for filtering ); // Mutation function to toggle flag @@ -519,42 +530,46 @@ export default function AssessmentPage() {
- {averageScores && averageScores.length > 0 ? ( - averageScores.map((aspect: any) => ( -
- - {aspect.AspectName} - - - {parseFloat(aspect.averageScore).toFixed(1)} - -
- )) - ) : ( - Tidak ada data skor. - )} + {/* Skor Aspek */} +
+ {filteredAverageScores && filteredAverageScores.length > 0 ? ( + filteredAverageScores.map((aspect) => ( +
+ + {aspect.aspectName} + + + {parseFloat(aspect.averageScore).toFixed(2)} + +
+ )) + ) : ( + Data aspek kosong + )} +
{/* Garis pembatas */}

- {averageScoresSubAspect && averageScoresSubAspect.length > 0 && ( - - {averageScoresSubAspect.map((subAspects: any) => { - return ( -
- - {subAspects.subAspectName} - - - {parseFloat(subAspects.averageScore).toFixed(1)} - -
- ); - })} -
- )} + {/* Skor Sub-Aspek */} +
+ {averageScoresForSelectedSubAspect?.length ? ( + averageScoresForSelectedSubAspect.map((subAspect) => ( +
+ + {subAspect.subAspectName} + + + {parseFloat(subAspect.averageScore).toFixed(2)} + +
+ )) + ) : ( + Data sub aspek kosong + )} +
{/* Tombol Selesai */}