react-use/src/useInterval.ts
xobotyi 9577d63ec2 editorconfig:
- typescript rules separated from others;
- more alignment rules;
2019-08-24 01:57:29 +03:00

20 lines
478 B
TypeScript

import { useEffect, useRef } from 'react';
const useInterval = (callback: Function, delay?: number | null) => {
const latestCallback = useRef<Function>(() => {});
useEffect(() => {
latestCallback.current = callback;
});
useEffect(() => {
if (delay !== null) {
const interval = setInterval(() => latestCallback.current(), delay || 0);
return () => clearInterval(interval);
}
return undefined;
}, [delay]);
};
export default useInterval;