Onboarding - add nextPath logic after email verification (#12342)
Context : Plan choice [on pricing page on website](https://twenty.com/pricing) should redirect you the right plan on app /plan-required page (after sign in), thanks to query parameters and BillingCheckoutSessionState sync. With email verification, an other session starts at CTA click in verification email. Initial BillingCheckoutSessionState is lost and user can't submit to the plan he choose. Solution : Pass a nextPath query parameter in email verification link To test : - Modify .env to add IS_BILLING_ENABLED (+ reset db + sync billing) + IS_EMAIL_VERIFICATION_REQUIRED - Start test from this page http://app.localhost:3001/welcome?billingCheckoutSession={%22plan%22:%22ENTERPRISE%22,%22interval%22:%22Year%22,%22requirePaymentMethod%22:true} - After verification, check you arrive on /plan-required page with Enterprise plan on a yearly interval (default is Pro/monthly). closes https://github.com/twentyhq/twenty/issues/12288
This commit is contained in:
@ -1177,6 +1177,7 @@ export type MutationSignUpArgs = {
|
||||
email: Scalars['String'];
|
||||
locale?: InputMaybe<Scalars['String']>;
|
||||
password: Scalars['String'];
|
||||
verifyEmailNextPath?: InputMaybe<Scalars['String']>;
|
||||
workspaceId?: InputMaybe<Scalars['String']>;
|
||||
workspaceInviteHash?: InputMaybe<Scalars['String']>;
|
||||
workspacePersonalInviteToken?: InputMaybe<Scalars['String']>;
|
||||
@ -2672,6 +2673,7 @@ export type SignUpMutationVariables = Exact<{
|
||||
captchaToken?: InputMaybe<Scalars['String']>;
|
||||
workspaceId?: InputMaybe<Scalars['String']>;
|
||||
locale?: InputMaybe<Scalars['String']>;
|
||||
verifyEmailNextPath?: InputMaybe<Scalars['String']>;
|
||||
}>;
|
||||
|
||||
|
||||
@ -4057,7 +4059,7 @@ export type ResendEmailVerificationTokenMutationHookResult = ReturnType<typeof u
|
||||
export type ResendEmailVerificationTokenMutationResult = Apollo.MutationResult<ResendEmailVerificationTokenMutation>;
|
||||
export type ResendEmailVerificationTokenMutationOptions = Apollo.BaseMutationOptions<ResendEmailVerificationTokenMutation, ResendEmailVerificationTokenMutationVariables>;
|
||||
export const SignUpDocument = gql`
|
||||
mutation SignUp($email: String!, $password: String!, $workspaceInviteHash: String, $workspacePersonalInviteToken: String = null, $captchaToken: String, $workspaceId: String, $locale: String) {
|
||||
mutation SignUp($email: String!, $password: String!, $workspaceInviteHash: String, $workspacePersonalInviteToken: String = null, $captchaToken: String, $workspaceId: String, $locale: String, $verifyEmailNextPath: String) {
|
||||
signUp(
|
||||
email: $email
|
||||
password: $password
|
||||
@ -4066,6 +4068,7 @@ export const SignUpDocument = gql`
|
||||
captchaToken: $captchaToken
|
||||
workspaceId: $workspaceId
|
||||
locale: $locale
|
||||
verifyEmailNextPath: $verifyEmailNextPath
|
||||
) {
|
||||
loginToken {
|
||||
...AuthTokenFragment
|
||||
@ -4102,6 +4105,7 @@ export type SignUpMutationFn = Apollo.MutationFunction<SignUpMutation, SignUpMut
|
||||
* captchaToken: // value for 'captchaToken'
|
||||
* workspaceId: // value for 'workspaceId'
|
||||
* locale: // value for 'locale'
|
||||
* verifyEmailNextPath: // value for 'verifyEmailNextPath'
|
||||
* },
|
||||
* });
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user