mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-06 14:57:26 +08:00
87 lines
2.4 KiB
JavaScript
87 lines
2.4 KiB
JavaScript
import { useEffect } from '@wordpress/element';
|
|
import { useDispatch } from '@wordpress/data';
|
|
import { STORE_NAME } from '../stores/axoStore';
|
|
import usePayPalScript from './usePayPalScript';
|
|
import { setupWatermark } from '../components/Watermark';
|
|
import { setupEmailFunctionality } from '../components/EmailButton';
|
|
import { createEmailLookupHandler } from '../events/emailLookupManager';
|
|
import { usePhoneSyncHandler } from './usePhoneSyncHandler';
|
|
import { initializeClassToggles } from '../helpers/classnamesManager';
|
|
import { snapshotFields } from '../helpers/fieldHelpers';
|
|
import useCustomerData from './useCustomerData';
|
|
import useShippingAddressChange from './useShippingAddressChange';
|
|
|
|
const useAxoSetup = (
|
|
ppcpConfig,
|
|
fastlaneSdk,
|
|
paymentComponent,
|
|
onChangeCardButtonClick,
|
|
setShippingAddress,
|
|
setCard,
|
|
setWooPhone
|
|
) => {
|
|
const { setIsAxoActive, setIsAxoScriptLoaded } = useDispatch( STORE_NAME );
|
|
const paypalLoaded = usePayPalScript( ppcpConfig );
|
|
|
|
const onChangeShippingAddressClick = useShippingAddressChange(
|
|
fastlaneSdk,
|
|
setShippingAddress
|
|
);
|
|
|
|
const {
|
|
shippingAddress: wooShippingAddress,
|
|
billingAddress: wooBillingAddress,
|
|
setShippingAddress: setWooShippingAddress,
|
|
setBillingAddress: setWooBillingAddress,
|
|
} = useCustomerData();
|
|
|
|
usePhoneSyncHandler( paymentComponent, setWooPhone );
|
|
|
|
useEffect( () => {
|
|
console.log( 'Initializing class toggles' );
|
|
initializeClassToggles();
|
|
}, [] );
|
|
|
|
useEffect( () => {
|
|
console.log( 'Setting up Axo functionality' );
|
|
setupWatermark( fastlaneSdk );
|
|
if ( paypalLoaded && fastlaneSdk ) {
|
|
console.log(
|
|
'PayPal loaded and FastlaneSDK available, setting up email functionality'
|
|
);
|
|
setIsAxoScriptLoaded( true );
|
|
setIsAxoActive( true );
|
|
const emailLookupHandler = createEmailLookupHandler(
|
|
fastlaneSdk,
|
|
setShippingAddress,
|
|
setCard,
|
|
snapshotFields,
|
|
wooShippingAddress,
|
|
wooBillingAddress,
|
|
setWooShippingAddress,
|
|
setWooBillingAddress,
|
|
onChangeShippingAddressClick,
|
|
onChangeCardButtonClick
|
|
);
|
|
setupEmailFunctionality( emailLookupHandler );
|
|
}
|
|
}, [
|
|
paypalLoaded,
|
|
fastlaneSdk,
|
|
setIsAxoActive,
|
|
setIsAxoScriptLoaded,
|
|
wooShippingAddress,
|
|
wooBillingAddress,
|
|
setWooShippingAddress,
|
|
setWooBillingAddress,
|
|
onChangeShippingAddressClick,
|
|
onChangeCardButtonClick,
|
|
setShippingAddress,
|
|
setCard,
|
|
paymentComponent,
|
|
] );
|
|
|
|
return paypalLoaded;
|
|
};
|
|
|
|
export default useAxoSetup;
|