2025-01-21 18:57:36 +01:00
|
|
|
import SettingsBlock from '../SettingsBlock';
|
2024-12-08 09:33:49 +01:00
|
|
|
import PaymentMethodItemBlock from './PaymentMethodItemBlock';
|
2025-01-27 11:07:19 +01:00
|
|
|
import { PaymentHooks } from '../../../data';
|
2024-12-08 09:33:49 +01:00
|
|
|
|
2025-01-27 11:07:19 +01:00
|
|
|
// TODO: This is not a reusable component, as it's connected to the Redux store.
|
|
|
|
const PaymentMethodsBlock = ( { paymentMethods = [], onTriggerModal } ) => {
|
2025-01-27 11:07:57 +01:00
|
|
|
const { changePaymentSettings } = PaymentHooks.useStore();
|
|
|
|
|
|
|
|
const handleSelect = ( methodId, isSelected ) =>
|
|
|
|
changePaymentSettings( methodId, {
|
|
|
|
enabled: isSelected,
|
|
|
|
} );
|
2024-12-16 16:00:27 +01:00
|
|
|
|
2025-01-27 11:07:19 +01:00
|
|
|
if ( ! paymentMethods.length ) {
|
2024-12-08 09:33:49 +01:00
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
return (
|
2025-01-24 17:01:03 +01:00
|
|
|
<SettingsBlock className="ppcp--grid ppcp-r-settings-block__payment-methods">
|
2025-01-27 11:28:23 +01:00
|
|
|
{ paymentMethods
|
|
|
|
// Remove empty/invalid payment method entries.
|
|
|
|
.filter( ( m ) => m.id )
|
|
|
|
.map( ( paymentMethod ) => (
|
|
|
|
<PaymentMethodItemBlock
|
|
|
|
key={ paymentMethod.id }
|
|
|
|
paymentMethod={ paymentMethod }
|
|
|
|
isSelected={ paymentMethod.enabled }
|
|
|
|
onSelect={ ( checked ) =>
|
|
|
|
handleSelect( paymentMethod.id, checked )
|
|
|
|
}
|
|
|
|
onTriggerModal={ () =>
|
|
|
|
onTriggerModal?.( paymentMethod.id )
|
|
|
|
}
|
|
|
|
/>
|
|
|
|
) ) }
|
2024-12-17 11:50:32 +01:00
|
|
|
</SettingsBlock>
|
2024-12-08 09:33:49 +01:00
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default PaymentMethodsBlock;
|