update: revision to display the average score of sub-aspects when different aspects
This commit is contained in:
parent
3dcbd2810a
commit
b1521fb563
|
|
@ -99,9 +99,6 @@ 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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -130,20 +127,11 @@ export default function AssessmentPage() {
|
|||
// 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)
|
||||
);
|
||||
|
||||
// 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
|
||||
const toggleFlagMutation = useMutation<ToggleFlagResponse, Error, string>({
|
||||
mutationFn: toggleFlagAnswer,
|
||||
|
|
@ -546,7 +534,9 @@ export default function AssessmentPage() {
|
|||
<div>
|
||||
{filteredAverageScores && filteredAverageScores.length > 0 ? (
|
||||
filteredAverageScores.map((aspect) => (
|
||||
<div key={aspect.aspectId} className="flex justify-between items-center">
|
||||
<div key={aspect.aspectId}>
|
||||
{/* Aspect Rendering */}
|
||||
<div className="flex justify-between items-center">
|
||||
<Text className="text-xl text-gray-400">
|
||||
{aspect.aspectName}
|
||||
</Text>
|
||||
|
|
@ -554,6 +544,7 @@ export default function AssessmentPage() {
|
|||
{parseFloat(aspect.averageScore).toFixed(2)}
|
||||
</Text>
|
||||
</div>
|
||||
</div>
|
||||
))
|
||||
) : (
|
||||
<Text className="text-lg text-gray-400">Data aspek kosong</Text>
|
||||
|
|
@ -567,9 +558,11 @@ export default function AssessmentPage() {
|
|||
|
||||
{/* Skor Sub-Aspek */}
|
||||
<div>
|
||||
{averageScoresForSelectedSubAspect?.length ? (
|
||||
averageScoresForSelectedSubAspect.map((subAspect) => (
|
||||
<div key={subAspect.aspectId} className="flex justify-between items-center">
|
||||
{filteredAverageScores && filteredAverageScores.length > 0 ? (
|
||||
filteredAverageScores.flatMap((aspect) =>
|
||||
aspect.subAspects && aspect.subAspects.length > 0 ? (
|
||||
aspect.subAspects.map((subAspect) => (
|
||||
<div key={subAspect.subAspectId} className="flex justify-between items-center">
|
||||
<Text className="text-lg text-gray-400">
|
||||
{subAspect.subAspectName}
|
||||
</Text>
|
||||
|
|
@ -578,6 +571,10 @@ export default function AssessmentPage() {
|
|||
</Text>
|
||||
</div>
|
||||
))
|
||||
) : (
|
||||
<Text className="text-lg text-gray-400">Tidak ada sub-aspek</Text>
|
||||
)
|
||||
)
|
||||
) : (
|
||||
<Text className="text-lg text-gray-400">Data sub aspek kosong</Text>
|
||||
)}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user