Passed
Push — master ( 4fffb9...a79de5 )
by Guangyu
08:15 queued 12s
created

myems-web/src/hooks/useInterval.js   A

Complexity

Total Complexity 2
Complexity/F 2

Size

Lines of Code 23
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 16
mnd 1
bc 1
fnc 1
dl 0
loc 23
rs 10
bpm 1
cpm 2
noi 0
c 0
b 0
f 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A useInterval.js ➔ tick 0 2 1
1
import React, { useState, useEffect, useRef } from 'react';
2
3
const useInterval = (callback, delay) => {
4
  const savedCallback = useRef();
5
6
  // Remember the latest callback.
7
  useEffect(() => {
8
    savedCallback.current = callback;
9
  });
10
11
  // Set up the interval.
12
  useEffect(() => {
13
    function tick() {
14
      savedCallback.current();
15
    }
16
    if (delay !== null) {
17
      let id = setInterval(tick, delay);
18
      return () => clearInterval(id);
19
    }
20
  }, [delay]);
21
};
22
export default useInterval;
23