starting to gut

This commit is contained in:
2024-11-08 12:18:38 -07:00
parent 351bac3ebf
commit 011c28f0fd
7 changed files with 153 additions and 71 deletions

View File

@@ -7,7 +7,13 @@ import { hydrateCourses } from "@/hooks/hookHydration";
import { dehydrate, HydrationBoundary } from "@tanstack/react-query";
import { MyToaster } from "./MyToaster";
import { cookies } from "next/headers";
export const dynamic = 'force-dynamic'
import { createServerSideHelpers } from "@trpc/react-query/server";
import { trpcAppRouter } from "@/services/trpc/router/app";
import { createTrpcContext } from "@/services/trpc/context";
import superjson from "superjson";
import { fileStorageService } from "@/services/fileStorage/fileStorageService";
import ClientOnly from "@/components/ClientOnly";
export const dynamic = "force-dynamic";
export const metadata: Metadata = {
title: "Canvas Manager 2.0",
@@ -21,21 +27,59 @@ export default async function RootLayout({
const queryClient = getQueryClient();
await hydrateCourses(queryClient);
const dehydratedState = dehydrate(queryClient);
cookies() // disables static page generation at build time
cookies(); // disables static page generation at build time
const trpcHelper = createServerSideHelpers({
router: trpcAppRouter,
ctx: createTrpcContext(),
transformer: superjson,
});
const allSettings = await fileStorageService.settings.getAllCoursesSettings();
await Promise.all(
allSettings.map(async (settings) => {
const courseName = settings.name;
const moduleNames = await fileStorageService.modules.getModuleNames(
courseName
);
await Promise.all(
moduleNames.map(async (moduleName) => {
await trpcHelper.assignment.getAllAssignments.prefetch({
courseName,
moduleName,
});
// await Promise.all(
// assignments.map(
// async (a) =>
// await trpcHelper.assignment.getAssignment.fetch({
// courseName,
// moduleName,
// assignmentName: a.name,
// })
// )
// );
})
);
})
);
const dehydratedTrpc = trpcHelper.dehydrate();
return (
<html lang="en">
<head></head>
<body className="flex justify-center">
<div className="bg-slate-900 h-screen text-slate-300 w-full sm:p-1">
<MyToaster />
<Suspense>
<Providers>
<MyToaster />
<Suspense>
<Providers>
<HydrationBoundary state={dehydratedTrpc}>
<HydrationBoundary state={dehydratedState}>
{children}
</HydrationBoundary>
</Providers>
</Suspense>
</HydrationBoundary>
</Providers>
</Suspense>
</div>
</body>
</html>