import { useCallback } from 'react'; import { useDeepCompare } from './useMemoComponent'; interface UseDeepCallback { callback: (props: TParameters) => TReturn; deps: Array; } export const useDeepCallback = ({ deps, callback }: UseDeepCallback): (( props: TParameters ) => TReturn) => useCallback((props) => callback(props), [...useDeepCompare(deps), callback]);