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" &&