"use client"; import { useCallback, useState } from "react"; import Canvas from "@/components/canvas/canvas"; import ConnectionBanner from "@/components/canvas/connection-banner"; import CanvasSidebar from "@/components/canvas/canvas-sidebar"; import { ResizableHandle, ResizablePanel, ResizablePanelGroup, } from "@/components/ui/resizable"; import type { Id } from "@/convex/_generated/dataModel"; const SIDEBAR_DEFAULT_SIZE = "18%"; const SIDEBAR_COLLAPSE_THRESHOLD = "10%"; const SIDEBAR_MAX_SIZE = "40%"; const SIDEBAR_COLLAPSED_SIZE = "84px"; const SIDEBAR_RAIL_MAX_WIDTH_PX = 148; const MAIN_PANEL_MIN_SIZE = "40%"; type CanvasShellProps = { canvasId: Id<"canvases">; }; type PanelSize = { asPercentage: number; inPixels: number; }; export function CanvasShell({ canvasId }: CanvasShellProps) { const [isSidebarRail, setIsSidebarRail] = useState(false); const handleSidebarResize = useCallback((panelSize: PanelSize) => { setIsSidebarRail(panelSize.inPixels <= SIDEBAR_RAIL_MAX_WIDTH_PX); }, []); return (
); }