UNPKG

@grafana/ui

Version:
35 lines (32 loc) 1.19 kB
import { jsx } from 'react/jsx-runtime'; import * as React from 'react'; import { useState, useCallback, useMemo } from 'react'; "use strict"; const ModalsContext = React.createContext({ component: null, props: {}, showModal: () => { }, hideModal: () => { } }); function ModalsProvider({ children }) { const [component, setComponent] = useState(null); const [props, setProps] = useState({}); const showModal = useCallback((component2, props2) => { setComponent(() => component2); setProps(props2); }, []); const hideModal = useCallback(() => { setComponent(null); setProps({}); }, []); const value = useMemo(() => ({ component, props, showModal, hideModal }), [component, props, showModal, hideModal]); return /* @__PURE__ */ jsx(ModalsContext.Provider, { value, children }); } const ModalRoot = () => /* @__PURE__ */ jsx(ModalsContext.Consumer, { children: ({ component: Component, props }) => { return Component ? /* @__PURE__ */ jsx(Component, { ...props }) : null; } }); const ModalsController = ModalsContext.Consumer; export { ModalRoot, ModalsContext, ModalsController, ModalsProvider }; //# sourceMappingURL=ModalsContext.mjs.map