Skip to content

Commit 72d2a8c

Browse files
committed
refactor: code refactor
1 parent e0bffa8 commit 72d2a8c

File tree

4 files changed

+42
-51
lines changed

4 files changed

+42
-51
lines changed

src/PaymentElement.res

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ let make = (~cardProps, ~expiryProps, ~cvcProps, ~paymentType: CardThemeType.mod
3737
let (paymentMethodListValue, setPaymentMethodListValue) = Recoil.useRecoilState(
3838
paymentMethodListValue,
3939
)
40-
let paymentMethodsListV2 = Recoil.useRecoilValueFromAtom(RecoilAtomsV2.paymentsListValue)
4140

4241
let (sessions, setSessions) = React.useState(_ => Dict.make()->JSON.Encode.object)
4342
let (paymentOptions, setPaymentOptions) = React.useState(_ => [])
@@ -189,11 +188,7 @@ let make = (~cardProps, ~expiryProps, ~cvcProps, ~paymentType: CardThemeType.mod
189188
paypalToken,
190189
isPaypalSDKFlow,
191190
isPaypalRedirectFlow,
192-
} = PayPalHelpers.usePaymentMethodExperience(
193-
~paymentMethodListValue,
194-
~paymentMethodsListV2,
195-
~sessionObj,
196-
)
191+
} = PayPalHelpers.usePaymentMethodExperience(~paymentMethodListValue, ~sessionObj)
197192

198193
React.useEffect(() => {
199194
switch paymentMethodList {

src/Payments/PayPalHelpers.res

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,38 +7,45 @@ type paypalExperienceData = {
77
isPaypalRedirectFlow: bool,
88
}
99

10-
let usePaymentMethodExperience = (
11-
~paymentMethodListValue,
12-
~paymentMethodsListV2: UnifiedPaymentsTypesV2.paymentMethodsManagement,
13-
~sessionObj: sessions,
14-
) => {
15-
let paypalPaymentMethodExperience = React.useMemo(() => {
16-
switch GlobalVars.sdkVersion {
17-
| V1 =>
18-
getPaymentExperienceTypeFromPML(
19-
~paymentMethodList=paymentMethodListValue,
20-
~paymentMethodName="wallet",
21-
~paymentMethodType="paypal",
22-
)
23-
| V2 =>
24-
V2Helpers.getPaymentExperienceTypeFromPML(
25-
~paymentMethodList=paymentMethodsListV2,
26-
~paymentMethodName="wallet",
27-
~paymentMethodType="paypal",
28-
)
29-
}
30-
}, (paymentMethodListValue, paymentMethodsListV2))
31-
10+
let usePaypalTokenAndFlowFromExperience = (~paypalExperience, ~sessionObj: sessions) => {
3211
let paypalToken = React.useMemo(
3312
() => getPaymentSessionObj(sessionObj.sessionsToken, Paypal),
3413
[sessionObj],
3514
)
36-
let isPaypalSDKFlow = paypalPaymentMethodExperience->Array.includes(InvokeSDK)
37-
let isPaypalRedirectFlow = paypalPaymentMethodExperience->Array.includes(RedirectToURL)
15+
16+
let isPaypalSDKFlow = paypalExperience->Array.includes(InvokeSDK)
17+
let isPaypalRedirectFlow = paypalExperience->Array.includes(RedirectToURL)
3818

3919
{
4020
paypalToken,
4121
isPaypalSDKFlow,
4222
isPaypalRedirectFlow,
4323
}
4424
}
25+
26+
let usePaymentMethodExperience = (~paymentMethodListValue, ~sessionObj: sessions) => {
27+
let paypalPaymentMethodExperience = React.useMemo(() => {
28+
getPaymentExperienceTypeFromPML(
29+
~paymentMethodList=paymentMethodListValue,
30+
~paymentMethodName="wallet",
31+
~paymentMethodType="paypal",
32+
)
33+
}, [paymentMethodListValue])
34+
35+
usePaypalTokenAndFlowFromExperience(~paypalExperience=paypalPaymentMethodExperience, ~sessionObj)
36+
}
37+
38+
let usePaymentMethodExperienceV2 = (
39+
~paymentMethodsListV2: UnifiedPaymentsTypesV2.paymentMethodsManagement,
40+
~sessionObj: sessions,
41+
) => {
42+
let paypalPaymentMethodExperience = React.useMemo(() => {
43+
V2Helpers.getPaymentExperienceTypeFromPML(
44+
~paymentMethodList=paymentMethodsListV2,
45+
~paymentMethodName="wallet",
46+
~paymentMethodType="paypal",
47+
)
48+
}, [paymentMethodsListV2])
49+
50+
usePaypalTokenAndFlowFromExperience(~paypalExperience=paypalPaymentMethodExperience, ~sessionObj)
51+
}

src/Payments/PaymentRequestButtonElement.res

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,21 +47,20 @@ module WalletsSaveDetailsText = {
4747
@react.component
4848
let make = (~sessions, ~walletOptions) => {
4949
open SessionsType
50+
open PayPalHelpers
5051
let dict = sessions->Utils.getDictFromJson
5152
let paymentMethodListValue = Recoil.useRecoilValueFromAtom(PaymentUtils.paymentMethodListValue)
5253
let paymentMethodsListV2 = Recoil.useRecoilValueFromAtom(RecoilAtomsV2.paymentsListValue)
5354

5455
let sessionObj = React.useMemo(() => itemToObjMapper(dict, Others), [dict])
5556

56-
let {
57-
paypalToken,
58-
isPaypalSDKFlow,
59-
isPaypalRedirectFlow,
60-
} = PayPalHelpers.usePaymentMethodExperience(
61-
~paymentMethodListValue,
62-
~paymentMethodsListV2,
63-
~sessionObj,
64-
)
57+
let paypalFlowInfoV1 = usePaymentMethodExperience(~paymentMethodListValue, ~sessionObj)
58+
let paypalFlowInfoV2 = usePaymentMethodExperienceV2(~paymentMethodsListV2, ~sessionObj)
59+
60+
let {paypalToken, isPaypalSDKFlow, isPaypalRedirectFlow} = switch GlobalVars.sdkVersion {
61+
| V1 => paypalFlowInfoV1
62+
| V2 => paypalFlowInfoV2
63+
}
6564

6665
let gPayToken = getPaymentSessionObj(sessionObj.sessionsToken, Gpay)
6766
let applePaySessionObj = itemToObjMapper(dict, ApplePayObject)

src/Utilities/PaymentUtils.res

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -324,11 +324,7 @@ let getIsKlarnaSDKFlow = sessions => {
324324
}
325325
}
326326

327-
let usePaypalFlowStatus = (
328-
~sessions,
329-
~paymentMethodListValue,
330-
~paymentMethodsListV2: UnifiedPaymentsTypesV2.paymentMethodsManagement,
331-
) => {
327+
let usePaypalFlowStatus = (~sessions, ~paymentMethodListValue) => {
332328
open Utils
333329

334330
let sessionObj =
@@ -340,11 +336,7 @@ let usePaypalFlowStatus = (
340336
paypalToken,
341337
isPaypalSDKFlow,
342338
isPaypalRedirectFlow,
343-
} = PayPalHelpers.usePaymentMethodExperience(
344-
~paymentMethodListValue,
345-
~paymentMethodsListV2,
346-
~sessionObj,
347-
)
339+
} = PayPalHelpers.usePaymentMethodExperience(~paymentMethodListValue, ~sessionObj)
348340

349341
let isPaypalTokenExist = switch paypalToken {
350342
| OtherTokenOptional(optToken) =>
@@ -371,7 +363,6 @@ let useGetPaymentMethodList = (~paymentOptions, ~paymentType, ~sessions) => {
371363
let isKlarnaSDKFlow = getIsKlarnaSDKFlow(sessions)
372364

373365
let paymentMethodListValue = Recoil.useRecoilValueFromAtom(paymentMethodListValue)
374-
let paymentMethodsListV2 = Recoil.useRecoilValueFromAtom(RecoilAtomsV2.paymentsListValue)
375366

376367
let areAllApplePayRequiredFieldsPrefilled = useAreAllRequiredFieldsPrefilled(
377368
~paymentMethodListValue,
@@ -397,7 +388,6 @@ let useGetPaymentMethodList = (~paymentOptions, ~paymentType, ~sessions) => {
397388
let (isPaypalSDKFlow, isPaypalRedirectFlow, isPaypalTokenExist) = usePaypalFlowStatus(
398389
~sessions,
399390
~paymentMethodListValue,
400-
~paymentMethodsListV2,
401391
)
402392

403393
React.useMemo(() => {

0 commit comments

Comments
 (0)