diff --git a/src/app/[lang]/(mods-pages)/student/grades/GradesViewer.tsx b/src/app/[lang]/(mods-pages)/student/grades/GradesViewer.tsx index cdee1927..94b12404 100644 --- a/src/app/[lang]/(mods-pages)/student/grades/GradesViewer.tsx +++ b/src/app/[lang]/(mods-pages)/student/grades/GradesViewer.tsx @@ -127,13 +127,14 @@ const GradesViewer = ({ grades }: { grades: GradeObject }) => { // get unique semesters const semesters = Array.from(new Set(grades.ranking.data.map(grade => grade.year + grade.semester))).toReversed(); - + // grades might have semesters that are not in ranking + const gradesSemesters = Array.from(new Set(grades.grades.map(grade => grade.year + grade.semester))).toReversed(); const displayGrades = grades.grades.filter(grade => { - if (selectedSemester == "All") return semesters.includes(grade.year + grade.semester); + if (selectedSemester == "All") return true; return grade.year + grade.semester == selectedSemester; }); - const displayedSemesters = semesters.filter(semester => { + const displayedSemesters = gradesSemesters.filter(semester => { if (selectedSemester == "All") return true; return semester == selectedSemester; }); @@ -175,7 +176,7 @@ const GradesViewer = ({ grades }: { grades: GradeObject }) => { 全部課程 - {semesters.map(sem_id => {toPrettySemester(sem_id)})} + {gradesSemesters.map(sem_id => {toPrettySemester(sem_id)})} } {tab == "semester" &&