@scrumble-nl/react-quick-modal
Version:
A quick and easy wrapper around react-bootstrap modal, you can add or remove a modal from anywhere in your application with a few simple steps.
26 lines (25 loc) • 1.03 kB
JavaScript
import React, { useCallback, useMemo, useState } from 'react';
import ModalRenderer from './modal-renderer';
export var ModalContext = React.createContext({});
export var ModalProvider = function (_a) {
var children = _a.children;
var _b = useState(null), component = _b[0], setComponent = _b[1];
var _c = useState({}), props = _c[0], setProps = _c[1];
var showModal = useCallback(function (component, props) {
setComponent(function () { return component; });
setProps(props !== null && props !== void 0 ? props : {});
}, []);
var hideModal = useCallback(function () {
setProps({});
setComponent(null);
}, []);
var context = useMemo(function () { return ({
props: props,
component: component,
showModal: showModal,
hideModal: hideModal,
}); }, [props, component, showModal, hideModal]);
return (React.createElement(ModalContext.Provider, { value: context },
React.createElement(ModalRenderer, null),
children));
};