diff --git a/frontend/src/component/admin/billing/BillingDashboard/BillingPlan/BillingPlan.tsx b/frontend/src/component/admin/billing/BillingDashboard/BillingPlan/BillingPlan.tsx index e32726c9127..6574b865a45 100644 --- a/frontend/src/component/admin/billing/BillingDashboard/BillingPlan/BillingPlan.tsx +++ b/frontend/src/component/admin/billing/BillingDashboard/BillingPlan/BillingPlan.tsx @@ -9,12 +9,12 @@ import { InstanceState, InstancePlan, } from 'interfaces/instance'; +import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig'; import { trialHasExpired, isTrialInstance } from 'utils/instanceTrial'; import { GridRow } from 'component/common/GridRow/GridRow'; import { GridCol } from 'component/common/GridCol/GridCol'; -import { GridColLink } from './GridColLink/GridColLink'; -import { STRIPE } from 'component/admin/billing/flags'; import { Badge } from 'component/common/Badge/Badge'; +import { GridColLink } from './GridColLink/GridColLink'; const StyledPlanBox = styled('aside')(({ theme }) => ({ padding: theme.spacing(2.5), @@ -74,6 +74,7 @@ interface IBillingPlanProps { export const BillingPlan: FC = ({ instanceStatus }) => { const { users } = useUsers(); const expired = trialHasExpired(instanceStatus); + const { uiConfig } = useUiConfig(); const price = { [InstancePlan.PRO]: 80, @@ -147,9 +148,10 @@ export const BillingPlan: FC = ({ instanceStatus }) => { diff --git a/frontend/src/component/admin/billing/flags.ts b/frontend/src/component/admin/billing/flags.ts deleted file mode 100644 index 3ae06e3aea2..00000000000 --- a/frontend/src/component/admin/billing/flags.ts +++ /dev/null @@ -1 +0,0 @@ -export const STRIPE = false; diff --git a/frontend/src/hooks/useUsersPlan.ts b/frontend/src/hooks/useUsersPlan.ts index b571155dbcc..b4053b3920e 100644 --- a/frontend/src/hooks/useUsersPlan.ts +++ b/frontend/src/hooks/useUsersPlan.ts @@ -1,8 +1,8 @@ import { IUser } from 'interfaces/user'; import { useMemo } from 'react'; import { useInstanceStatus } from './api/getters/useInstanceStatus/useInstanceStatus'; -import { STRIPE } from 'component/admin/billing/flags'; import { InstancePlan } from 'interfaces/instance'; +import useUiConfig from './api/getters/useUiConfig/useUiConfig'; export interface IUsersPlanOutput { planUsers: IUser[]; @@ -11,8 +11,12 @@ export interface IUsersPlanOutput { export const useUsersPlan = (users: IUser[]): IUsersPlanOutput => { const { instanceStatus } = useInstanceStatus(); + const { uiConfig } = useUiConfig(); - const isBillingUsers = STRIPE && instanceStatus?.plan === InstancePlan.PRO; + const isBillingUsers = Boolean( + uiConfig?.flags?.proPlanAutoCharge && + instanceStatus?.plan === InstancePlan.PRO + ); const seats = instanceStatus?.seats ?? 5; const planUsers = useMemo( diff --git a/frontend/src/interfaces/uiConfig.ts b/frontend/src/interfaces/uiConfig.ts index 36eeaf502b6..fb3123f852b 100644 --- a/frontend/src/interfaces/uiConfig.ts +++ b/frontend/src/interfaces/uiConfig.ts @@ -47,6 +47,7 @@ export interface IFlags { caseInsensitiveInOperators?: boolean; crOnVariants?: boolean; showProjectApiAccess?: boolean; + proPlanAutoCharge?: boolean; } export interface IVersionInfo { diff --git a/src/lib/__snapshots__/create-config.test.ts.snap b/src/lib/__snapshots__/create-config.test.ts.snap index 6e475ab8619..1e9e7e484b1 100644 --- a/src/lib/__snapshots__/create-config.test.ts.snap +++ b/src/lib/__snapshots__/create-config.test.ts.snap @@ -79,6 +79,7 @@ exports[`should create default config 1`] = ` "messageBanner": false, "newProjectOverview": false, "notifications": false, + "proPlanAutoCharge": false, "projectStatusApi": false, "proxyReturnAllToggles": false, "responseTimeWithAppNameKillSwitch": false, @@ -100,6 +101,7 @@ exports[`should create default config 1`] = ` "messageBanner": false, "newProjectOverview": false, "notifications": false, + "proPlanAutoCharge": false, "projectStatusApi": false, "proxyReturnAllToggles": false, "responseTimeWithAppNameKillSwitch": false, diff --git a/src/lib/types/experimental.ts b/src/lib/types/experimental.ts index e23509e0a66..c16b28931df 100644 --- a/src/lib/types/experimental.ts +++ b/src/lib/types/experimental.ts @@ -62,6 +62,10 @@ const flags = { process.env.UNLEASH_STRICT_SCHEMA_VALIDTION, false, ), + proPlanAutoCharge: parseEnvVarBoolean( + process.env.UNLEASH_PRO_PLAN_AUTO_CHARGE, + false, + ), notifications: parseEnvVarBoolean(process.env.NOTIFICATIONS, false), };