♻️ Consolidate payment-method hooks

This commit is contained in:
Philipp Stracker 2025-01-27 15:47:31 +01:00
parent 9c1803e8ea
commit 727462305b
No known key found for this signature in database
2 changed files with 35 additions and 73 deletions

View file

@ -7,13 +7,7 @@ import { useActiveModal } from '../../../../data/common/hooks';
import Modal from '../Components/Payment/Modal';
const TabPaymentMethods = () => {
const { paymentMethodsPayPalCheckout } =
PaymentHooks.usePaymentMethodsPayPalCheckout();
const { paymentMethodsOnlineCardPayments } =
PaymentHooks.usePaymentMethodsOnlineCardPayments();
const { paymentMethodsAlternative } =
PaymentHooks.usePaymentMethodsAlternative();
const methods = PaymentHooks.usePaymentMethods();
const { setPersistent, changePaymentSettings } = PaymentHooks.useStore();
const { activeModal, setActiveModal } = useActiveModal();
@ -23,13 +17,7 @@ const TabPaymentMethods = () => {
return null;
}
const allMethods = [
...paymentMethodsPayPalCheckout,
...paymentMethodsOnlineCardPayments,
...paymentMethodsAlternative,
];
return allMethods.find( ( method ) => method.id === activeModal );
return methods.all.find( ( method ) => method.id === activeModal );
};
return (
@ -45,7 +33,7 @@ const TabPaymentMethods = () => {
contentContainer={ false }
>
<PaymentMethodsBlock
paymentMethods={ paymentMethodsPayPalCheckout }
paymentMethods={ methods.paypal }
onTriggerModal={ setActiveModal }
/>
</SettingsCard>
@ -63,7 +51,7 @@ const TabPaymentMethods = () => {
contentContainer={ false }
>
<PaymentMethodsBlock
paymentMethods={ paymentMethodsOnlineCardPayments }
paymentMethods={ methods.cardPayment }
onTriggerModal={ setActiveModal }
/>
</SettingsCard>
@ -81,7 +69,7 @@ const TabPaymentMethods = () => {
contentContainer={ false }
>
<PaymentMethodsBlock
paymentMethods={ paymentMethodsAlternative }
paymentMethods={ methods.apm }
onTriggerModal={ setActiveModal }
/>
</SettingsCard>

View file

@ -95,14 +95,19 @@ export const useStore = () => {
export const usePaymentMethods = () => {
const {
// PayPal Checkout.
paypal,
venmo,
payLater,
creditCard,
// Online card payments.
advancedCreditCard,
fastlane,
applePay,
googlePay,
// Local APMs.
bancontact,
blik,
eps,
@ -115,6 +120,25 @@ export const usePaymentMethods = () => {
oxxo,
} = useHooks();
const payPalCheckout = [ paypal, venmo, payLater, creditCard ];
const onlineCardPayments = [
advancedCreditCard,
fastlane,
applePay,
googlePay,
];
const alternative = [
bancontact,
blik,
eps,
ideal,
mybank,
p24,
trustly,
multibanco,
pui,
oxxo,
];
const paymentMethods = [
paypal,
venmo,
@ -136,7 +160,12 @@ export const usePaymentMethods = () => {
oxxo,
];
return { paymentMethods };
return {
all: paymentMethods,
paypal: payPalCheckout,
cardPayment: onlineCardPayments,
apm: alternative,
};
};
export const usePaymentMethodsModal = () => {
@ -154,58 +183,3 @@ export const usePaymentMethodsModal = () => {
fastlaneDisplayWatermark,
};
};
export const usePaymentMethodsPayPalCheckout = () => {
const { paypal, venmo, payLater, creditCard } = useHooks();
const paymentMethodsPayPalCheckout = [
paypal,
venmo,
payLater,
creditCard,
].filter( ( item ) => Object.keys( item ).length !== 0 );
return { paymentMethodsPayPalCheckout };
};
export const usePaymentMethodsOnlineCardPayments = () => {
const { advancedCreditCard, fastlane, applePay, googlePay } = useHooks();
const paymentMethodsOnlineCardPayments = [
advancedCreditCard,
fastlane,
applePay,
googlePay,
].filter( ( item ) => Object.keys( item ).length !== 0 );
return { paymentMethodsOnlineCardPayments };
};
export const usePaymentMethodsAlternative = () => {
const {
bancontact,
blik,
eps,
ideal,
mybank,
p24,
trustly,
multibanco,
pui,
oxxo,
} = useHooks();
const paymentMethodsAlternative = [
bancontact,
blik,
eps,
ideal,
mybank,
p24,
trustly,
multibanco,
pui,
oxxo,
].filter( ( item ) => Object.keys( item ).length !== 0 );
return { paymentMethodsAlternative };
};