forked from github/plane
a66b2fd73d
* feat: resend login code on signing page after 30 seconds * feat: handling error on code send * refractor: isResendDisabled varible for resend button * dev: timer count-down hook * refractor: using new timer hook in sign in page
20 lines
395 B
TypeScript
20 lines
395 B
TypeScript
import { useState, useEffect } from "react";
|
|
|
|
const TIMER = 30;
|
|
|
|
const useTimer = (initialValue: number = TIMER) => {
|
|
const [timer, setTimer] = useState(initialValue);
|
|
|
|
useEffect(() => {
|
|
const interval = setInterval(() => {
|
|
setTimer((prev) => prev - 1);
|
|
}, 1000);
|
|
|
|
return () => clearInterval(interval);
|
|
}, []);
|
|
|
|
return { timer, setTimer };
|
|
};
|
|
|
|
export default useTimer;
|