"use client"; import { useState, useEffect } from "react"; import dynamic from "next/dynamic"; import { useSearchParams } from "next/navigation"; import { Toaster, toast } from "sonner"; import { VSCodeFrame } from "@/components/workspace/VSCodeFrame"; import { AIAssistantSidebar } from "@/components/workspace/AIAssistantSidebar"; import { WorkspaceHeader } from "@/components/workspace/WorkspaceHeader"; import type { Session } from "next-auth"; // Dynamic Dashboard import const Dashboard = dynamic(() => import("@/components/dashboard/Dashboard"), { ssr: false }); export default function IDEClient({ session }: { session: Session | null }) { const searchParams = useSearchParams(); const workspaceParam = searchParams?.get("workspace"); const [isAiOpen, setIsAiOpen] = useState(false); const [theme] = useState<"dark" | "light">("dark"); const [refreshKey, setRefreshKey] = useState(0); // Apply theme globally useEffect(() => { document.documentElement.setAttribute("data-theme", theme); // Cleanup if needed }, [theme]); // Keyboard shortcut for AI useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { if ((e.ctrlKey || e.metaKey) && e.key === "i") { e.preventDefault(); setIsAiOpen(prev => !prev); } }; window.addEventListener("keydown", handleKeyDown); return () => window.removeEventListener("keydown", handleKeyDown); }, []); // If no specific workspace is requested, render the Firebase-style Dashboard Control Plane if (!workspaceParam) { return (