"use client"; import { MonacoEditor } from "@/components/editor/MonacoEditor"; import { useLecturesByWeekQuery, useLectureUpdateMutation, } from "@/hooks/localCourse/lectureHooks"; import { lectureToString, parseLecture, } from "@/services/fileStorage/utils/lectureUtils"; import { useEffect, useState } from "react"; import LecturePreview from "./LecturePreview"; import EditLectureTitle from "./EditLectureTitle"; export default function EditLecture({ lectureDay }: { lectureDay: string }) { const { data: weeks } = useLecturesByWeekQuery(); const updateLecture = useLectureUpdateMutation(); const lecture = weeks .flatMap(({ lectures }) => lectures.map((lecture) => lecture)) .find((l) => l.date === lectureDay); const startingText = lecture ? lectureToString(lecture) : `Name: Date: ${lectureDay} --- `; const [text, setText] = useState(startingText); const [error, setError] = useState(""); useEffect(() => { const delay = 500; const handler = setTimeout(() => { try { const parsed = parseLecture(text); if (!lecture || lectureToString(parsed) !== lectureToString(lecture)) { console.log("updating lecture"); updateLecture.mutate(parsed); } setError(""); } catch (e: any) { setError(e.toString()); } }, delay); return () => { clearTimeout(handler); }; }, [lecture, text, updateLecture]); return (
{error && error}
{lecture && }
); }