Move all code to old/ to prepare for Nuxt rewrite
This commit is contained in:
parent
6007f4caeb
commit
51ff27c569
33 changed files with 0 additions and 1 deletions
39
old/app/schedule/context.tsx
Normal file
39
old/app/schedule/context.tsx
Normal file
|
@ -0,0 +1,39 @@
|
|||
"use client";
|
||||
import { createContext, useContext, useEffect, useState } from "react";
|
||||
import { Schedule } from "./types";
|
||||
|
||||
const ScheduleContext = createContext<Schedule | null>(null);
|
||||
|
||||
interface ScheduleProviderProps {
|
||||
children: React.ReactElement;
|
||||
schedule: Schedule;
|
||||
}
|
||||
|
||||
export function ScheduleProvider(props: ScheduleProviderProps) {
|
||||
const [schedule, setSchedule] = useState(props.schedule);
|
||||
useEffect(() => {
|
||||
console.log("Opening event source")
|
||||
const source = new EventSource("/api/events");
|
||||
source.addEventListener("message", (message) => {
|
||||
console.log("Message", message.data);
|
||||
});
|
||||
source.addEventListener("update", (message) => {
|
||||
const updatedSchedule: Schedule = JSON.parse(message.data);
|
||||
console.log("Update", updatedSchedule);
|
||||
setSchedule(updatedSchedule);
|
||||
});
|
||||
return () => {
|
||||
console.log("Closing event source")
|
||||
source.close();
|
||||
}
|
||||
}, [])
|
||||
return (
|
||||
<ScheduleContext.Provider value={schedule}>
|
||||
{props.children}
|
||||
</ScheduleContext.Provider>
|
||||
);
|
||||
}
|
||||
|
||||
export function useSchedule() {
|
||||
return useContext(ScheduleContext);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue