SystemView.tsx 430 B

1234567891011121314151617181920
  1. import { useRef, useEffect } from 'react';
  2. export const useInterval = (callback: Function, delay: number) => {
  3. const savedCallback = useRef() as { current: any };
  4. useEffect(() => {
  5. savedCallback.current = callback;
  6. });
  7. useEffect(() => {
  8. function tick() {
  9. savedCallback.current();
  10. }
  11. if (delay) {
  12. let id = setInterval(tick, delay);
  13. return () => clearInterval(id);
  14. }
  15. }, [delay]);
  16. }