UNPKG

stackpress

Version:

Incept is a content management framework.

39 lines (38 loc) 1.32 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.useModal = useModal; exports.useConfirm = useConfirm; const react_1 = __importDefault(require("react")); const react_2 = require("react"); const hooks_js_1 = require("../notify/hooks.js"); const ModalContext_js_1 = __importDefault(require("./ModalContext.js")); const ModalConfirm_js_1 = __importDefault(require("./ModalConfirm.js")); function useModal() { const { className, title, body, open } = (0, react_2.useContext)(ModalContext_js_1.default); return { className, title, body, open }; } function useConfirm(config) { const { label, message, action } = config; const { open, title, body } = useModal(); const { notify } = (0, hooks_js_1.useNotify)(); const confirmed = () => action().then(() => { open(false); }).catch(e => { open(false); notify('error', e.message); }); const confirm = () => { title(label()); body(react_1.default.createElement(ModalConfirm_js_1.default, { open, message: message(), confirmed })); open(true); }; return { confirm }; } ;