From 24c7a4b354487948126e7bdcaf0b347b55b8c796 Mon Sep 17 00:00:00 2001 From: Bruce Tian Date: Wed, 8 May 2024 14:54:07 +0300 Subject: [PATCH 1/2] fix: fix the issue where a successful upgrade won't refresh the billing page --- .../components/OrgBilling/BillingForm.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/client/modules/userDashboard/components/OrgBilling/BillingForm.tsx b/packages/client/modules/userDashboard/components/OrgBilling/BillingForm.tsx index a70094f3c44..d916589c300 100644 --- a/packages/client/modules/userDashboard/components/OrgBilling/BillingForm.tsx +++ b/packages/client/modules/userDashboard/components/OrgBilling/BillingForm.tsx @@ -8,6 +8,7 @@ import { } from '@stripe/react-stripe-js' import {StripeElementChangeEvent} from '@stripe/stripe-js' import React, {useState} from 'react' +import {commitLocalUpdate} from 'react-relay' import {CreateStripeSubscriptionMutation$data} from '../../../../__generated__/CreateStripeSubscriptionMutation.graphql' import Ellipsis from '../../../../components/Ellipsis/Ellipsis' import PrimaryButton from '../../../../components/PrimaryButton' @@ -125,12 +126,20 @@ const BillingForm = (props: Props) => { setErrorMsg(newErrMsg) return } - const {error} = await stripe.confirmCardPayment(stripeSubscriptionClientSecret) + const {error, paymentIntent} = await stripe.confirmCardPayment(stripeSubscriptionClientSecret) if (error) { setErrorMsg(error.message) setIsLoading(false) return } + if (paymentIntent.status === 'succeeded') { + commitLocalUpdate(atmosphere, (store) => { + const organization = store.get(orgId) + if (!organization) return + organization.setValue('team', 'billingTier') + organization.setValue('team', 'tier') + }) + } onCompleted() } From 96c3c0517e3cc966380d9a6004ef6c898b36fb69 Mon Sep 17 00:00:00 2001 From: Bruce Tian Date: Wed, 8 May 2024 22:46:41 +0300 Subject: [PATCH 2/2] Move setting billingTier & tier to upgradeToTeamTierSuccessUpdater --- .../components/OrgBilling/BillingForm.tsx | 11 +---------- .../handlers/upgradeToTeamTierSuccessUpdater.ts | 2 ++ 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/packages/client/modules/userDashboard/components/OrgBilling/BillingForm.tsx b/packages/client/modules/userDashboard/components/OrgBilling/BillingForm.tsx index d916589c300..a70094f3c44 100644 --- a/packages/client/modules/userDashboard/components/OrgBilling/BillingForm.tsx +++ b/packages/client/modules/userDashboard/components/OrgBilling/BillingForm.tsx @@ -8,7 +8,6 @@ import { } from '@stripe/react-stripe-js' import {StripeElementChangeEvent} from '@stripe/stripe-js' import React, {useState} from 'react' -import {commitLocalUpdate} from 'react-relay' import {CreateStripeSubscriptionMutation$data} from '../../../../__generated__/CreateStripeSubscriptionMutation.graphql' import Ellipsis from '../../../../components/Ellipsis/Ellipsis' import PrimaryButton from '../../../../components/PrimaryButton' @@ -126,20 +125,12 @@ const BillingForm = (props: Props) => { setErrorMsg(newErrMsg) return } - const {error, paymentIntent} = await stripe.confirmCardPayment(stripeSubscriptionClientSecret) + const {error} = await stripe.confirmCardPayment(stripeSubscriptionClientSecret) if (error) { setErrorMsg(error.message) setIsLoading(false) return } - if (paymentIntent.status === 'succeeded') { - commitLocalUpdate(atmosphere, (store) => { - const organization = store.get(orgId) - if (!organization) return - organization.setValue('team', 'billingTier') - organization.setValue('team', 'tier') - }) - } onCompleted() } diff --git a/packages/client/mutations/handlers/upgradeToTeamTierSuccessUpdater.ts b/packages/client/mutations/handlers/upgradeToTeamTierSuccessUpdater.ts index 8824f06e4eb..f47a9bbb626 100644 --- a/packages/client/mutations/handlers/upgradeToTeamTierSuccessUpdater.ts +++ b/packages/client/mutations/handlers/upgradeToTeamTierSuccessUpdater.ts @@ -5,6 +5,8 @@ const upgradeToTeamTierSuccessUpdater = (payload: RecordProxy) => { if (organization) { organization.setValue(true, 'showConfetti') organization.setValue(true, 'showDrawer') + organization.setValue('team', 'billingTier') + organization.setValue('team', 'tier') } } export default upgradeToTeamTierSuccessUpdater