mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-01 07:02:48 +08:00
Optimize for prop drilling
This commit is contained in:
parent
f77aae6b90
commit
859fd3396b
6 changed files with 28 additions and 43 deletions
|
@ -27,7 +27,6 @@ export const useAddressEditing = () => {
|
||||||
|
|
||||||
const setBillingAddressEditing = useCallback(
|
const setBillingAddressEditing = useCallback(
|
||||||
( isEditing ) => {
|
( isEditing ) => {
|
||||||
console.log( 'Setting billing address editing to:', isEditing );
|
|
||||||
setEditingBillingAddress( isEditing );
|
setEditingBillingAddress( isEditing );
|
||||||
},
|
},
|
||||||
[ setEditingBillingAddress ]
|
[ setEditingBillingAddress ]
|
||||||
|
|
|
@ -9,9 +9,14 @@ import {
|
||||||
isEmailFunctionalitySetup,
|
isEmailFunctionalitySetup,
|
||||||
} from '../components/EmailButton';
|
} from '../components/EmailButton';
|
||||||
import { restoreOriginalFields } from '../helpers/fieldHelpers';
|
import { restoreOriginalFields } from '../helpers/fieldHelpers';
|
||||||
|
import useCustomerData from './useCustomerData';
|
||||||
|
|
||||||
const useAxoCleanup = ( updateWooShippingAddress, updateWooBillingAddress ) => {
|
const useAxoCleanup = () => {
|
||||||
const { setIsAxoActive, setIsGuest } = useDispatch( STORE_NAME );
|
const { setIsAxoActive, setIsGuest } = useDispatch( STORE_NAME );
|
||||||
|
const {
|
||||||
|
setShippingAddress: updateWooShippingAddress,
|
||||||
|
setBillingAddress: updateWooBillingAddress,
|
||||||
|
} = useCustomerData();
|
||||||
|
|
||||||
useEffect( () => {
|
useEffect( () => {
|
||||||
console.log( 'Setting up cleanup for WooCommerce fields' );
|
console.log( 'Setting up cleanup for WooCommerce fields' );
|
||||||
|
|
|
@ -7,15 +7,12 @@ import { setupEmailFunctionality } from '../components/EmailButton';
|
||||||
import { createEmailLookupHandler } from '../events/emailLookupManager';
|
import { createEmailLookupHandler } from '../events/emailLookupManager';
|
||||||
import { initializeClassToggles } from '../helpers/classnamesManager';
|
import { initializeClassToggles } from '../helpers/classnamesManager';
|
||||||
import { snapshotFields } from '../helpers/fieldHelpers';
|
import { snapshotFields } from '../helpers/fieldHelpers';
|
||||||
|
import useCustomerData from './useCustomerData';
|
||||||
|
import useShippingAddressChange from './useShippingAddressChange';
|
||||||
|
|
||||||
const useAxoSetup = (
|
const useAxoSetup = (
|
||||||
ppcpConfig,
|
ppcpConfig,
|
||||||
fastlaneSdk,
|
fastlaneSdk,
|
||||||
wooShippingAddress,
|
|
||||||
wooBillingAddress,
|
|
||||||
setWooShippingAddress,
|
|
||||||
setWooBillingAddress,
|
|
||||||
onChangeShippingAddressClick,
|
|
||||||
onChangeCardButtonClick,
|
onChangeCardButtonClick,
|
||||||
setShippingAddress,
|
setShippingAddress,
|
||||||
setCard
|
setCard
|
||||||
|
@ -23,6 +20,18 @@ const useAxoSetup = (
|
||||||
const { setIsAxoActive, setIsAxoScriptLoaded } = useDispatch( STORE_NAME );
|
const { setIsAxoActive, setIsAxoScriptLoaded } = useDispatch( STORE_NAME );
|
||||||
const paypalLoaded = usePayPalScript( ppcpConfig );
|
const paypalLoaded = usePayPalScript( ppcpConfig );
|
||||||
|
|
||||||
|
const onChangeShippingAddressClick = useShippingAddressChange(
|
||||||
|
fastlaneSdk,
|
||||||
|
setShippingAddress
|
||||||
|
);
|
||||||
|
|
||||||
|
const {
|
||||||
|
shippingAddress: wooShippingAddress,
|
||||||
|
billingAddress: wooBillingAddress,
|
||||||
|
setShippingAddress: setWooShippingAddress,
|
||||||
|
setBillingAddress: setWooBillingAddress,
|
||||||
|
} = useCustomerData();
|
||||||
|
|
||||||
useEffect( () => {
|
useEffect( () => {
|
||||||
console.log( 'Initializing class toggles' );
|
console.log( 'Initializing class toggles' );
|
||||||
initializeClassToggles();
|
initializeClassToggles();
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
import { useCallback } from '@wordpress/element';
|
import { useCallback } from '@wordpress/element';
|
||||||
import { useAddressEditing } from './useAddressEditing';
|
import { useAddressEditing } from './useAddressEditing';
|
||||||
|
import useCustomerData from './useCustomerData';
|
||||||
|
|
||||||
export const useCardChange = ( fastlaneSdk, setCard, setWooBillingAddress ) => {
|
export const useCardChange = ( fastlaneSdk, setCard ) => {
|
||||||
const { setBillingAddressEditing } = useAddressEditing();
|
const { setBillingAddressEditing } = useAddressEditing();
|
||||||
|
const { setBillingAddress: setWooBillingAddress } = useCustomerData();
|
||||||
|
|
||||||
return useCallback( async () => {
|
return useCallback( async () => {
|
||||||
if ( fastlaneSdk ) {
|
if ( fastlaneSdk ) {
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
import { useCallback } from '@wordpress/element';
|
import { useCallback } from '@wordpress/element';
|
||||||
import { useAddressEditing } from './useAddressEditing';
|
import { useAddressEditing } from './useAddressEditing';
|
||||||
|
import useCustomerData from './useCustomerData';
|
||||||
|
|
||||||
export const useShippingAddressChange = (
|
export const useShippingAddressChange = ( fastlaneSdk, setShippingAddress ) => {
|
||||||
fastlaneSdk,
|
|
||||||
setShippingAddress,
|
|
||||||
setWooShippingAddress
|
|
||||||
) => {
|
|
||||||
const { setShippingAddressEditing } = useAddressEditing();
|
const { setShippingAddressEditing } = useAddressEditing();
|
||||||
|
const { setShippingAddress: setWooShippingAddress } = useCustomerData();
|
||||||
|
|
||||||
return useCallback( async () => {
|
return useCallback( async () => {
|
||||||
if ( fastlaneSdk ) {
|
if ( fastlaneSdk ) {
|
||||||
|
@ -14,10 +12,6 @@ export const useShippingAddressChange = (
|
||||||
await fastlaneSdk.profile.showShippingAddressSelector();
|
await fastlaneSdk.profile.showShippingAddressSelector();
|
||||||
if ( selectionChanged ) {
|
if ( selectionChanged ) {
|
||||||
setShippingAddress( selectedAddress );
|
setShippingAddress( selectedAddress );
|
||||||
console.log(
|
|
||||||
'Selected shipping address changed:',
|
|
||||||
selectedAddress
|
|
||||||
);
|
|
||||||
|
|
||||||
const { address, name, phoneNumber } = selectedAddress;
|
const { address, name, phoneNumber } = selectedAddress;
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,6 @@ import { registerPaymentMethod } from '@woocommerce/blocks-registry';
|
||||||
|
|
||||||
// Hooks
|
// Hooks
|
||||||
import useFastlaneSdk from './hooks/useFastlaneSdk';
|
import useFastlaneSdk from './hooks/useFastlaneSdk';
|
||||||
import useCustomerData from './hooks/useCustomerData';
|
|
||||||
import useShippingAddressChange from './hooks/useShippingAddressChange';
|
|
||||||
import useCardChange from './hooks/useCardChange';
|
import useCardChange from './hooks/useCardChange';
|
||||||
import useAxoSetup from './hooks/useAxoSetup';
|
import useAxoSetup from './hooks/useAxoSetup';
|
||||||
import usePaymentSetup from './hooks/usePaymentSetup';
|
import usePaymentSetup from './hooks/usePaymentSetup';
|
||||||
|
@ -22,39 +20,17 @@ const Axo = ( props ) => {
|
||||||
const [ shippingAddress, setShippingAddress ] = useState( null );
|
const [ shippingAddress, setShippingAddress ] = useState( null );
|
||||||
const [ card, setCard ] = useState( null );
|
const [ card, setCard ] = useState( null );
|
||||||
const fastlaneSdk = useFastlaneSdk( axoConfig, ppcpConfig );
|
const fastlaneSdk = useFastlaneSdk( axoConfig, ppcpConfig );
|
||||||
|
const onChangeCardButtonClick = useCardChange( fastlaneSdk, setCard );
|
||||||
const {
|
|
||||||
shippingAddress: wooShippingAddress,
|
|
||||||
billingAddress: wooBillingAddress,
|
|
||||||
setShippingAddress: updateWooShippingAddress,
|
|
||||||
setBillingAddress: updateWooBillingAddress,
|
|
||||||
} = useCustomerData();
|
|
||||||
|
|
||||||
const onChangeShippingAddressClick = useShippingAddressChange(
|
|
||||||
fastlaneSdk,
|
|
||||||
setShippingAddress,
|
|
||||||
updateWooShippingAddress
|
|
||||||
);
|
|
||||||
const onChangeCardButtonClick = useCardChange(
|
|
||||||
fastlaneSdk,
|
|
||||||
setCard,
|
|
||||||
updateWooBillingAddress
|
|
||||||
);
|
|
||||||
|
|
||||||
useAxoSetup(
|
useAxoSetup(
|
||||||
ppcpConfig,
|
ppcpConfig,
|
||||||
fastlaneSdk,
|
fastlaneSdk,
|
||||||
wooShippingAddress,
|
|
||||||
wooBillingAddress,
|
|
||||||
updateWooShippingAddress,
|
|
||||||
updateWooBillingAddress,
|
|
||||||
onChangeShippingAddressClick,
|
|
||||||
onChangeCardButtonClick,
|
onChangeCardButtonClick,
|
||||||
setShippingAddress,
|
setShippingAddress,
|
||||||
setCard
|
setCard
|
||||||
);
|
);
|
||||||
usePaymentSetup( onPaymentSetup, emitResponse, card );
|
usePaymentSetup( onPaymentSetup, emitResponse, card );
|
||||||
useAxoCleanup( updateWooShippingAddress, updateWooBillingAddress );
|
useAxoCleanup();
|
||||||
|
|
||||||
const handlePaymentLoad = useCallback( ( paymentComponent ) => {
|
const handlePaymentLoad = useCallback( ( paymentComponent ) => {
|
||||||
console.log( 'Payment component loaded', paymentComponent );
|
console.log( 'Payment component loaded', paymentComponent );
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue