'use client'; import { useState, useEffect } from 'react'; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import { Label } from '@/components/ui/label'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@/components/ui/select'; import { DatePicker } from '@/components/ui/date-picker'; import { format } from 'date-fns'; import type { ReasonInfoDialogProps, ReasonFormData, ReasonType, } from './types'; import { REASON_TYPE_LABELS } from './types'; const initialFormData: ReasonFormData = { employeeId: '', baseDate: format(new Date(), 'yyyy-MM-dd'), reasonType: '', }; export function ReasonInfoDialog({ open, onOpenChange, employees, onSubmit, }: ReasonInfoDialogProps) { const [formData, setFormData] = useState(initialFormData); // 데이터 초기화 useEffect(() => { if (open) { setFormData(initialFormData); } }, [open]); // 입력 변경 핸들러 const handleChange = (field: keyof ReasonFormData, value: string) => { setFormData(prev => ({ ...prev, [field]: value })); }; // 등록 (문서 작성 화면으로 이동) const handleSubmit = () => { onSubmit(formData); onOpenChange(false); }; return ( 사유 정보
{/* 대상 선택 */}
{/* 기준일 */}
handleChange('baseDate', date)} className="w-[200px]" align="end" />
{/* 유형 선택 */}
); }