Pass Billing Checkout var in url to bypass credit card (#9283)

This commit is contained in:
Félix Malfait
2024-12-31 14:48:00 +01:00
committed by GitHub
parent 45f14c8020
commit 97f5a5b8a5
123 changed files with 524 additions and 173 deletions

View File

@ -1,4 +1,4 @@
import { createState } from 'twenty-ui';
import { createState } from '@ui/utilities/state/utils/createState';
import { UserExists } from '~/generated/graphql';
export const availableSSOIdentityProvidersForAuthState = createState<

View File

@ -0,0 +1,39 @@
import { BillingCheckoutSession } from '@/auth/types/billingCheckoutSession.type';
import { createState } from '@ui/utilities/state/utils/createState';
import { syncEffect } from 'recoil-sync';
import { BillingPlanKey, SubscriptionInterval } from '~/generated/graphql';
export const billingCheckoutSessionState = createState<BillingCheckoutSession>({
key: 'billingCheckoutSessionState',
defaultValue: {
plan: BillingPlanKey.Pro,
interval: SubscriptionInterval.Month,
requirePaymentMethod: true,
skipPlanPage: false,
},
effects: [
syncEffect({
refine: (value: unknown) => {
if (
typeof value === 'object' &&
value !== null &&
'plan' in value &&
'interval' in value &&
'requirePaymentMethod' in value &&
'skipPlanPage' in value
) {
return {
type: 'success',
value: value as BillingCheckoutSession,
warnings: [],
} as const;
}
return {
type: 'failure',
message: 'Invalid BillingCheckoutSessionState',
path: [] as any,
} as const;
},
}),
],
});

View File

@ -1,4 +1,4 @@
import { createState } from 'twenty-ui';
import { createState } from '@ui/utilities/state/utils/createState';
import { User } from '~/generated/graphql';

View File

@ -1,4 +1,4 @@
import { createState } from 'twenty-ui';
import { createState } from '@ui/utilities/state/utils/createState';
import { WorkspaceMember } from '@/workspace-member/types/WorkspaceMember';

View File

@ -1,5 +1,5 @@
import { CurrentWorkspaceMember } from '@/auth/states/currentWorkspaceMemberState';
import { createState } from 'twenty-ui';
import { createState } from '@ui/utilities/state/utils/createState';
export const currentWorkspaceMembersState = createState<
CurrentWorkspaceMember[]

View File

@ -1,4 +1,4 @@
import { createState } from 'twenty-ui';
import { createState } from '@ui/utilities/state/utils/createState';
import { Workspace } from '~/generated/graphql';

View File

@ -1,4 +1,4 @@
import { createState } from 'twenty-ui';
import { createState } from '@ui/utilities/state/utils/createState';
export const isCurrentUserLoadedState = createState<boolean>({
key: 'isCurrentUserLoadedState',

View File

@ -1,4 +1,4 @@
import { createState } from 'twenty-ui';
import { createState } from '@ui/utilities/state/utils/createState';
export const isVerifyPendingState = createState<boolean>({
key: 'isVerifyPendingState',

View File

@ -1,4 +1,4 @@
import { createState } from 'twenty-ui';
import { createState } from '@ui/utilities/state/utils/createState';
export const previousUrlState = createState<string>({
key: 'previousUrlState',

View File

@ -1,5 +1,5 @@
import { createState } from 'twenty-ui';
import { SignInUpMode } from '@/auth/types/signInUpMode';
import { createState } from '@ui/utilities/state/utils/createState';
export const signInUpModeState = createState<SignInUpMode>({
key: 'signInUpModeState',

View File

@ -1,4 +1,4 @@
import { createState } from 'twenty-ui';
import { createState } from '@ui/utilities/state/utils/createState';
export enum SignInUpStep {
Init = 'init',

View File

@ -1,4 +1,4 @@
import { createState } from 'twenty-ui';
import { createState } from '@ui/utilities/state/utils/createState';
import { AuthTokenPair } from '~/generated/graphql';
import { cookieStorageEffect } from '~/utils/recoil-effects';

View File

@ -1,4 +1,4 @@
import { createState } from 'twenty-ui';
import { createState } from '@ui/utilities/state/utils/createState';
import { PublicWorkspaceDataOutput } from '~/generated/graphql';
export const workspacePublicDataState =

View File

@ -1,4 +1,4 @@
import { createState } from 'twenty-ui';
import { createState } from '@ui/utilities/state/utils/createState';
import { Workspace } from '~/generated/graphql';