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)}
);
}