"use client"; /** * V2Media 설정 패널 * 통합 미디어 컴포넌트의 세부 설정을 관리합니다. */ 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"; interface V2MediaConfigPanelProps { config: Record; onChange: (config: Record) => void; } export const V2MediaConfigPanel: React.FC = ({ config, onChange, }) => { const updateConfig = (field: string, value: any) => { onChange({ ...config, [field]: value }); }; return (
{/* MEDIA TYPE 섹션 */}

MEDIA TYPE

미디어 타입
{/* FILE SETTINGS 섹션 */}

FILE SETTINGS

허용 파일 형식
updateConfig("accept", e.target.value)} placeholder=".jpg,.png,.pdf" className="h-7 text-xs" />
최대 크기 (MB)
updateConfig("maxSize", e.target.value ? Number(e.target.value) : undefined)} placeholder="10" min="1" className="h-7 text-xs" />
최대 파일 수
updateConfig("maxFiles", e.target.value ? Number(e.target.value) : undefined)} placeholder="제한 없음" min="1" className="h-7 text-xs" />
{/* OPTIONS 섹션 */}

OPTIONS

다중 파일 업로드 updateConfig("multiple", checked)} />
미리보기 표시 updateConfig("preview", checked)} />
드래그 앤 드롭 updateConfig("dragDrop", checked)} />
{/* IMAGE SETTINGS 섹션 - 이미지 타입 전용 */} {config.mediaType === "image" && (

IMAGE SETTINGS

updateConfig("maxWidth", e.target.value ? Number(e.target.value) : undefined)} placeholder="자동" className="h-7 text-xs" />
updateConfig("maxHeight", e.target.value ? Number(e.target.value) : undefined)} placeholder="자동" className="h-7 text-xs" />
자르기 기능 updateConfig("crop", checked)} />
)} {/* PLAYER SETTINGS 섹션 - 비디오/오디오 전용 */} {(config.mediaType === "video" || config.mediaType === "audio") && (

PLAYER SETTINGS

자동 재생 updateConfig("autoplay", checked)} />
컨트롤 표시 updateConfig("controls", checked)} />
반복 재생 updateConfig("loop", checked)} />
)}
); }; V2MediaConfigPanel.displayName = "V2MediaConfigPanel"; export default V2MediaConfigPanel;