import React, { useState, useEffect } from 'react'; import type { ConfirmableProps, ConfirmDialog, ConfirmableDialog } from './types'; const confirmable:
(Component: ConfirmDialog
) => ConfirmableDialog
=
(Component: ConfirmDialog
) => ({ dispose, reject, resolve, registerSetShow, ...other }: ConfirmableProps
) => {
const [show, setShow] = useState(true);
// Register setShow for external control
useEffect(() => {
registerSetShow?.(setShow);
}, [registerSetShow]);
const dismiss = () => {
setShow(false);
dispose();
};
const cancel = (value?: any) => {
setShow(false);
reject(value);
};
const proceed = (value: R) => {
setShow(false);
resolve(value);
};
return (