"use client"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { Textarea } from "@/components/ui/textarea"; import { Label } from "@/components/ui/label"; import { useState } from "react"; import { toast } from "sonner"; interface SkipReasonDialogProps { open: boolean; onOpenChange: (open: boolean) => void; title: string; description: string; onConfirm: (reason: string) => Promise; loading: boolean; } export function SkipReasonDialog({ open, onOpenChange, title, description, onConfirm, loading, }: SkipReasonDialogProps) { const [reason, setReason] = useState(""); const handleConfirm = async () => { if (!reason.trim()) { toast.error("Skip 사유를 입력해주세요."); return; } try { await onConfirm(reason.trim()); setReason(""); // 성공 시 초기화 onOpenChange(false); } catch (error) { // 에러는 상위 컴포넌트에서 처리 } }; const handleCancel = () => { setReason(""); onOpenChange(false); }; return ( {title}

{description}