moving data management to lots of queries

This commit is contained in:
2024-08-30 11:06:19 -06:00
parent 2b11c65bc8
commit d975add636
15 changed files with 462 additions and 147 deletions

View File

@@ -1,12 +1,7 @@
"use client";
import { ReactNode, useState } from "react";
import { CourseContext, DraggableItem } from "./courseContext";
import {
useLocalCourseSettingsQuery,
useUpdateCourseMutation,
} from "@/hooks/localCoursesHooks";
import { LocalQuiz } from "@/models/local/quiz/localQuiz";
import { LocalCourse } from "@/models/local/localCourse";
import { dateToMarkdownString } from "@/models/local/timeUtils";
export default function CourseContextProvider({
@@ -16,8 +11,6 @@ export default function CourseContextProvider({
children: ReactNode;
localCourseName: string;
}) {
const { data: settings } = useLocalCourseSettingsQuery(localCourseName);
const updateCourseMutation = useUpdateCourseMutation(localCourseName);
const [itemBeingDragged, setItemBeingDragged] = useState<
DraggableItem | undefined
>();

View File

@@ -1,16 +1,21 @@
import { getDehydratedClient } from "@/app/layout";
import CourseContextProvider from "./context/CourseContextProvider";
import CourseCalendar from "./calendar/CourseCalendar";
import { HydrationBoundary } from "@tanstack/react-query";
import { dehydrate, HydrationBoundary } from "@tanstack/react-query";
import CourseSettings from "./CourseSettings";
import ModuleList from "./modules/ModuleList";
import { createQueryClientForServer } from "@/services/utils/queryClientServer";
import { hydrateCourse } from "@/hooks/hookHydration";
export default async function CoursePage({
params: { courseName },
}: {
params: { courseName: string };
}) {
const dehydratedState = await getDehydratedClient();
const queryClient = createQueryClientForServer();
await hydrateCourse(queryClient, courseName);
const dehydratedState = dehydrate(queryClient);
return (
<HydrationBoundary state={dehydratedState}>
<CourseContextProvider localCourseName={courseName}>