UNPKG

@a1um1/lightweight-charts-react-wrapper

Version:

![bundle-size](https://badgen.net/bundlephobia/minzip/lightweight-charts-react-wrapper/)

23 lines (22 loc) 822 B
import { memo, useContext, useLayoutEffect, useRef } from "react"; import { seriesPrimitive, } from "../internal/series-primitive.js"; import { SeriesContext } from "./internal/series-context.js"; import { createLazyValue } from "../internal/lazy-value.js"; export const SeriesPrimitive = memo(function SeriesPrimitive(props) { useSeriesPrimitive(props); return null; }); function useSeriesPrimitive(props) { const series = useContext(SeriesContext); const context = useRef(createLazyValue(() => seriesPrimitive(series(), props), (value) => value.destroy())); useLayoutEffect(() => { context.current(); return () => { context.current.reset(); }; }, []); useLayoutEffect(() => { context.current().update(props); }, [props]); return context; }