UNPKG

@razorpay/blade

Version:

The Design System that powers Razorpay

72 lines (69 loc) 2.17 kB
import { useRef, useLayoutEffect } from 'react'; import { useIsPanorama } from '../context/PanoramaContext.js'; import { selectChartLayout } from '../context/chartLayoutContext.js'; import { useAppDispatch, useAppSelector } from './hooks.js'; import { addLegendPayload, replaceLegendPayload, removeLegendPayload } from './legendSlice.js'; function SetLegendPayload(_ref) { var { legendPayload } = _ref; var dispatch = useAppDispatch(); var isPanorama = useIsPanorama(); var prevPayloadRef = useRef(null); useLayoutEffect(() => { if (isPanorama) { return; } if (prevPayloadRef.current === null) { dispatch(addLegendPayload(legendPayload)); } else if (prevPayloadRef.current !== legendPayload) { dispatch(replaceLegendPayload({ prev: prevPayloadRef.current, next: legendPayload })); } prevPayloadRef.current = legendPayload; }, [dispatch, isPanorama, legendPayload]); useLayoutEffect(() => { return () => { if (prevPayloadRef.current) { dispatch(removeLegendPayload(prevPayloadRef.current)); prevPayloadRef.current = null; } }; }, [dispatch]); return null; } function SetPolarLegendPayload(_ref2) { var { legendPayload } = _ref2; var dispatch = useAppDispatch(); var layout = useAppSelector(selectChartLayout); var prevPayloadRef = useRef(null); useLayoutEffect(() => { if (layout !== 'centric' && layout !== 'radial') { return; } if (prevPayloadRef.current === null) { dispatch(addLegendPayload(legendPayload)); } else if (prevPayloadRef.current !== legendPayload) { dispatch(replaceLegendPayload({ prev: prevPayloadRef.current, next: legendPayload })); } prevPayloadRef.current = legendPayload; }, [dispatch, layout, legendPayload]); useLayoutEffect(() => { return () => { if (prevPayloadRef.current) { dispatch(removeLegendPayload(prevPayloadRef.current)); prevPayloadRef.current = null; } }; }, [dispatch]); return null; } export { SetLegendPayload, SetPolarLegendPayload }; //# sourceMappingURL=SetLegendPayload.js.map