woocommerce-paypal-payments/modules/ppcp-settings/resources/js/Components/Screens/Settings/Tabs/TabPaymentMethods.js

137 lines
3.9 KiB
JavaScript
Raw Normal View History

2024-10-29 12:39:44 +01:00
import { __ } from '@wordpress/i18n';
2025-01-27 11:14:24 +01:00
import SettingsCard from '../../../ReusableComponents/SettingsCard';
import { PaymentMethodsBlock } from '../../../ReusableComponents/SettingsBlocks';
import { PaymentHooks } from '../../../../data';
import { useActiveModal } from '../../../../data/common/hooks';
import Modal from '../Components/Payment/Modal';
2024-10-29 12:39:44 +01:00
const TabPaymentMethods = () => {
const { paymentMethodsPayPalCheckout } =
PaymentHooks.usePaymentMethodsPayPalCheckout();
const { paymentMethodsOnlineCardPayments } =
PaymentHooks.usePaymentMethodsOnlineCardPayments();
const { paymentMethodsAlternative } =
PaymentHooks.usePaymentMethodsAlternative();
2024-12-03 18:06:23 +04:00
const { setPersistent, changePaymentSettings } = PaymentHooks.useStore();
const { activeModal, setActiveModal } = useActiveModal();
2024-10-29 12:39:44 +01:00
const getActiveMethod = () => {
if ( ! activeModal ) {
return null;
}
const allMethods = [
...paymentMethodsPayPalCheckout,
...paymentMethodsOnlineCardPayments,
...paymentMethodsAlternative,
];
return allMethods.find( ( method ) => method.id === activeModal );
};
2024-10-29 12:39:44 +01:00
return (
<div className="ppcp-r-payment-methods">
<SettingsCard
id="ppcp-paypal-checkout-card"
2024-10-29 12:39:44 +01:00
title={ __( 'PayPal Checkout', 'woocommerce-paypal-payments' ) }
description={ __(
'Select your preferred checkout option with PayPal for easy payment processing.',
'woocommerce-paypal-payments'
) }
icon="icon-checkout-standard.svg"
contentContainer={ false }
2024-10-29 12:39:44 +01:00
>
<PaymentMethodsBlock
paymentMethods={ paymentMethodsPayPalCheckout }
onTriggerModal={ setActiveModal }
/>
2024-10-29 12:39:44 +01:00
</SettingsCard>
<SettingsCard
id="ppcp-card-payments-card"
2024-10-29 12:39:44 +01:00
title={ __(
'Online Card Payments',
'woocommerce-paypal-payments'
) }
description={ __(
'Select your preferred card payment options for efficient payment processing.',
'woocommerce-paypal-payments'
) }
icon="icon-checkout-online-methods.svg"
contentContainer={ false }
2024-10-29 12:39:44 +01:00
>
<PaymentMethodsBlock
paymentMethods={ paymentMethodsOnlineCardPayments }
onTriggerModal={ setActiveModal }
/>
2024-10-29 12:39:44 +01:00
</SettingsCard>
<SettingsCard
id="ppcp-alternative-payments-card"
2024-10-29 12:39:44 +01:00
title={ __(
'Alternative Payment Methods',
'woocommerce-paypal-payments'
) }
description={ __(
'With alternative payment methods, customers across the globe can pay with their bank accounts and other local payment methods.',
'woocommerce-paypal-payments'
) }
icon="icon-checkout-alternative-methods.svg"
contentContainer={ false }
2024-10-29 12:39:44 +01:00
>
<PaymentMethodsBlock
paymentMethods={ paymentMethodsAlternative }
onTriggerModal={ setActiveModal }
/>
2024-10-29 12:39:44 +01:00
</SettingsCard>
{ activeModal && (
<Modal
method={ getActiveMethod() }
setModalIsVisible={ () => setActiveModal( null ) }
onSave={ ( methodId, settings ) => {
changePaymentSettings( methodId, {
title: settings.checkoutPageTitle,
description: settings.checkoutPageDescription,
} );
2025-01-23 12:29:41 +01:00
if ( 'paypalShowLogo' in settings ) {
2025-01-27 11:15:37 +01:00
// TODO: Create a dedicated setter for this value.
2025-01-23 12:29:41 +01:00
setPersistent(
'paypalShowLogo',
settings.paypalShowLogo
);
}
if ( 'threeDSecure' in settings ) {
2025-01-27 11:15:37 +01:00
// TODO: Create a dedicated setter for this value.
2025-01-23 12:29:41 +01:00
setPersistent(
'threeDSecure',
settings.threeDSecure
);
}
if ( 'fastlaneCardholderName' in settings ) {
2025-01-27 11:15:37 +01:00
// TODO: Create a dedicated setter for this value.
2025-01-23 12:29:41 +01:00
setPersistent(
'fastlaneCardholderName',
settings.fastlaneCardholderName
);
}
if ( 'fastlaneDisplayWatermark' in settings ) {
2025-01-27 11:15:37 +01:00
// TODO: Create a dedicated setter for this value.
2025-01-23 12:29:41 +01:00
setPersistent(
'fastlaneDisplayWatermark',
settings.fastlaneDisplayWatermark
);
}
setActiveModal( null );
} }
/>
) }
2024-10-29 12:39:44 +01:00
</div>
);
};
export default TabPaymentMethods;