@minimaltech/ra-infra
Version:
Minimal Technology ReactJS Infrastructure
35 lines • 1.31 kB
JavaScript
import React from 'react';
export const useConfirm = () => {
//--------------------------------------------------
const [resolve, setResolve] = React.useState();
//--------------------------------------------------
const [message, setMessage] = React.useState();
//--------------------------------------------------
const confirm = React.useCallback((opts) => {
return new Promise(_resolve => {
setResolve(() => {
return (value) => {
return _resolve(value);
};
});
setMessage(opts.message);
});
}, []);
//--------------------------------------------------
const handleClose = React.useCallback(() => {
setResolve(undefined);
setMessage(undefined);
}, []);
//--------------------------------------------------
const handleConfirm = React.useCallback(() => {
resolve?.(true);
handleClose();
}, [handleClose, resolve]);
//--------------------------------------------------
const handleAbort = React.useCallback(() => {
resolve?.(false);
handleClose();
}, [handleClose, resolve]);
return { message, confirm, handleClose, handleConfirm, handleAbort };
};
//# sourceMappingURL=use-confirm.js.map