import RetryLogin from "@/components/icons/RetryLogin"; import { changeNumToDefault } from "@/helper"; import { request } from "@/services/response"; import { Button } from "@mui/material"; const time_resend_code = 120; function Recode({ retryIcon, timer, setUuid, num, setTimer }) { const handleTimer = () => { setTimer("loading"); setTimeout(() => { setTimer(time_resend_code); let timePresent = time_resend_code; const timerInterval = setInterval(() => { timePresent--; setTimer(timePresent); !timePresent && clearInterval(timerInterval); }, 1000); }, 1000); }; const rotateIcon = () => { retryIcon.current.classList.add("retry-icon"); setTimeout(() => { retryIcon.current && retryIcon.current.classList.remove("retry-icon"); }, 1000); }; const handleReq = () => { rotateIcon(); const interval = setInterval(() => { rotateIcon(); }, 1200); request .sendCode(changeNumToDefault(num), "") .then((response) => { clearInterval(interval); if (response.uuid) { setUuid(response.uuid); handleTimer(); } }) .catch(() => clearInterval(interval)); }; return ( ); } export default Recode;