/** * V2Media 컴포넌트 정의 * * 파일, 이미지, 비디오, 오디오 등 다양한 미디어 타입을 지원하는 통합 미디어 컴포넌트 */ import { ComponentCategory } from "@/types/component"; import { createComponentDefinition } from "../../utils/createComponentDefinition"; import { V2MediaConfigPanel } from "@/components/v2/config-panels/V2MediaConfigPanel"; import { V2Media } from "@/components/v2/V2Media"; export const V2MediaDefinition = createComponentDefinition({ id: "v2-media", name: "V2 미디어", description: "파일, 이미지, 비디오, 오디오 등 다양한 미디어 타입 지원", category: ComponentCategory.INPUT, webType: "file", version: "2.0.0", component: V2Media, // 기본 속성 defaultProps: { config: { mediaType: "file", multiple: false, preview: true, maxSize: 10, // MB accept: "*/*", showFileList: true, dragDrop: true, }, }, // 설정 스키마 configSchema: { mediaType: { type: "select", label: "미디어 타입", options: [ { value: "file", label: "파일" }, { value: "image", label: "이미지" }, { value: "video", label: "비디오" }, { value: "audio", label: "오디오" }, ], }, multiple: { type: "boolean", label: "다중 업로드", }, preview: { type: "boolean", label: "미리보기", }, maxSize: { type: "number", label: "최대 크기 (MB)", }, accept: { type: "text", label: "허용 파일 형식", placeholder: "*/* 또는 image/*", }, }, // 이벤트 events: ["onChange", "onUpload", "onDelete"], // 아이콘 icon: "Upload", // 태그 tags: ["media", "file", "image", "upload", "v2"], // 설정 패널 configPanel: V2MediaConfigPanel, }); export default V2MediaDefinition;