woocommerce-paypal-payments/modules/ppcp-axo-block/resources/js/hooks/useAddressEditing.js
2024-09-16 13:30:03 +02:00

47 lines
1.1 KiB
JavaScript

import { useCallback } from '@wordpress/element';
import { useDispatch, useSelect } from '@wordpress/data';
const CHECKOUT_STORE_KEY = 'wc/store/checkout';
export const useAddressEditing = () => {
const { isEditingShippingAddress, isEditingBillingAddress } = useSelect(
( select ) => {
const store = select( CHECKOUT_STORE_KEY );
return {
isEditingShippingAddress: store.getEditingShippingAddress
? store.getEditingShippingAddress()
: true,
isEditingBillingAddress: store.getEditingBillingAddress
? store.getEditingBillingAddress()
: true,
};
},
[]
);
const { setEditingShippingAddress, setEditingBillingAddress } =
useDispatch( CHECKOUT_STORE_KEY );
const setShippingAddressEditing = useCallback(
( isEditing ) => {
setEditingShippingAddress( isEditing );
},
[ setEditingShippingAddress ]
);
const setBillingAddressEditing = useCallback(
( isEditing ) => {
setEditingBillingAddress( isEditing );
},
[ setEditingBillingAddress ]
);
return {
isEditingShippingAddress,
isEditingBillingAddress,
setShippingAddressEditing,
setBillingAddressEditing,
};
};
export default useAddressEditing;