import { Boxes, Clock, Database, DatabaseBackup, Home, Settings, Share2, } from "lucide-react"; import { Tooltip } from "../ui/Tooltip"; export interface DbViewerSidebarProps { currentView: string; onNavigate: (view: string) => void; } interface NavItem { id: string; label: string; icon: React.ReactNode; stub?: boolean; } export function DbViewerSidebar({ currentView, onNavigate, }: DbViewerSidebarProps) { const topItems: NavItem[] = [ { id: "db-viewer", label: "Explorer", icon: }, { id: "queries", label: "Queries", icon: , }, { id: "schema-visualizer", label: "Schema Visualizer", icon: , }, { id: "objects", label: "Objects", icon: }, { id: "tools", label: "Tools", icon: }, ]; const bottomItems: NavItem[] = [ { id: "home", label: "Home", icon: }, { id: "settings", label: "Settings", icon: }, ]; function renderItem(item: NavItem) { const isActive = currentView === item.id; const baseClass = "w-8 h-8 flex items-center justify-center rounded-lg transition-colors focus:outline-none focus:ring-2 focus:ring-accent/50"; const activeClass = "text-accent"; const inactiveClass = "text-text-muted hover:text-text hover:bg-surface-raised"; const stubClass = "opacity-40 cursor-not-allowed"; return ( ); } return (
{topItems.map(renderItem)}
{bottomItems.map(renderItem)}
); }