diff --git a/src/components/modal/ConfirmationModalWithNotes.tsx b/src/components/modal/ConfirmationModalWithNotes.tsx index a5551571..e862dffc 100644 --- a/src/components/modal/ConfirmationModalWithNotes.tsx +++ b/src/components/modal/ConfirmationModalWithNotes.tsx @@ -13,6 +13,7 @@ interface ConfirmationModalWithNotesProps extends Omit { rows?: number; placeholder?: string; + onClose?: () => void; primaryButton?: { text?: string; @@ -32,6 +33,7 @@ const ConfirmationModalWithNotes: React.FC = ({ className, rows = 3, placeholder = 'Catatan...', + onClose, ...props }) => { const randomId = useId(); @@ -41,6 +43,11 @@ const ConfirmationModalWithNotes: React.FC = ({ setNotes(e.target.value); }; + const closeModalHandler = () => { + onClose?.(); + ref.current?.close(); + }; + return ( = ({ closeOnBackdrop={closeOnBackdrop} primaryButton={{ ...primaryButton, - onClick: () => { - primaryButton?.onClick?.(notes); + onClick: (e) => { + if (primaryButton && primaryButton?.onClick) { + primaryButton?.onClick?.(notes); + } else { + closeModalHandler(); + } + setNotes(''); }, }} - secondaryButton={secondaryButton} + secondaryButton={ + secondaryButton + ? { + text: secondaryButton?.text ?? 'Tidak', + onClick: (e) => { + if (secondaryButton && secondaryButton?.onClick) { + secondaryButton.onClick?.(e); + } else { + closeModalHandler(); + } + + setNotes(''); + }, + } + : undefined + } className={className} {...props} >