UNPKG

@lesnoypudge/utils-react

Version:

lesnoypudge's utils-react

25 lines (24 loc) 866 B
import { useContextSelector as useContextSelector$1 } from "@fluentui/react-context-selector"; import { useFunction } from "../../../../hooks/useFunction/useFunction.js"; import { useContext, useRef } from "react"; const EMPTY_VALUE = {}; const refEqual = (a, b) => { return a === b; }; const useContextSelector = (context, selector, equalityFn = refEqual) => { const contextValue = useContext(context); const prevSelectedRef = useRef(EMPTY_VALUE); const stableSelector = useFunction(() => { const selected = selector(contextValue.value.current); if (equalityFn(selected, prevSelectedRef.current)) { return prevSelectedRef.current; } prevSelectedRef.current = selected; return selected; }); return useContextSelector$1(context, stableSelector); }; export { useContextSelector }; //# sourceMappingURL=useContextSelector.js.map