import { overlay } from 'overlay-kit'; import { Button } from '@/shared/ui/button'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '@/shared/ui/dialog'; interface ConfirmDialogOptions { title: string; description?: string; confirmLabel?: string; cancelLabel?: string; tone?: 'default' | 'destructive'; } interface ConfirmDialogProps extends ConfirmDialogOptions { isOpen: boolean; onResolve: (confirmed: boolean) => void; } export const openConfirmDialog = (options: ConfirmDialogOptions) => overlay.openAsync(({ isOpen, close, unmount }) => ( { close(confirmed); unmount(); }} /> )); const ConfirmDialog = ({ title, description, confirmLabel = '확인', cancelLabel = '취소', tone = 'default', isOpen, onResolve, }: ConfirmDialogProps) => { return ( { if (!open) { onResolve(false); } }} > {title} {description !== undefined && ( {description} )} ); };