import React from "react"; import type { Metadata } from "next"; import { semesters as staticSemesters } from "../../content/lectures"; import { getSemesters } from "../../lib/api"; export const metadata: Metadata = { title: "Lectures", description: "AI Agent Networking Lab (ANL) lecture courses and curriculum history", }; export const dynamic = "force-dynamic"; export default async function LecturesPage() { const semesters = (await getSemesters()) ?? staticSemesters; const recentSemesters = semesters.slice(0, 3); const olderSemesters = semesters.slice(3); const oldestSem = olderSemesters[olderSemesters.length - 1]; const newestOlderSem = olderSemesters[0]; return (
{/* Page Header */}

LECTURES

{/* Recent 3 Semesters */}

Recent Courses

Latest 3 Semesters
{recentSemesters.map((sem, idx) => (
{sem.term} {sem.year} Latest
    {sem.courses.map((c, cIdx) => (
  • {c.en}
    Code: {c.code} {c.note && `(${c.note})`}
  • ))}
Total Offerings {sem.courses.length} Courses
))}
{/* Older Semesters (Native
/ progressive disclosure) */}
Browse all semesters

Course history from {oldestSem ? `${oldestSem.year} ${oldestSem.term}` : "2004 Spring"} to {newestOlderSem ? `${newestOlderSem.year} ${newestOlderSem.term}` : "2024 Fall"} ({olderSemesters.length} Semesters)

Open ▾ Close ▴
{olderSemesters.map((sem, idx) => (
{sem.term} {sem.year} {sem.courses.length} Courses
    {sem.courses.map((c, cIdx) => (
  • {c.en}
    Code: {c.code} {c.note && `(${c.note})`}
  • ))}
))}
); }