35 lines
974 B
TypeScript
35 lines
974 B
TypeScript
import Timetable from "@/ui/timetable"
|
|
import { Schedule } from "./types"
|
|
import { readFile } from "fs/promises"
|
|
import { ScheduleProvider } from "./context"
|
|
import { Events } from "@/ui/events";
|
|
import { Locations } from "@/ui/locations";
|
|
import { EventsEdit } from "@/ui/events-edit";
|
|
import { PushNotification } from "@/ui/push-notification";
|
|
|
|
export const dynamic = "force-dynamic";
|
|
|
|
export default async function page() {
|
|
const schedule: Schedule = JSON.parse(await readFile("schedule.json", "utf-8"));
|
|
return (
|
|
<ScheduleProvider schedule={schedule}>
|
|
<main>
|
|
<h1>Schedule & Events</h1>
|
|
<p>
|
|
Study carefully, we only hold these events once a year.
|
|
</p>
|
|
<p>
|
|
Get notified about updates
|
|
</p>
|
|
<PushNotification vapidPublicKey={process.env.VAPID_PUBLIC_KEY!} />
|
|
<h2>Schedule</h2>
|
|
<Timetable />
|
|
<EventsEdit />
|
|
<h2>Events</h2>
|
|
<Events />
|
|
<h2>Locations</h2>
|
|
<Locations />
|
|
</main>
|
|
</ScheduleProvider>
|
|
);
|
|
}
|