diff --git a/apps/app/components/account/email-code-form.tsx b/apps/app/components/account/email-code-form.tsx index dc1fc725e..9132ee994 100644 --- a/apps/app/components/account/email-code-form.tsx +++ b/apps/app/components/account/email-code-form.tsx @@ -21,6 +21,7 @@ export const EmailCodeForm = ({ onSuccess }: any) => { const [codeResent, setCodeResent] = useState(false); const [isCodeResending, setIsCodeResending] = useState(false); const [errorResendingCode, setErrorResendingCode] = useState(false); + const [isLoading, setIsLoading] = useState(false); const { setToastAlert } = useToast(); const { timer: resendCodeTimer, setTimer: setResendCodeTimer } = useTimer(); @@ -64,26 +65,19 @@ export const EmailCodeForm = ({ onSuccess }: any) => { }; const handleSignin = async (formData: EmailCodeFormValues) => { - await authenticationService - .magicSignIn(formData) - .then(() => { - setToastAlert({ - title: "Success", - type: "success", - message: "Successfully logged in!", - }); - }) - .catch((error) => { - setToastAlert({ - title: "Oops!", - type: "error", - message: error?.response?.data?.error ?? "Enter the correct code to sign in", - }); - setError("token" as keyof EmailCodeFormValues, { - type: "manual", - message: error.error, - }); + setIsLoading(true); + await authenticationService.magicSignIn(formData).catch((error) => { + setIsLoading(false); + setToastAlert({ + title: "Oops!", + type: "error", + message: error?.response?.data?.error ?? "Enter the correct code to sign in", }); + setError("token" as keyof EmailCodeFormValues, { + type: "manual", + message: error.error, + }); + }); }; const emailOld = getValues("email"); @@ -200,9 +194,9 @@ export const EmailCodeForm = ({ onSuccess }: any) => { size="md" onClick={handleSubmit(handleSignin)} disabled={!isValid && isDirty} - loading={isSubmitting} + loading={isLoading} > - {isSubmitting ? "Signing in..." : "Sign in"} + {isLoading ? "Signing in..." : "Sign in"} ) : ( = ({ position={position} disabled={isNotAllowed} selfPositioned={selfPositioned} - dropdownWidth="w-full min-w-[8rem]" + dropdownWidth="w-full min-w-[12rem]" /> ); }; diff --git a/apps/app/pages/onboarding.tsx b/apps/app/pages/onboarding.tsx index 285071b1a..c84adeae7 100644 --- a/apps/app/pages/onboarding.tsx +++ b/apps/app/pages/onboarding.tsx @@ -22,7 +22,7 @@ import { Workspace, } from "components/onboarding"; // ui -import { PrimaryButton } from "components/ui"; +import { PrimaryButton, Spinner } from "components/ui"; // constant import { ONBOARDING_CARDS } from "constants/workspace"; // types @@ -34,6 +34,7 @@ import { CURRENT_USER } from "constants/fetch-keys"; const Onboarding: NextPage = () => { const [step, setStep] = useState(1); const [userRole, setUserRole] = useState(null); + const [isLoading, setIsLoading] = useState(false); const [workspace, setWorkspace] = useState(); @@ -44,107 +45,116 @@ const Onboarding: NextPage = () => { return ( -
- {step <= 3 ? ( -
-
- -
- {step === 1 ? ( - - ) : step === 2 ? ( - - ) : ( - - )} -
- ) : ( -
-
- {step === 4 ? ( - - ) : step === 5 ? ( - - ) : step === 6 ? ( - - ) : step === 7 ? ( - + {isLoading ? ( +
+ +
+ ) : ( +
+ {step <= 3 ? ( +
+
+ +
+ {step === 1 ? ( + + ) : step === 2 ? ( + ) : ( - + )} -
- { - if (step === 8) { - userService - .updateUserOnBoard({ userRole }, user) - .then(async () => { - mutate( - CURRENT_USER, - (prevData) => { - if (!prevData) return prevData; +
+ ) : ( +
+
+ {step === 4 ? ( + + ) : step === 5 ? ( + + ) : step === 6 ? ( + + ) : step === 7 ? ( + + ) : ( + + )} +
+ { + if (step === 8) { + setIsLoading(true); + userService + .updateUserOnBoard({ userRole }, user) + .then(async () => { + mutate( + CURRENT_USER, + (prevData) => { + if (!prevData) return prevData; - return { - ...prevData, - user: { - ...prevData.user, - is_onboarded: true, - }, - }; - }, - false - ); - const userWorkspaces = await workspaceService.userWorkspaces(); + return { + ...prevData, + user: { + ...prevData.user, + is_onboarded: true, + }, + }; + }, + false + ); + const userWorkspaces = await workspaceService.userWorkspaces(); - const lastActiveWorkspace = - userWorkspaces.find( - (workspace) => workspace.id === user?.last_workspace_id - ) ?? userWorkspaces[0]; + const lastActiveWorkspace = + userWorkspaces.find( + (workspace) => workspace.id === user?.last_workspace_id + ) ?? userWorkspaces[0]; - if (lastActiveWorkspace) { - userService - .updateUser({ - last_workspace_id: lastActiveWorkspace.id, - }) - .then((res) => { - mutateUser(); - }) - .catch((err) => { - console.log(err); - }); - Router.push(`/${lastActiveWorkspace.slug}`); - return; - } else { - const invitations = await workspaceService.userWorkspaceInvitations(); - if (invitations.length > 0) { - Router.push(`/invitations`); + if (lastActiveWorkspace) { + userService + .updateUser({ + last_workspace_id: lastActiveWorkspace.id, + }) + .then((res) => { + mutateUser(); + }) + .catch((err) => { + console.log(err); + }); + Router.push(`/${lastActiveWorkspace.slug}`); return; } else { - Router.push(`/create-workspace`); - return; + const invitations = + await workspaceService.userWorkspaceInvitations(); + if (invitations.length > 0) { + Router.push(`/invitations`); + return; + } else { + Router.push(`/create-workspace`); + return; + } } - } - }) - .catch((err) => { - console.log(err); - }); - } else setStep((prevData) => prevData + 1); - }} - > - {step === 4 || step === 8 ? "Get Started" : "Next"} - + }) + .catch((err) => { + setIsLoading(false); + console.log(err); + }); + } else setStep((prevData) => prevData + 1); + }} + > + {step === 4 || step === 8 ? "Get Started" : "Next"} + +
+ )} +
+ Logged in: + {user?.email}
- )} -
- Logged in: - {user?.email}
-
+ )} );