import type { JSX } from "react" import { getAuthContext } from "@/shared/lib/auth-guard" import { getParam, type SearchParams } from "@/shared/lib/search-params" import { getElectiveCourses } from "@/modules/elective/data-access" import { ElectiveCourseList } from "@/modules/elective/components/elective-course-list" import type { ElectiveCourseStatus } from "@/modules/elective/types" export const dynamic = "force-dynamic" const VALID_STATUSES: ReadonlySet = new Set([ "draft", "open", "closed", "cancelled", ]) function parseStatus(v?: string): ElectiveCourseStatus | undefined { return v && VALID_STATUSES.has(v) ? (v as ElectiveCourseStatus) : undefined } export default async function TeacherElectivePage({ searchParams, }: { searchParams: Promise }): Promise { const ctx = await getAuthContext() const teacherId = ctx.userId const sp = await searchParams const statusParam = getParam(sp, "status") const status = parseStatus(statusParam) const courses = teacherId ? await getElectiveCourses({ teacherId, status }) : [] return (

My Elective Courses

View and manage the elective courses you teach.

) }