UNPKG

react-hook-popup

Version:

Easily manage popups like alerts and modals in React with a single hook

35 lines (34 loc) 1.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.usePopup = void 0; var react_1 = require("react"); var PopupContext_1 = require("../PopupContext"); function usePopup(key, popupRenderer) { var _a = react_1.useContext(PopupContext_1.PopupContext), registerPopup = _a.registerPopup, unRegisterPopup = _a.unRegisterPopup, displayPopup = _a.displayPopup, closePopup = _a.closePopup; var _b = react_1.useState(undefined), confirmPromise = _b[0], setConfirmPromise = _b[1]; function initializePopup() { setConfirmPromise(new Promise(function (resolve) { registerPopup(key, popupRenderer, function (val) { resolve(val); unRegisterPopup(key); initializePopup(); }); })); } react_1.useEffect(function () { initializePopup(); return function () { unRegisterPopup(key); }; }, []); return [ function (message) { displayPopup(key, message); return confirmPromise; }, function () { closePopup(key); }, ]; } exports.usePopup = usePopup;