UNPKG

@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
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)); };