Lock the e-mail on input if the code has an e-mail associated

This commit is contained in:
Tiago Ribeiro
2023-12-31 15:22:42 +00:00
parent d4b90b5fa4
commit 1c2c3fe402
4 changed files with 51 additions and 5 deletions

View File

@@ -1,6 +1,6 @@
/* eslint-disable @next/next/no-img-element */
import {ToastContainer} from "react-toastify";
import {useState} from "react";
import {useEffect, useState} from "react";
import Head from "next/head";
import useUser from "@/hooks/useUser";
import Link from "next/link";
@@ -11,6 +11,7 @@ import RegisterCorporate from "./(register)/RegisterCorporate";
import EmailVerification from "./(auth)/EmailVerification";
import {sendEmailVerification} from "@/utils/email";
import useUsers from "@/hooks/useUsers";
import axios from "axios";
export const getServerSideProps = (context: any) => {
const {code} = context.query;
@@ -21,8 +22,17 @@ export const getServerSideProps = (context: any) => {
};
export default function Register({code: queryCode}: {code: string}) {
const [defaultEmail, setDefaultEmail] = useState<string>();
const [isLoading, setIsLoading] = useState(false);
useEffect(() => {
if (queryCode) {
(async () => {
axios.get<{email?: string}>(`/api/code/${queryCode}`).then((result) => setDefaultEmail(result.data.email));
})();
}
}, [queryCode]);
const {user, mutateUser} = useUser({
redirectTo: "/",
redirectIfFound: true,
@@ -79,11 +89,13 @@ export default function Register({code: queryCode}: {code: string}) {
<Tab.Panels>
<Tab.Panel>
<RegisterIndividual
key={defaultEmail || "individual"}
isLoading={isLoading}
setIsLoading={setIsLoading}
mutateUser={mutateUser}
sendEmailVerification={sendEmailVerification}
queryCode={queryCode}
defaultEmail={defaultEmail}
/>
</Tab.Panel>
<Tab.Panel>