@hackplan/polaris
Version:
Shopify’s product component library
14 lines (13 loc) • 517 B
JavaScript
import { useEffect, useRef } from 'react';
import isEqual from 'lodash/isEqual';
function useDeepCompareRef(dependencies, comparator = isEqual) {
const dependencyList = useRef(dependencies);
if (!comparator(dependencyList.current, dependencies)) {
dependencyList.current = dependencies;
}
return dependencyList.current;
}
function useDeepCompare(callback, dependencies, customCompare) {
useEffect(callback, useDeepCompareRef(dependencies, customCompare));
}
export default useDeepCompare;