import React, { useState } from 'react'; import { Dialog, DialogContent, DialogDescription, DialogFooter, 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 ErrorAlertDialog from '@/components/shared/ErrorAlertDialog.jsx'; const AddScenarioDialog = ({ open, onOpenChange, onSubmit }) => { const [scenarioName, setScenarioName] = useState(''); const [error, setError] = useState(''); const [isSubmitting, setIsSubmitting] = useState(false); const [showErrorDialog, setShowErrorDialog] = useState(false); const handleSubmit = async (e) => { e.preventDefault(); if (!scenarioName.trim()) { setError('시나리오 이름을 입력해주세요'); return; } setIsSubmitting(true); try { const success = await onSubmit(scenarioName.trim()); if (success) { setScenarioName(''); setError(''); onOpenChange(false); } else { setError('시나리오 생성에 실패했습니다'); setShowErrorDialog(true); } } catch (err) { setError(err.message || '시나리오 생성에 실패했습니다'); setShowErrorDialog(true); } finally { setIsSubmitting(false); } }; const handleOpenChange = (open) => { if (!open) { setScenarioName(''); setError(''); } onOpenChange(open); }; return ( <> 새 시나리오 추가 새로운 시나리오의 이름을 입력해주세요 시나리오 이름 { setScenarioName(e.target.value); setError(''); }} placeholder="시나리오 이름을 입력하세요" /> handleOpenChange(false)} disabled={isSubmitting} > 취소 {isSubmitting ? '생성 중...' : '생성'} > ); }; export default AddScenarioDialog;