diff --git a/app/layout.tsx b/app/layout.tsx index 797d4b2..ea508cc 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,15 +1,20 @@ import "@/styles/globals.css"; import { Metadata } from "next"; +import { CookiesProvider } from "next-client-cookies/server"; import { siteConfig } from "@/config/site"; import { fontMono, fontSans } from "@/lib/fonts"; import { cn } from "@/lib/style"; +import { ClientLayout } from "@/components/client-layout"; import { Sidebar } from "@/components/sidebar"; import { SiteHeader } from "@/components/site-header"; import { TailwindIndicator } from "@/components/tailwind-indicator"; import { ThemeProvider } from "@/components/theme-provider"; import { SearchTextProvider } from "@/contexts/search-text"; +import { SidebarProvider } from "@/contexts/sidebar"; + +export const dynamic = "force-dynamic"; export const metadata: Metadata = { metadataBase: new URL(siteConfig.url), @@ -54,16 +59,22 @@ export default function RootLayout({ children }: RootLayoutProps) { fontMono.variable )} > - - -
- - -
{children}
-
- -
-
+ + + + + + + +
+ {children} +
+
+ +
+
+
+
); diff --git a/components/client-layout.tsx b/components/client-layout.tsx new file mode 100644 index 0000000..86b20a7 --- /dev/null +++ b/components/client-layout.tsx @@ -0,0 +1,24 @@ +"use client"; + +import React, { PropsWithChildren } from "react"; + +import { cn } from "@/lib/style"; +import { SidebarStatus, useSidebarStatus } from "@/contexts/sidebar"; + +export function ClientLayout({ children }: PropsWithChildren) { + const sidebarStatus = useSidebarStatus(); + const isOpen = sidebarStatus === SidebarStatus.Open; + const isClosed = sidebarStatus === SidebarStatus.Closed; + + return ( +
+ {children} +
+ ); +} diff --git a/components/sidebar.tsx b/components/sidebar.tsx index 1d39bcf..6dc45d9 100644 --- a/components/sidebar.tsx +++ b/components/sidebar.tsx @@ -7,11 +7,11 @@ import { ToolGroups } from "./sidebar/tool-groups"; export function Sidebar() { return ( -