"use client"; import { useState, useEffect } from "react"; import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; interface LanguageModalProps { isOpen: boolean; onClose: () => void; onSave: (languageData: any) => void; languageData?: any; } export default function LanguageModal({ isOpen, onClose, onSave, languageData }: LanguageModalProps) { const [formData, setFormData] = useState({ langCode: "", langName: "", langNative: "", isActive: "Y", sortOrder: 0, }); useEffect(() => { if (languageData) { // 수정 모드 setFormData({ langCode: languageData.langCode || "", langName: languageData.langName || "", langNative: languageData.langNative || "", isActive: languageData.isActive || "Y", sortOrder: languageData.sortOrder || 0, }); } else { // 새 언어 추가 모드 setFormData({ langCode: "", langName: "", langNative: "", isActive: "Y", sortOrder: 0, }); } }, [languageData, isOpen]); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); onSave(formData); }; const handleClose = () => { setFormData({ langCode: "", langName: "", langNative: "", isActive: "Y", sortOrder: 0, }); onClose(); }; return ( {languageData ? "언어 수정" : "새 언어 추가"}
setFormData({ ...formData, langCode: e.target.value })} placeholder="예: ko, en, ja" required disabled={!!languageData} // 수정 시에는 언어 코드 변경 불가 />
setFormData({ ...formData, sortOrder: parseInt(e.target.value) || 0 })} placeholder="0" required />
setFormData({ ...formData, langName: e.target.value })} placeholder="예: Korean, English, Japanese" required />
setFormData({ ...formData, langNative: e.target.value })} placeholder="예: 한국어, English, 日本語" required />
); }