Compare commits

...

2 Commits

Author SHA1 Message Date
Hailey 9267033cba change version 2024-08-28 12:05:45 -07:00
Hailey 61fbbfc954 Ensure captcha verification code gets submitted in signup request (#5010)
Co-authored-by: Eric Bailey <git@esb.lol>
(cherry picked from commit 16d556c3c9)
2024-08-28 11:58:02 -07:00
4 changed files with 10 additions and 14 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "bsky.app",
"version": "1.90.0",
"version": "1.90.1",
"private": true,
"engines": {
"node": ">=18"
+1 -2
View File
@@ -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],
+4 -2
View File
@@ -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'})
+4 -9
View File
@@ -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