UNPKG

@grafana/ui

Version:
61 lines (54 loc) 1.91 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var jsxRuntime = require('react/jsx-runtime'); var React = require('react'); function _interopNamespaceCompat(e) { if (e && typeof e === 'object' && 'default' in e) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n.default = e; return Object.freeze(n); } var React__namespace = /*#__PURE__*/_interopNamespaceCompat(React); "use strict"; const ModalsContext = React__namespace.createContext({ component: null, props: {}, showModal: () => { }, hideModal: () => { } }); function ModalsProvider({ children }) { const [component, setComponent] = React.useState(null); const [props, setProps] = React.useState({}); const showModal = React.useCallback((component2, props2) => { setComponent(() => component2); setProps(props2); }, []); const hideModal = React.useCallback(() => { setComponent(null); setProps({}); }, []); const value = React.useMemo(() => ({ component, props, showModal, hideModal }), [component, props, showModal, hideModal]); return /* @__PURE__ */ jsxRuntime.jsx(ModalsContext.Provider, { value, children }); } const ModalRoot = () => /* @__PURE__ */ jsxRuntime.jsx(ModalsContext.Consumer, { children: ({ component: Component, props }) => { return Component ? /* @__PURE__ */ jsxRuntime.jsx(Component, { ...props }) : null; } }); const ModalsController = ModalsContext.Consumer; exports.ModalRoot = ModalRoot; exports.ModalsContext = ModalsContext; exports.ModalsController = ModalsController; exports.ModalsProvider = ModalsProvider; //# sourceMappingURL=ModalsContext.cjs.map