overleaf/services/web/frontend/js/shared/hooks/use-deep-compare-effect.ts
ilkin-overleaf d959dbc236 Merge pull request #11105 from overleaf/ii-shared-hooks-js-to-ts-conversion
[web] Shared React hooks JS to TS conversion

GitOrigin-RevId: 0ccdebff236c7424b1a73cd7d6646a9d01a20eb1
2023-01-10 09:05:52 +00:00

16 lines
403 B
TypeScript

import { useEffect, useRef } from 'react'
import _ from 'lodash'
export default function useDeepCompareEffect<T>(
callback: () => void,
dependencies: T[]
) {
const ref = useRef<T[]>()
return useEffect(() => {
if (_.isEqual(dependencies, ref.current)) {
return
}
ref.current = dependencies
callback()
}, dependencies) // eslint-disable-line react-hooks/exhaustive-deps
}