Skip to content

Commit b6b3b95

Browse files
committed
Bug #59571: avoid redundant syncing of shipping address values
1 parent 9cbaa97 commit b6b3b95

File tree

3 files changed

+16
-11
lines changed

3 files changed

+16
-11
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<?php return array('dependencies' => array('react', 'wc-blocks-checkout', 'wc-blocks-components', 'wc-blocks-data-store', 'wc-settings', 'wp-data', 'wp-element', 'wp-i18n'), 'version' => '5b3237eb895ec83977a0');
1+
<?php return array('dependencies' => array('react', 'wc-blocks-checkout', 'wc-blocks-components', 'wc-blocks-data-store', 'wc-settings', 'wp-data', 'wp-element', 'wp-i18n'), 'version' => '72170622d316abefb7e2');

build/shipping-address-autocomplete-intl-frontend.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/blocks/shipping-address-autocomplete-intl/block.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useSelect, useDispatch } from '@wordpress/data';
2-
import { useEffect } from '@wordpress/element';
2+
import { useCallback } from '@wordpress/element';
33
import { CART_STORE_KEY } from '@woocommerce/block-data';
44
import { CHECKOUT_STORE_KEY } from '@woocommerce/block-data';
55
import AutocompleteContainer from '../../components/address-autocomplete-intl/container';
@@ -9,19 +9,24 @@ const Block = () => {
99
{shippingAddress} = useSelect(select => select(CART_STORE_KEY).getCustomerData(), []),
1010
{setShippingAddress, setBillingAddress} = useDispatch(CART_STORE_KEY);
1111

12-
useEffect(() => {
13-
if (useShippingAsBilling)
14-
{
15-
// Billing address needs to be synced with shipping address after calling `setShippingAddress`.
16-
setBillingAddress({...shippingAddress});
17-
}
18-
}, [shippingAddress]);
12+
const setAddress = useCallback(
13+
(values) => {
14+
setShippingAddress(values);
15+
16+
if (useShippingAsBilling)
17+
{
18+
// Billing address needs to be synced with shipping address after calling `setShippingAddress`.
19+
setBillingAddress({...values});
20+
}
21+
},
22+
[useShippingAsBilling, setShippingAddress, setBillingAddress]
23+
);
1924

2025
return (
2126
<AutocompleteContainer
2227
addressType="shipping"
2328
address={shippingAddress}
24-
setAddress={setShippingAddress}
29+
setAddress={setAddress}
2530
/>
2631
)
2732

0 commit comments

Comments
 (0)