"use client" import CustomButton from "@/components/ui/customButton" import { Button } from "@/components/ui/button" import { Clock, Code2, Ellipsis, FolderDot, Globe, HelpCircle, Plus, Settings, Users, } from "lucide-react" import { useState } from "react" import ProjectCard from "./projectCard" import { Sandbox } from "@/lib/types" import Image from "next/image" import ProjectCardDropdown from "./projectCard/dropdown" import DashboardProjects from "./projects" import DashboardSharedWithMe from "./shared" type TScreen = "projects" | "shared" | "settings" | "search" export default function Dashboard({ sandboxes }: { sandboxes: Sandbox[] }) { const [screen, setScreen] = useState<TScreen>("projects") const activeScreen = (s: TScreen) => { if (screen === s) return "justify-start" else return "justify-start font-normal text-muted-foreground" } return ( <div className="flex grow w-full"> <div className="w-56 shrink-0 border-r border-border p-4 justify-between flex flex-col"> <div className="flex flex-col"> <CustomButton className="mb-4"> <Plus className="w-4 h-4 mr-2" /> New Project </CustomButton> <Button variant="ghost" onClick={() => setScreen("projects")} className={activeScreen("projects")} > <FolderDot className="w-4 h-4 mr-2" /> My Projects </Button> <Button variant="ghost" onClick={() => setScreen("shared")} className={activeScreen("shared")} > <Users className="w-4 h-4 mr-2" /> Shared With Me </Button> <Button variant="ghost" onClick={() => setScreen("settings")} className={activeScreen("settings")} > <Settings className="w-4 h-4 mr-2" /> Settings </Button> </div> <div className="flex flex-col"> <Button variant="ghost" className="justify-start font-normal text-muted-foreground" > <Code2 className="w-4 h-4 mr-2" /> GitHub Repository </Button> <Button variant="ghost" className="justify-start font-normal text-muted-foreground" > <HelpCircle className="w-4 h-4 mr-2" /> About </Button> </div> </div> {screen === "projects" ? ( <DashboardProjects sandboxes={sandboxes} /> ) : screen === "shared" ? ( <DashboardSharedWithMe sandboxes={sandboxes} /> ) : screen === "settings" ? null : null} </div> ) }