TelegramPWA/src/hooks/useEffectWithPrevDeps.ts
2022-02-02 22:52:33 +01:00

14 lines
540 B
TypeScript

import { useEffect } from '../lib/teact/teact';
import usePrevious from './usePrevious';
const useEffectWithPrevDeps = <T extends any[], PT = T>(cb: (args: PT) => void, dependencies: T, debugKey?: string) => {
const prevDeps = usePrevious<T>(dependencies);
return useEffect(() => {
// @ts-ignore (workaround for "could be instantiated with a different subtype" issue)
return cb(prevDeps || []);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, dependencies, debugKey);
};
export default useEffectWithPrevDeps;