"use client"; /** * V2Group 설정 패널 * 통합 그룹 컴포넌트의 세부 설정을 관리합니다. */ import React from "react"; import { Label } from "@/components/ui/label"; import { Input } from "@/components/ui/input"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { Checkbox } from "@/components/ui/checkbox"; import { Button } from "@/components/ui/button"; import { Plus, Trash2 } from "lucide-react"; interface V2GroupConfigPanelProps { config: Record; onChange: (config: Record) => void; } export const V2GroupConfigPanel: React.FC = ({ config, onChange, }) => { const updateConfig = (field: string, value: any) => { onChange({ ...config, [field]: value }); }; const tabs = config.tabs || []; const addTab = () => { const newTabs = [...tabs, { id: `tab-${Date.now()}`, label: "새 탭", content: "" }]; updateConfig("tabs", newTabs); }; const updateTab = (index: number, field: string, value: string) => { const newTabs = [...tabs]; newTabs[index] = { ...newTabs[index], [field]: value }; updateConfig("tabs", newTabs); }; const removeTab = (index: number) => { const newTabs = tabs.filter((_: any, i: number) => i !== index); updateConfig("tabs", newTabs); }; return (
{/* GROUP TYPE 섹션 */}

GROUP TYPE

그룹 타입
{/* TITLE 섹션 */}

TITLE

제목
updateConfig("title", e.target.value)} placeholder="그룹 제목" className="h-7 text-xs" />
{/* TABS 섹션 - 탭 타입일 때만 */} {config.groupType === "tabs" && (

TABS

{tabs.map((tab: any, index: number) => (
updateTab(index, "id", e.target.value)} placeholder="ID" className="h-7 text-xs flex-1" /> updateTab(index, "label", e.target.value)} placeholder="라벨" className="h-7 text-xs flex-1" />
))} {tabs.length === 0 && (

탭을 추가해주세요

)}
)} {/* SECTION OPTIONS 섹션 - 섹션/아코디언일 때 */} {(config.groupType === "section" || config.groupType === "accordion" || !config.groupType) && (

SECTION OPTIONS

접기/펴기 가능 updateConfig("collapsible", checked)} />
{config.collapsible && (
기본으로 펼침 updateConfig("defaultOpen", checked)} />
)}
)} {/* MODAL OPTIONS 섹션 - 모달/폼모달일 때 */} {(config.groupType === "modal" || config.groupType === "form-modal") && (

MODAL OPTIONS

모달 크기
닫기 버튼 표시 updateConfig("closeable", checked)} />
배경 클릭으로 닫기 updateConfig("backdrop", checked)} />
)} {/* DISPLAY 섹션 */}

DISPLAY

헤더 표시 updateConfig("showHeader", checked)} />
); }; V2GroupConfigPanel.displayName = "V2GroupConfigPanel"; export default V2GroupConfigPanel;