@@ -3,14 +3,17 @@ import { useState, useEffect, useRef } from 'react';
33export default function useStopwatch ( settings ) {
44 const { autoStart } = settings || { } ;
55
6+ const [ seconds , setSeconds ] = useState ( 0 ) ;
7+ const [ minutes , setMinutes ] = useState ( 0 ) ;
8+ const [ hours , setHours ] = useState ( 0 ) ;
9+ const intervalRef = useRef ( ) ;
10+
611 // Days
712 const [ days , setDays ] = useState ( 0 ) ;
813 function addDay ( ) {
914 setDays ( ( prevDays ) => ( prevDays + 1 ) ) ;
1015 }
1116
12- // Hours
13- const [ hours , setHours ] = useState ( 0 ) ;
1417 function addHour ( ) {
1518 setHours ( ( prevHours ) => {
1619 if ( prevHours === 23 ) {
@@ -21,8 +24,6 @@ export default function useStopwatch(settings) {
2124 } ) ;
2225 }
2326
24- // Minutes
25- const [ minutes , setMinutes ] = useState ( 0 ) ;
2627 function addMinute ( ) {
2728 setMinutes ( ( prevMinutes ) => {
2829 if ( prevMinutes === 59 ) {
@@ -33,8 +34,6 @@ export default function useStopwatch(settings) {
3334 } ) ;
3435 }
3536
36- // Seconds
37- const [ seconds , setSeconds ] = useState ( 0 ) ;
3837 function addSecond ( ) {
3938 setSeconds ( ( prevSeconds ) => {
4039 if ( prevSeconds === 59 ) {
@@ -45,9 +44,6 @@ export default function useStopwatch(settings) {
4544 } ) ;
4645 }
4746
48- // Control functions
49- const intervalRef = useRef ( ) ;
50-
5147 function start ( ) {
5248 if ( ! intervalRef . current ) {
5349 intervalRef . current = setInterval ( ( ) => addSecond ( ) , 1000 ) ;
0 commit comments