UNPKG

@minimaltech/ra-infra

Version:

Minimal Technology ReactJS Infrastructure

35 lines 1.31 kB
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