From 3b3494cd616be42f326f505b0ab21335f6337e55 Mon Sep 17 00:00:00 2001 From: KJ Shanks Date: Tue, 23 Jan 2024 14:18:49 -0500 Subject: [PATCH] Update sign up recovery flow for new sign up --- packages/web/src/common/store/pages/signon/selectors.ts | 1 + packages/web/src/common/store/pages/signon/types.ts | 1 + .../pages/sign-up-page/utils/useDetermineAllowedRoutes.ts | 8 ++++++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/web/src/common/store/pages/signon/selectors.ts b/packages/web/src/common/store/pages/signon/selectors.ts index bff08060061..a02e528e648 100644 --- a/packages/web/src/common/store/pages/signon/selectors.ts +++ b/packages/web/src/common/store/pages/signon/selectors.ts @@ -42,6 +42,7 @@ export const getIsSocialConnected = (state: AppState) => !!state.signOn.tikTokId || !!state.signOn.instagramId export const getAccountReady = (state: AppState) => state.signOn.accountReady +export const getAccountAlreadyExisted = (state: AppState) => state.signOn.accountAlreadyExisted export const getStartedSignUpProcess = (state: AppState) => state.signOn.startedSignUpProcess export const getFinishedSignUpProcess = (state: AppState) => diff --git a/packages/web/src/common/store/pages/signon/types.ts b/packages/web/src/common/store/pages/signon/types.ts index 94abea635d0..f52fa9e90e7 100644 --- a/packages/web/src/common/store/pages/signon/types.ts +++ b/packages/web/src/common/store/pages/signon/types.ts @@ -52,6 +52,7 @@ export default interface SignOnPageState { verified: boolean useMetaMask: boolean accountReady: boolean + accountAlreadyExisted: boolean twitterId: string tikTokId: string instagramId: string diff --git a/packages/web/src/pages/sign-up-page/utils/useDetermineAllowedRoutes.ts b/packages/web/src/pages/sign-up-page/utils/useDetermineAllowedRoutes.ts index 9f898c01763..b96d5db39e2 100644 --- a/packages/web/src/pages/sign-up-page/utils/useDetermineAllowedRoutes.ts +++ b/packages/web/src/pages/sign-up-page/utils/useDetermineAllowedRoutes.ts @@ -2,7 +2,7 @@ import { accountSelectors } from '@audius/common' import { useSelector } from 'react-redux' import { useModalState } from 'common/hooks/useModalState' -import { getSignOn } from 'common/store/pages/signon/selectors' +import { getAccountAlreadyExisted, getSignOn } from 'common/store/pages/signon/selectors' import { EditingStatus } from 'common/store/pages/signon/types' import { SignUpPath } from 'utils/route' @@ -17,6 +17,7 @@ export const useDetermineAllowedRoute = () => { const [, setIsWelcomeModalOpen] = useModalState('Welcome') const signUpState = useSelector(getSignOn) const hasAccount = useSelector(getHasAccount) + const hasAlreadySignedUp = useSelector(getAccountAlreadyExisted) const pastAccountPhase = signUpState.finishedPhase1 || hasAccount @@ -79,7 +80,10 @@ export const useDetermineAllowedRoute = () => { const isAllowedRoute = allowedRoutes.includes(attemptedPath) // If requested route is allowed return that, otherwise return the last step in the route stack - const correctedPath = isAllowedRoute + const correctedPath = + attemptedPath === '/signup' && hasAlreadySignedUp + ? allowedRoutes[allowedRoutes.length - 1] + : isAllowedRoute ? attemptedPath : // IF we attempted to go to /signup directly, that means it was a link from somewhere else in the app, so we should start back at the beginning attemptedPath === '/signup'