aboutsummaryrefslogtreecommitdiff
path: root/src/hooks/useStableCallback.ts
blob: 98e6c0d38976b95350700c051ea1f2a57656b2dd (plain) (blame)
1
2
3
4
5
6
7
8
9
import {useCallback, useRef} from 'react';

export const useStableCallback = <Args extends any[], Ret>(
  callback: (...a: Args) => Ret,
): ((...a: Args) => Ret) => {
  const cb = useRef(callback);
  cb.current = callback;
  return useCallback((...args: Args) => cb.current(...args), [cb]);
};