@grafana/ui
Version:
Grafana Components Library
61 lines (54 loc) • 1.91 kB
JavaScript
;
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);
;
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