import { __ } from '@wordpress/i18n'; import { useCallback } from '@wordpress/element'; import { CommonHooks, OnboardingHooks, PaymentHooks } from '../../../../data'; import { useActiveModal } from '../../../../data/common/hooks'; import Modal from '../Components/Payment/Modal'; import PaymentMethodCard from '../Components/Payment/PaymentMethodCard'; const TabPaymentMethods = () => { const methods = PaymentHooks.usePaymentMethods(); const store = PaymentHooks.useStore(); const { setPersistent, changePaymentSettings } = store; const { activeModal, setActiveModal } = useActiveModal(); // Get all methods as a map for dependency checking const methodsMap = {}; methods.all.forEach( ( method ) => { methodsMap[ method.id ] = method; } ); const getActiveMethod = () => { if ( ! activeModal ) { return null; } return methods.all.find( ( method ) => method.id === activeModal ); }; const handleSave = useCallback( ( methodId, settings ) => { changePaymentSettings( methodId, { title: settings.checkoutPageTitle, description: settings.checkoutPageDescription, } ); const persistentSettings = [ 'paypalShowLogo', 'threeDSecure', 'fastlaneCardholderName', 'fastlaneDisplayWatermark', ]; persistentSettings.forEach( ( setting ) => { if ( setting in settings ) { // TODO: Create a dedicated setter for those values. setPersistent( setting, settings[ setting ] ); } } ); setActiveModal( null ); }, [ changePaymentSettings, setActiveModal, setPersistent ] ); const merchant = CommonHooks.useMerchant(); const { canUseCardPayments } = OnboardingHooks.useFlags(); const showCardPayments = methods.cardPayment.length > 0 && merchant.isBusinessSeller && canUseCardPayments; const showApms = methods.apm.length > 0; return (