UNPKG

@hackplan/polaris

Version:

Shopify’s product component library

14 lines (13 loc) 517 B
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;