diff --git a/packages/twenty-front/src/modules/auth/hooks/useAuth.ts b/packages/twenty-front/src/modules/auth/hooks/useAuth.ts index 9ad2e80b1..1bfae46b9 100644 --- a/packages/twenty-front/src/modules/auth/hooks/useAuth.ts +++ b/packages/twenty-front/src/modules/auth/hooks/useAuth.ts @@ -464,19 +464,27 @@ export const useAuth = () => { const handleCredentialsSignUp = useCallback( async (email: string, password: string, captchaToken?: string) => { - return signUp({ + const signUpResult = await signUp({ variables: { email, password, captchaToken }, - onCompleted: async (data) => { - handleSetAuthTokens(data.signUp.tokens); - const { user } = await loadCurrentUser(); - - if (countAvailableWorkspaces(user.availableWorkspaces) === 0) { - return createWorkspace(); - } - - setSignInUpStep(SignInUpStep.WorkspaceSelection); - }, }); + + if (isDefined(signUpResult.errors)) { + throw signUpResult.errors; + } + + if (!signUpResult.data?.signUp) { + throw new Error('No signUp result'); + } + + handleSetAuthTokens(signUpResult.data.signUp.tokens); + + const { user } = await loadCurrentUser(); + + if (countAvailableWorkspaces(user.availableWorkspaces) === 0) { + return await createWorkspace({ newTab: false }); + } + + setSignInUpStep(SignInUpStep.WorkspaceSelection); }, [ handleSetAuthTokens, diff --git a/packages/twenty-front/src/modules/auth/sign-in-up/hooks/useSignUpInNewWorkspace.ts b/packages/twenty-front/src/modules/auth/sign-in-up/hooks/useSignUpInNewWorkspace.ts index 4203df8a2..c41af9fce 100644 --- a/packages/twenty-front/src/modules/auth/sign-in-up/hooks/useSignUpInNewWorkspace.ts +++ b/packages/twenty-front/src/modules/auth/sign-in-up/hooks/useSignUpInNewWorkspace.ts @@ -11,7 +11,7 @@ export const useSignUpInNewWorkspace = () => { const [signUpInNewWorkspaceMutation] = useSignUpInNewWorkspaceMutation(); - const createWorkspace = () => { + const createWorkspace = ({ newTab } = { newTab: true }) => { signUpInNewWorkspaceMutation({ onCompleted: async (data) => { return await redirectToWorkspaceDomain( @@ -20,7 +20,7 @@ export const useSignUpInNewWorkspace = () => { { loginToken: data.signUpInNewWorkspace.loginToken.token, }, - '_blank', + newTab ? '_blank' : '_self', ); }, onError: (error: Error) => { diff --git a/packages/twenty-front/src/modules/captcha/hooks/useRequestFreshCaptchaToken.ts b/packages/twenty-front/src/modules/captcha/hooks/useRequestFreshCaptchaToken.ts index 6b5537aa7..6b41e61c6 100644 --- a/packages/twenty-front/src/modules/captcha/hooks/useRequestFreshCaptchaToken.ts +++ b/packages/twenty-front/src/modules/captcha/hooks/useRequestFreshCaptchaToken.ts @@ -4,7 +4,6 @@ import { captchaTokenState } from '@/captcha/states/captchaTokenState'; import { isRequestingCaptchaTokenState } from '@/captcha/states/isRequestingCaptchaTokenState'; import { isCaptchaRequiredForPath } from '@/captcha/utils/isCaptchaRequiredForPath'; import { captchaState } from '@/client-config/states/captchaState'; -import { useLocation } from 'react-router-dom'; import { CaptchaDriverType } from '~/generated-metadata/graphql'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; @@ -21,12 +20,10 @@ export const useRequestFreshCaptchaToken = () => { isRequestingCaptchaTokenState, ); - const location = useLocation(); - const requestFreshCaptchaToken = useRecoilCallback( ({ snapshot }) => async () => { - if (!isCaptchaRequiredForPath(location.pathname)) { + if (!isCaptchaRequiredForPath(window.location.pathname)) { return; } @@ -47,12 +44,6 @@ export const useRequestFreshCaptchaToken = () => { action: 'submit', }) .then((token: string) => { - // TODO remove this log once debugged - // eslint-disable-next-line no-console - console.log( - 'Google Recaptcha token generated at', - new Date().toISOString(), - ); setCaptchaToken(token); setIsRequestingCaptchaToken(false); }); @@ -69,7 +60,7 @@ export const useRequestFreshCaptchaToken = () => { }); } }, - [location.pathname, setCaptchaToken, setIsRequestingCaptchaToken], + [setCaptchaToken, setIsRequestingCaptchaToken], ); return { requestFreshCaptchaToken };