el.xwx.moe/pages/confirmation.tsx

65 lines
1.8 KiB
TypeScript
Raw Normal View History

2023-08-01 15:20:05 -05:00
import CenteredForm from "@/layouts/CenteredForm";
import { signIn } from "next-auth/react";
import { useRouter } from "next/router";
2024-05-26 10:30:49 -05:00
import { useState } from "react";
import toast from "react-hot-toast";
import { useTranslation } from "next-i18next";
import getServerSideProps from "@/lib/client/getServerSideProps";
2023-07-12 13:26:34 -05:00
2023-07-12 15:34:05 -05:00
export default function EmailConfirmaion() {
const router = useRouter();
const { t } = useTranslation();
const [submitLoader, setSubmitLoader] = useState(false);
const resend = async () => {
if (submitLoader) return;
else if (!router.query.email) return;
setSubmitLoader(true);
const load = toast.loading(t("authenticating"));
const res = await signIn("email", {
email: decodeURIComponent(router.query.email as string),
callbackUrl: "/",
redirect: false,
});
toast.dismiss(load);
setSubmitLoader(false);
toast.success(t("verification_email_sent"));
};
2023-07-12 13:26:34 -05:00
return (
2023-08-01 15:20:05 -05:00
<CenteredForm>
2023-11-26 04:17:08 -06:00
<div className="p-4 max-w-[30rem] min-w-80 w-full rounded-2xl shadow-md mx-auto border border-neutral-content bg-base-200">
<p className="text-center text-2xl sm:text-3xl font-extralight mb-2 ">
{t("check_your_email")}
2023-08-01 15:20:05 -05:00
</p>
<div className="divider my-3"></div>
2024-08-14 19:07:06 -05:00
{router.query.email && typeof router.query.email === "string" && (
<p className="text-center font-bold mb-3 break-all">
{decodeURIComponent(router.query.email)}
</p>
)}
<p>{t("verification_email_sent_desc")}</p>
<div className="mx-auto w-fit mt-3">
<div className="btn btn-ghost btn-sm" onClick={resend}>
{t("resend_email")}
</div>
</div>
2023-07-12 13:26:34 -05:00
</div>
2023-08-01 15:20:05 -05:00
</CenteredForm>
2023-07-12 13:26:34 -05:00
);
}
export { getServerSideProps };