about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/screens/Signup/StepCaptcha/index.tsx3
-rw-r--r--src/screens/Signup/StepHandle.tsx6
-rw-r--r--src/screens/Signup/state.ts13
3 files changed, 9 insertions, 13 deletions
diff --git a/src/screens/Signup/StepCaptcha/index.tsx b/src/screens/Signup/StepCaptcha/index.tsx
index e233d31dd..9050ca061 100644
--- a/src/screens/Signup/StepCaptcha/index.tsx
+++ b/src/screens/Signup/StepCaptcha/index.tsx
@@ -41,10 +41,9 @@ export function StepCaptcha() {
     (code: string) => {
       setCompleted(true)
       logEvent('signup:captchaSuccess', {})
-      const submitTask = {code, mutableProcessed: false}
       dispatch({
         type: 'submit',
-        task: submitTask,
+        task: {verificationCode: code, mutableProcessed: false},
       })
     },
     [dispatch],
diff --git a/src/screens/Signup/StepHandle.tsx b/src/screens/Signup/StepHandle.tsx
index 4e63efd2e..0ff0506f4 100644
--- a/src/screens/Signup/StepHandle.tsx
+++ b/src/screens/Signup/StepHandle.tsx
@@ -65,8 +65,10 @@ export function StepHandle() {
     })
     // phoneVerificationRequired is actually whether a captcha is required
     if (!state.serviceDescription?.phoneVerificationRequired) {
-      const submitTask = {code: undefined, mutableProcessed: false}
-      dispatch({type: 'submit', task: submitTask})
+      dispatch({
+        type: 'submit',
+        task: {verificationCode: undefined, mutableProcessed: false},
+      })
       return
     }
     dispatch({type: 'next'})
diff --git a/src/screens/Signup/state.ts b/src/screens/Signup/state.ts
index 0ee266564..4addf3580 100644
--- a/src/screens/Signup/state.ts
+++ b/src/screens/Signup/state.ts
@@ -27,7 +27,7 @@ export enum SignupStep {
 }
 
 type SubmitTask = {
-  code: string | undefined
+  verificationCode: string | undefined
   mutableProcessed: boolean // OK to mutate assuming it's never read in render.
 }
 
@@ -62,7 +62,6 @@ export type SignupAction =
   | {type: 'setDateOfBirth'; value: Date}
   | {type: 'setInviteCode'; value: string}
   | {type: 'setHandle'; value: string}
-  | {type: 'setVerificationCode'; value: string}
   | {type: 'setError'; value: string}
   | {type: 'setIsLoading'; value: boolean}
   | {type: 'submit'; task: SubmitTask}
@@ -189,11 +188,7 @@ export function useSubmitSignup() {
   const onboardingDispatch = useOnboardingDispatch()
 
   return useCallback(
-    async (
-      state: SignupState,
-      dispatch: (action: SignupAction) => void,
-      verificationCode?: string,
-    ) => {
+    async (state: SignupState, dispatch: (action: SignupAction) => void) => {
       if (!state.email) {
         dispatch({type: 'setStep', value: SignupStep.INFO})
         return dispatch({
@@ -224,7 +219,7 @@ export function useSubmitSignup() {
       }
       if (
         state.serviceDescription?.phoneVerificationRequired &&
-        !verificationCode
+        !state.pendingSubmit?.verificationCode
       ) {
         dispatch({type: 'setStep', value: SignupStep.CAPTCHA})
         logger.error('Signup Flow Error', {
@@ -247,7 +242,7 @@ export function useSubmitSignup() {
           password: state.password,
           birthDate: state.dateOfBirth,
           inviteCode: state.inviteCode.trim(),
-          verificationCode: verificationCode,
+          verificationCode: state.pendingSubmit?.verificationCode,
         })
         /*
          * Must happen last so that if the user has multiple tabs open and