Skip to content

Commit 96caf94

Browse files
incorporate pr comments
1 parent 0d33704 commit 96caf94

File tree

5 files changed

+41
-44
lines changed

5 files changed

+41
-44
lines changed

src/pages/PlanPage/subRoutes/CurrentOrgPlan/BillingDetails/PaymentCard/BankInformation.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
import { z } from 'zod'
22

33
import bankLogo from 'assets/billing/bank.svg'
4-
import { SubscriptionDetailSchema } from 'services/account'
4+
import { USBankAccountSchema } from 'services/account'
55

66
interface BankInformationProps {
7-
subscriptionDetail: z.infer<typeof SubscriptionDetailSchema>
7+
usBankAccount: z.infer<typeof USBankAccountSchema>
88
}
9-
function BankInformation({ subscriptionDetail }: BankInformationProps) {
9+
10+
function BankInformation({ usBankAccount }: BankInformationProps) {
1011
return (
1112
<div className="flex flex-col gap-2">
1213
<div className="flex gap-1">
1314
<img src={bankLogo} alt="bank logo" />
1415
<div className="ml-1 flex flex-col self-center">
1516
<b>
16-
{subscriptionDetail?.defaultPaymentMethod?.usBankAccount?.bankName}
17+
{usBankAccount?.bankName}
1718
&nbsp;••••&nbsp;
18-
{subscriptionDetail?.defaultPaymentMethod?.usBankAccount?.last4}
19+
{usBankAccount?.last4}
1920
</b>
2021
</div>
2122
</div>

src/pages/PlanPage/subRoutes/CurrentOrgPlan/BillingDetails/PaymentCard/PaymentCard.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ function PaymentCard({ subscriptionDetail, provider, owner }) {
3838
) : card ? (
3939
<CardInformation card={card} subscriptionDetail={subscriptionDetail} />
4040
) : usBankAccount ? (
41-
<BankInformation subscriptionDetail={subscriptionDetail} />
41+
<BankInformation usBankAccount={usBankAccount} />
4242
) : (
4343
<div className="flex flex-col gap-4 text-ds-gray-quinary">
4444
<p className="mt-4">

src/pages/PlanPage/subRoutes/CurrentOrgPlan/BillingDetails/PaymentCard/PaymentMethodForm.tsx

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ import { StripePaymentElement } from '@stripe/stripe-js'
33
import cs from 'classnames'
44
import { z } from 'zod'
55

6-
import { stripeAddress, SubscriptionDetailSchema } from 'services/account'
6+
import {
7+
BillingDetailsSchema,
8+
SubscriptionDetailSchema,
9+
} from 'services/account'
710
import { useUpdatePaymentMethod } from 'services/account/useUpdatePaymentMethod'
811
import { Provider } from 'shared/api/helpers'
912
import Button from 'ui/Button'
@@ -23,6 +26,9 @@ const PaymentMethodForm = ({
2326
}: PaymentMethodFormProps) => {
2427
const elements = useElements()
2528

29+
const billingDetails =
30+
subscriptionDetail?.defaultPaymentMethod?.billingDetails
31+
2632
const {
2733
mutate: updatePaymentMethod,
2834
isLoading,
@@ -31,15 +37,9 @@ const PaymentMethodForm = ({
3137
} = useUpdatePaymentMethod({
3238
provider,
3339
owner,
34-
name:
35-
subscriptionDetail?.defaultPaymentMethod?.billingDetails?.name ||
36-
undefined,
37-
email:
38-
subscriptionDetail?.defaultPaymentMethod?.billingDetails?.email ||
39-
undefined,
40-
address:
41-
stripeAddress(subscriptionDetail?.defaultPaymentMethod?.billingDetails) ||
42-
undefined,
40+
name: billingDetails?.name || undefined,
41+
email: billingDetails?.email || undefined,
42+
address: stripeAddress(billingDetails) || undefined,
4343
})
4444

4545
async function submit(e: React.FormEvent) {
@@ -107,4 +107,21 @@ const PaymentMethodForm = ({
107107
)
108108
}
109109

110+
export const stripeAddress = (
111+
billingDetails: z.infer<typeof BillingDetailsSchema> | null | undefined
112+
) => {
113+
const address = billingDetails?.address
114+
if (!address) return undefined
115+
116+
return {
117+
line1: address.line1 || null,
118+
line2: address.line2 || null,
119+
city: address.city || null,
120+
state: address.state || null,
121+
// eslint-disable-next-line camelcase
122+
postal_code: address.postalCode || null,
123+
country: address.country || null,
124+
}
125+
}
126+
110127
export default PaymentMethodForm

src/services/account/useAccountDetails.ts

Lines changed: 6 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,11 @@ export const BillingDetailsSchema = z
6565
})
6666
.nullable()
6767

68+
export const USBankAccountSchema = z.object({
69+
bankName: z.string(),
70+
last4: z.string(),
71+
})
72+
6873
export const PaymentMethodSchema = z
6974
.object({
7075
card: z
@@ -75,12 +80,7 @@ export const PaymentMethodSchema = z
7580
last4: z.string(),
7681
})
7782
.nullish(),
78-
usBankAccount: z
79-
.object({
80-
bankName: z.string(),
81-
last4: z.string(),
82-
})
83-
.nullish(),
83+
usBankAccount: USBankAccountSchema.nullish(),
8484
billingDetails: BillingDetailsSchema.nullable(),
8585
})
8686
.nullable()
@@ -213,20 +213,3 @@ export function useAccountDetails({
213213
...opts,
214214
})
215215
}
216-
217-
export const stripeAddress = (
218-
billingDetails: z.infer<typeof BillingDetailsSchema> | null | undefined
219-
) => {
220-
const address = billingDetails?.address
221-
if (!address) return undefined
222-
223-
return {
224-
line1: address.line1 || null,
225-
line2: address.line2 || null,
226-
city: address.city || null,
227-
state: address.state || null,
228-
// eslint-disable-next-line camelcase
229-
postal_code: address.postalCode || null,
230-
country: address.country || null,
231-
}
232-
}

src/services/account/useUpdatePaymentMethod.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,7 @@ export function useUpdatePaymentMethod({
6666
// eslint-disable-next-line camelcase
6767
payment_method_data: {
6868
// eslint-disable-next-line camelcase
69-
billing_details: {
70-
name: name,
71-
email: email,
72-
address: address,
73-
},
69+
billing_details: { name, email, address },
7470
},
7571
// eslint-disable-next-line camelcase
7672
return_url: `${config.BASE_URL}/plan/${provider}/${owner}`,

0 commit comments

Comments
 (0)