@hitachivantara/uikit-react-lab
Version:
Contributed React components for the NEXT UI Kit.
44 lines (43 loc) • 1.35 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const react = require("react");
const HvFlowNodeMetaContext = react.createContext(void 0);
const HvFlowNodeMetaProvider = ({
children
}) => {
const registryRef = react.useRef({});
const registerNode = react.useCallback((id, nodeInfo) => {
registryRef.current[id] = nodeInfo;
}, []);
const unregisterNode = react.useCallback((id) => {
delete registryRef.current[id];
}, []);
const getRegistry = react.useCallback(() => {
return registryRef.current;
}, []);
const value = react.useMemo(
() => ({
registerNode,
unregisterNode,
getRegistry
}),
[registerNode, unregisterNode, getRegistry]
);
return /* @__PURE__ */ jsxRuntime.jsx(HvFlowNodeMetaContext.Provider, { value, children });
};
function useNodeMetaRegistry() {
const context = react.useContext(HvFlowNodeMetaContext);
if (context === void 0) {
throw new Error(
"useNodeRegistry must be used within a HvFlowNodeMetaProvider"
);
}
return {
registerNode: context.registerNode,
unregisterNode: context.unregisterNode,
registry: context.getRegistry()
};
}
exports.HvFlowNodeMetaProvider = HvFlowNodeMetaProvider;
exports.useNodeMetaRegistry = useNodeMetaRegistry;