diff --git a/src/components/BackwordCounter.js b/src/components/BackwordCounter.js index b6c4360..430c16c 100644 --- a/src/components/BackwordCounter.js +++ b/src/components/BackwordCounter.js @@ -1,17 +1,10 @@ import { useState, useEffect } from 'react'; import Card from './UI/Card/Card'; +import useCounter from '../hooks/useCounter'; const BackwardCounter = () => { - const [counter, setCounter] = useState(0); - - useEffect(() => { - const interval = setInterval(() => { - setCounter((prevCounter) => prevCounter - 1); - }, 1000); - - return () => clearInterval(interval); - }, []); + const counter = useCounter(false); return {counter}; }; diff --git a/src/components/ForwardCounter.js b/src/components/ForwardCounter.js index c6fdae1..1a5e97b 100644 --- a/src/components/ForwardCounter.js +++ b/src/components/ForwardCounter.js @@ -1,17 +1,12 @@ import { useState, useEffect } from 'react'; import Card from './UI/Card/Card'; +import useCounter from '../hooks/useCounter'; const ForwardCounter = () => { - const [counter, setCounter] = useState(0); - useEffect(() => { - const interval = setInterval(() => { - setCounter((prevCounter) => prevCounter + 1); - }, 1000); - - return () => clearInterval(interval); - }, []); + const counter = useCounter(true); + console.log('counter', counter) return {counter}; }; diff --git a/src/hooks/useCounter.js b/src/hooks/useCounter.js new file mode 100644 index 0000000..6259d11 --- /dev/null +++ b/src/hooks/useCounter.js @@ -0,0 +1,19 @@ +import React, { useEffect, useState } from 'react'; + +const useCounter = (isForward) => { + + const [counter, setCounter] = useState(0); + + useEffect(() => { + const interval = setInterval(() => { + setCounter((prevCounter) => prevCounter + 1(isForward ? 1 : -1)); + }, 1000); + + return () => clearInterval(interval); + }, []); + + return counter; + +}; + +export default useCounter; \ No newline at end of file