import { useState, useEffect, ChangeEvent, FormEvent } from "react"; import { useNavigate } from "react-router-dom"; import toast from "react-hot-toast"; import BASE_URL from "../../app/config"; import StyledWrapper from "./styled"; import Input from "../../common/component/styled/Input"; import Button from "../../common/component/styled/Button"; import { useSendLoginMagicLinkMutation } from "../../app/services/auth"; import SentTip from "./SentTip"; import { useTranslation } from "react-i18next"; import SocialLoginButtons from "../login/SocialLoginButtons"; export default function SendMagicLinkPage() { const { t } = useTranslation("auth"); const [sent, setSent] = useState(false); const [sendMagicLink, { isSuccess, isLoading, error }] = useSendLoginMagicLinkMutation(); const navigateTo = useNavigate(); const [email, setEmail] = useState(""); useEffect(() => { if (isSuccess) { toast.success("Send Email Successfully!"); setSent(true); } }, [isSuccess]); useEffect(() => { if (error && "status" in error) { switch (error.status) { case "PARSING_ERROR": toast.error(error.data); break; case 401: toast.error("Username or Password Incorrect"); break; case 404: toast.error("Account not exist"); break; default: toast.error("Something Error"); break; } return; } }, [error]); const handlePwdPath = () => { navigateTo("/login"); }; const handleLogin = (evt: FormEvent) => { evt.preventDefault(); sendMagicLink(email); }; const handleInput = (evt: ChangeEvent) => { const { value } = evt.target; setEmail(value); }; const handleReset = () => { setEmail(""); setSent(false); }; return (
{sent ? ( ) : ( <>
logo

{t("login.title")}

{t("placeholder_email")}

)}
); }