"use client"; import React from "react"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { Database, Layout, Cog, Settings, Palette, Monitor } from "lucide-react"; import { cn } from "@/lib/utils"; export interface ToolbarButton { id: string; label: string; icon: React.ReactNode; shortcut: string; group: "source" | "editor"; panelWidth: number; } interface LeftUnifiedToolbarProps { buttons: ToolbarButton[]; panelStates: Record; onTogglePanel: (panelId: string) => void; } export const LeftUnifiedToolbar: React.FC = ({ buttons, panelStates, onTogglePanel }) => { // 그룹별로 버튼 분류 const sourceButtons = buttons.filter((btn) => btn.group === "source"); const editorButtons = buttons.filter((btn) => btn.group === "editor"); const renderButton = (button: ToolbarButton) => { const isActive = panelStates[button.id]?.isOpen || false; const badge = panelStates[button.id]?.badge; return ( ); }; return (
{/* 입력/소스 그룹 */}
{sourceButtons.map(renderButton)}
{/* 편집/설정 그룹 */}
{editorButtons.map(renderButton)}
{/* 하단 여백 */}
); }; // 기본 버튼 설정 (통합 패널 1개) export const defaultToolbarButtons: ToolbarButton[] = [ // 통합 패널 (컴포넌트 + 편집 탭) { id: "unified", label: "패널", icon: , shortcut: "P", group: "source", panelWidth: 240, }, ]; export default LeftUnifiedToolbar;