UNPKG

victory-core

Version:
35 lines 1.14 kB
import React from "react"; export const PortalContext = /*#__PURE__*/React.createContext(undefined); PortalContext.displayName = "PortalContext"; export const usePortalContext = () => { const context = React.useContext(PortalContext); return context; }; export const PortalProvider = _ref => { let { children } = _ref; const [portalChildren, setPortalChildren] = React.useState(new Map()); const addChild = React.useCallback((id, element) => { setPortalChildren(prevChildren => { const nextChildren = new Map(prevChildren); nextChildren.set(id, element); return nextChildren; }); }, [setPortalChildren]); const removeChild = React.useCallback(id => { setPortalChildren(prevChildren => { const nextChildren = new Map(prevChildren); nextChildren.delete(id); return nextChildren; }); }, [setPortalChildren]); const contextValue = React.useMemo(() => ({ addChild, removeChild, children: portalChildren }), [addChild, removeChild, portalChildren]); return /*#__PURE__*/React.createElement(PortalContext.Provider, { value: contextValue }, children); };