Add Billing Details updating when a new card gets selected

This commit is contained in:
Daniel Dudzic 2024-09-11 22:58:13 +02:00
parent 861034855e
commit 24a481bdeb
No known key found for this signature in database
GPG key ID: 31B40D33E3465483
12 changed files with 399 additions and 152 deletions

View file

@ -1,16 +1,42 @@
import { useCallback, useMemo } from '@wordpress/element';
import { useDispatch, useSelect } from '@wordpress/data';
export const useCustomerData = () => {
const customerData = useSelect( ( select ) =>
select( 'wc/store/cart' ).getCustomerData()
);
const { setShippingAddress, setBillingAddress } =
useDispatch( 'wc/store/cart' );
return {
shippingAddress: customerData.shippingAddress,
billingAddress: customerData.billingAddress,
setShippingAddress,
setBillingAddress,
};
const {
setShippingAddress: setShippingAddressDispatch,
setBillingAddress: setBillingAddressDispatch,
} = useDispatch( 'wc/store/cart' );
const setShippingAddress = useCallback(
( address ) => {
setShippingAddressDispatch( address );
},
[ setShippingAddressDispatch ]
);
const setBillingAddress = useCallback(
( address ) => {
setBillingAddressDispatch( address );
},
[ setBillingAddressDispatch ]
);
return useMemo(
() => ( {
shippingAddress: customerData.shippingAddress,
billingAddress: customerData.billingAddress,
setShippingAddress,
setBillingAddress,
} ),
[
customerData.shippingAddress,
customerData.billingAddress,
setShippingAddress,
setBillingAddress,
]
);
};