UNPKG

react-plot

Version:

Library of React components to render SVG 2D plots.

27 lines 948 B
import { jsx as _jsx } from "react/jsx-runtime"; import { createContext, useContext, useMemo } from 'react'; export function createNestableContext(defaultValue) { const context = createContext(new Map()); function useNestedContext(id) { const values = useContext(context); if (values.has(id)) { return values.get(id); } return defaultValue; } function NestedContextProvider(props) { const { id, value, children } = props; const parentValues = useContext(context); const mergedValues = useMemo(() => { const merged = new Map(parentValues); merged.set(id, value); return merged; }, [parentValues, id, value]); return _jsx(context.Provider, { value: mergedValues, children: children }); } return { useNestedContext, NestedContextProvider, }; } //# sourceMappingURL=nestableContext.js.map