diff --git a/surfsense_web/components/layout/hooks/SidebarContext.tsx b/surfsense_web/components/layout/hooks/SidebarContext.tsx index bfb5b5aeb..35f76929d 100644 --- a/surfsense_web/components/layout/hooks/SidebarContext.tsx +++ b/surfsense_web/components/layout/hooks/SidebarContext.tsx @@ -6,7 +6,6 @@ interface SidebarContextValue { isCollapsed: boolean; setIsCollapsed: (collapsed: boolean) => void; toggleCollapsed: () => void; - sidebarWidth: number; } const SidebarContext = createContext(null); diff --git a/surfsense_web/components/layout/hooks/useSidebarResize.ts b/surfsense_web/components/layout/hooks/useSidebarResize.ts index 887c86dce..35ef7bf8b 100644 --- a/surfsense_web/components/layout/hooks/useSidebarResize.ts +++ b/surfsense_web/components/layout/hooks/useSidebarResize.ts @@ -39,6 +39,7 @@ export function useSidebarResize(defaultWidth = SIDEBAR_MIN_WIDTH): UseSidebarRe // Persist width to cookie const persistWidth = useCallback((width: number) => { try { + // biome-ignore lint/suspicious/noDocumentCookie: SSR-readable preference, not security-sensitive document.cookie = `${SIDEBAR_WIDTH_COOKIE_NAME}=${width}; path=/; max-age=${SIDEBAR_WIDTH_COOKIE_MAX_AGE}`; } catch { // Ignore cookie write errors diff --git a/surfsense_web/components/layout/ui/shell/LayoutShell.tsx b/surfsense_web/components/layout/ui/shell/LayoutShell.tsx index d57cd148a..701b89b39 100644 --- a/surfsense_web/components/layout/ui/shell/LayoutShell.tsx +++ b/surfsense_web/components/layout/ui/shell/LayoutShell.tsx @@ -217,8 +217,8 @@ export function LayoutShell({ // Memoize context value to prevent unnecessary re-renders const sidebarContextValue = useMemo( - () => ({ isCollapsed, setIsCollapsed, toggleCollapsed, sidebarWidth }), - [isCollapsed, setIsCollapsed, toggleCollapsed, sidebarWidth] + () => ({ isCollapsed, setIsCollapsed, toggleCollapsed }), + [isCollapsed, setIsCollapsed, toggleCollapsed] ); const closeSlideout = useCallback( @@ -403,10 +403,10 @@ export function LayoutShell({ /> - {/* Sidebar + slide-out panels share one container; overflow visible so panels can overlay main content */} + {/* Sidebar + slide-out panels share one container; overflow visible so panels can overlay main content. Negative right margin closes the flex gap so the sidebar sits flush against the main panel, separated only by a border. */} - {/* Resize handle — negative margins eat the flex gap so spacing stays unchanged */} - {!isCollapsed && ( -
- )} - {/* Main content panel */}