"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; return ( ); }; return (
{/* 입력/소스 그룹 */}
{sourceButtons.map(renderButton)}
{/* 편집/설정 그룹 */}
{editorButtons.map(renderButton)}
{/* 하단 여백 */}
); }; // 기본 버튼 설정 (컴포넌트와 편집 2개) export const defaultToolbarButtons: ToolbarButton[] = [ // 컴포넌트 그룹 (테이블 + 컴포넌트 탭) { id: "components", label: "컴포넌트", icon: , shortcut: "C", group: "source", panelWidth: 400, }, // 편집 그룹 (속성 + 스타일 & 해상도 탭) { id: "properties", label: "편집", icon: , shortcut: "P", group: "editor", panelWidth: 400, }, ]; export default LeftUnifiedToolbar;