Skip to content

Commit ea7797b

Browse files
committed
lint useStopwatch
1 parent 2d9ca99 commit ea7797b

File tree

1 file changed

+29
-31
lines changed

1 file changed

+29
-31
lines changed

src/useStopwatch.js

Lines changed: 29 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,30 @@
11
import { useState, useEffect, useRef } from 'react';
22

3-
/* --------------------- useStopwatch ----------------------- */
4-
53
export default function useStopwatch(settings) {
64
const { autoStart } = settings || {};
75

8-
// Seconds
9-
const [seconds, setSeconds] = useState(0);
10-
function addSecond() {
11-
setSeconds(prevSeconds => {
12-
if(prevSeconds === 59) {
13-
addMinute();
6+
// Days
7+
const [days, setDays] = useState(0);
8+
function addDay() {
9+
setDays((prevDays) => (prevDays + 1));
10+
}
11+
12+
// Hours
13+
const [hours, setHours] = useState(0);
14+
function addHour() {
15+
setHours((prevHours) => {
16+
if (prevHours === 23) {
17+
addDay();
1418
return 0;
1519
}
16-
return prevSeconds + 1;
20+
return prevHours + 1;
1721
});
1822
}
1923

2024
// Minutes
2125
const [minutes, setMinutes] = useState(0);
2226
function addMinute() {
23-
setMinutes(prevMinutes => {
27+
setMinutes((prevMinutes) => {
2428
if (prevMinutes === 59) {
2529
addHour();
2630
return 0;
@@ -29,37 +33,29 @@ export default function useStopwatch(settings) {
2933
});
3034
}
3135

32-
// Hours
33-
const [hours, setHours] = useState(0);
34-
function addHour() {
35-
setHours(prevHours => {
36-
if (prevHours === 23) {
37-
addDay();
36+
// Seconds
37+
const [seconds, setSeconds] = useState(0);
38+
function addSecond() {
39+
setSeconds((prevSeconds) => {
40+
if (prevSeconds === 59) {
41+
addMinute();
3842
return 0;
3943
}
40-
return prevHours + 1;
41-
});
42-
}
43-
44-
// Days
45-
const [days, setDays] = useState(0);
46-
function addDay() {
47-
setDays(prevDays => {
48-
return prevDays + 1;
44+
return prevSeconds + 1;
4945
});
5046
}
5147

5248
// Control functions
5349
const intervalRef = useRef();
5450

5551
function start() {
56-
if(!intervalRef.current) {
52+
if (!intervalRef.current) {
5753
intervalRef.current = setInterval(() => addSecond(), 1000);
5854
}
5955
}
6056

6157
function pause() {
62-
if(intervalRef.current) {
58+
if (intervalRef.current) {
6359
clearInterval(intervalRef.current);
6460
intervalRef.current = undefined;
6561
}
@@ -78,11 +74,13 @@ export default function useStopwatch(settings) {
7874

7975
// didMount effect
8076
useEffect(() => {
81-
if(autoStart) {
77+
if (autoStart) {
8278
start();
8379
}
8480
return reset;
85-
},[]);
81+
}, []);
8682

87-
return { seconds, minutes, hours, days, start, pause, reset };
88-
}
83+
return {
84+
seconds, minutes, hours, days, start, pause, reset,
85+
};
86+
}

0 commit comments

Comments
 (0)