From 544c75d6adc989b1ff1570c51b5d1b83e7948fb6 Mon Sep 17 00:00:00 2001 From: Utkarsh-Patel-13 Date: Fri, 8 Aug 2025 11:17:43 -0700 Subject: [PATCH] Added persistance to sidebar state --- .../[search_space_id]/client-layout.tsx | 10 ++++++--- .../components/sidebar/AppSidebarProvider.tsx | 22 +------------------ 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/surfsense_web/app/dashboard/[search_space_id]/client-layout.tsx b/surfsense_web/app/dashboard/[search_space_id]/client-layout.tsx index 8b28c8b..de4204a 100644 --- a/surfsense_web/app/dashboard/[search_space_id]/client-layout.tsx +++ b/surfsense_web/app/dashboard/[search_space_id]/client-layout.tsx @@ -1,5 +1,6 @@ -"use client"; +"use server"; +import { cookies } from "next/headers"; import type React from "react"; import { DashboardBreadcrumb } from "@/components/dashboard-breadcrumb"; import { AppSidebarProvider } from "@/components/sidebar/AppSidebarProvider"; @@ -7,7 +8,7 @@ import { ThemeTogglerComponent } from "@/components/theme/theme-toggle"; import { Separator } from "@/components/ui/separator"; import { SidebarInset, SidebarProvider, SidebarTrigger } from "@/components/ui/sidebar"; -export function DashboardClientLayout({ +export async function DashboardClientLayout({ children, searchSpaceId, navSecondary, @@ -18,8 +19,11 @@ export function DashboardClientLayout({ navSecondary: any[]; navMain: any[]; }) { + const cookieStore = await cookies(); + const defaultOpen = cookieStore.get("sidebar_state")?.value === "true"; + return ( - + {/* Use AppSidebarProvider which fetches user, search space, and recent chats */} ( -
- {Array.from({ length: 3 }).map((_, i) => ( -
- ))} -
-); - -// Error state component -const ErrorState = ({ error, onRetry }: { error: string; onRetry: () => void }) => ( -
- -

{error}

- -
-); - export function AppSidebarProvider({ searchSpaceId, navSecondary,