Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 30x 1728x 1728x 977x 977x 764x 213x 977x | import React from "react";
import { isDeepEqual } from "remeda";
export const useGetMemoizedValue = <T>(getValue: () => T) => {
const snapshotRef = React.useRef<T | null>(null);
return React.useCallback(() => {
const nextSnapshot = getValue();
if (
snapshotRef.current !== null &&
isDeepEqual<T>(snapshotRef.current, nextSnapshot)
) {
return snapshotRef.current;
}
snapshotRef.current = nextSnapshot;
return nextSnapshot;
}, [getValue]);
};
|