Skip to content

Commit 561223f

Browse files
Merge pull request #262 from hyva-themes/260/other-addresses-hide
#260 Do not show "Other Addresses" section in case of only one address in use
2 parents 89ece6c + fd82bde commit 561223f

File tree

11 files changed

+41
-19
lines changed

11 files changed

+41
-19
lines changed

src/Plugin/CheckoutController/Index.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ public function aroundExecute(CheckoutIndex $subject, callable $proceed)
5252
->setModule('hyva')
5353
->setController('reactcheckout')
5454
->forward('index');
55-
5655
} else {
5756
$result = $proceed();
5857
}

src/Plugin/CustomerController/AjaxLogin.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ public function __construct(
6060
* @param \Magento\Customer\Controller\Ajax\Login $ajaxLoginController
6161
* @param \Magento\Framework\Controller\ResultInterface $result
6262
* @return \Magento\Framework\Controller\ResultInterface
63+
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
6364
*/
6465
public function afterExecute(
6566
CustomerAjaxLoginController $ajaxLoginController,

src/Result/JsonFactory.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ class JsonFactory extends \Magento\Framework\Controller\Result\JsonFactory
1212
*
1313
* @param \Magento\Framework\ObjectManagerInterface $objectManager
1414
* @param string $instanceName
15+
* phpcs:ignore Generic.CodeAnalysis.UselessOverridingMethod.Found
1516
*/
1617
public function __construct(
1718
ObjectManagerInterface $objectManager,

src/reactapp/src/components/billingAddress/components/BillingAddressFormikProvider.jsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,10 @@ function BillingAddressFormikProvider({ children, formikData }) {
8989
);
9090

9191
useEffect(() => {
92-
if (forceFilledAddress === selectedAddress || !cartHasBillingAddress) {
92+
if (
93+
!isNewAddress &&
94+
(forceFilledAddress === selectedAddress || !cartHasBillingAddress)
95+
) {
9396
if (customerHasAddress(customerAddressList)) {
9497
setFormToViewMode();
9598
}
@@ -116,6 +119,7 @@ function BillingAddressFormikProvider({ children, formikData }) {
116119
}
117120
}, [
118121
isSame,
122+
isNewAddress,
119123
selectedAddress,
120124
setFormToViewMode,
121125
forceFilledAddress,

src/reactapp/src/components/billingAddress/components/BillingAddressView.jsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ import React from 'react';
33
import { CreateNewAddressLink } from '../../address';
44
import BillingAddressOthers from './BillingAddressOthers';
55
import BillingAddressSelected from './BillingAddressSelected';
6-
import { _isObjEmpty } from '../../../utils';
6+
import { _keys } from '../../../utils';
77
import { CART_BILLING_ADDRESS } from '../utility';
8+
import LocalStorage from '../../../utils/localStorage';
89
import { isCartAddressValid } from '../../../utils/address';
910
import useBillingAddressAppContext from '../hooks/useBillingAddressAppContext';
1011
import useBillingAddressCartContext from '../hooks/useBillingAddressCartContext';
@@ -24,8 +25,13 @@ function BillingAddressView() {
2425
} = useBillingAddressFormikContext();
2526
const { cartBillingAddress } = useBillingAddressCartContext();
2627
const { isLoggedIn, customerAddressList } = useBillingAddressAppContext();
27-
const hideOtherAddrSection = isLoggedIn && _isObjEmpty(customerAddressList);
2828
const isCartShippingAddressValid = isCartAddressValid(cartBillingAddress);
29+
const mostRecentAddressList = LocalStorage.getMostRecentlyUsedAddressList();
30+
// hide other section if there exists only one address for use.
31+
const hideOtherAddrSection =
32+
isLoggedIn &&
33+
_keys(customerAddressList).length <= 1 &&
34+
!_keys(mostRecentAddressList).length;
2935

3036
const newAddressClickHandler = () => {
3137
setIsNewAddress(true);

src/reactapp/src/components/shippingAddress/components/ShippingAddressView.jsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ import React from 'react';
33
import { CreateNewAddressLink } from '../../address';
44
import ShippingAddressOthers from './ShippingAddressOthers';
55
import ShippingAddressSelected from './ShippingAddressSelected';
6-
import { _isObjEmpty } from '../../../utils';
6+
import { _keys } from '../../../utils';
77
import { CART_SHIPPING_ADDRESS } from '../utility';
8+
import LocalStorage from '../../../utils/localStorage';
89
import { isCartAddressValid } from '../../../utils/address';
910
import useShippingAddressAppContext from '../hooks/useShippingAddressAppContext';
1011
import useShippingAddressCartContext from '../hooks/useShippingAddressCartContext';
@@ -24,8 +25,13 @@ function ShippingAddressView() {
2425
} = useShippingAddressFormikContext();
2526
const { cartShippingAddress } = useShippingAddressCartContext();
2627
const { isLoggedIn, customerAddressList } = useShippingAddressAppContext();
27-
const hideOtherAddrSection = isLoggedIn && _isObjEmpty(customerAddressList);
2828
const isCartShippingAddressValid = isCartAddressValid(cartShippingAddress);
29+
const mostRecentAddressList = LocalStorage.getMostRecentlyUsedAddressList();
30+
// hide other section if there exists only one address for use.
31+
const hideOtherAddrSection =
32+
isLoggedIn &&
33+
_keys(customerAddressList).length <= 1 &&
34+
!_keys(mostRecentAddressList).length;
2935

3036
const newAddressClickHandler = () => {
3137
setIsNewAddress(true);

src/view/frontend/templates/react-container.phtml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ $configProvider = $block->getData('checkout_config_provider');
1414
<div
1515
id="react-checkout"
1616
data-base_url="<?= $block->getBaseUrl() ?>"
17-
data-static_file_path="<?= $block->getViewFileUrl('Hyva_ReactCheckout/js') ?>"
18-
data-checkout_config="<?= $escaper->escapeHtmlAttr($configProvider->getConfig()) ?>"
17+
data-base_url="<?= $escaper->escapeUrl($block->getBaseUrl()) ?>"
18+
data-static_file_path="<?= $escaper->escapeUrl($block->getViewFileUrl('Hyva_ReactCheckout')) ?>"
1919
>
2020
<div class="container">
2121
<div class="flex flex-col max-h-screen my-6 lg:flex-row">
2222
<div class="w-full lg:w-3/5 md:mr-2">
2323
<div class="mr-1 space-y-2">
24-
<div class="card w-full px-4 py-4">
24+
<div class="w-full px-4 py-4 card">
2525
<div class="flex space-x-4 animate-pulse">
2626
<div class="w-12 h-12 bg-gray-400 rounded-full"></div>
2727
<div class="flex-1 py-1 space-y-4">
@@ -33,7 +33,7 @@ $configProvider = $block->getData('checkout_config_provider');
3333
</div>
3434
</div>
3535
</div>
36-
<div class="card w-full px-4 py-4">
36+
<div class="w-full px-4 py-4 card">
3737
<div class="flex space-x-4 animate-pulse">
3838
<div class="w-12 h-12 bg-gray-400 rounded-full"></div>
3939
<div class="flex-1 py-1 space-y-4">
@@ -45,7 +45,7 @@ $configProvider = $block->getData('checkout_config_provider');
4545
</div>
4646
</div>
4747
</div>
48-
<div class="card w-full px-4 py-4">
48+
<div class="w-full px-4 py-4 card">
4949
<div class="flex space-x-4 animate-pulse">
5050
<div class="w-12 h-12 bg-gray-400 rounded-full"></div>
5151
<div class="flex-1 py-1 space-y-4">
@@ -110,9 +110,9 @@ $configProvider = $block->getData('checkout_config_provider');
110110
</div>
111111
</div>
112112

113-
<div class="w-full lg:w-2/5 sticky self-start">
113+
<div class="sticky self-start w-full lg:w-2/5">
114114
<div class="ml-1 space-y-2">
115-
<div class="card w-full px-4 py-4">
115+
<div class="w-full px-4 py-4 card">
116116
<div class="flex space-x-4 animate-pulse">
117117
<div class="w-12 h-12 bg-gray-400 rounded-full"></div>
118118
<div class="flex-1 py-1 space-y-4">
@@ -154,7 +154,7 @@ $configProvider = $block->getData('checkout_config_provider');
154154
</div>
155155
</div>
156156
</div>
157-
<div class="card w-full px-4 py-4">
157+
<div class="w-full px-4 py-4 card">
158158
<div class="flex space-x-4 animate-pulse">
159159
<div class="w-12 h-12 bg-gray-400 rounded-full"></div>
160160
<div class="flex-1 py-1 space-y-4">

src/view/frontend/templates/react-script.phtml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use Magento\Framework\View\Element\Template;
77
/** @var Template $block */
88
/** @var Escaper $escaper */
99

10+
$buildJsFile = 'Hyva_ReactCheckout::js/react-checkout.js';
1011
?>
1112
<script>
1213
function loadReactCartScript () {
@@ -16,7 +17,7 @@ use Magento\Framework\View\Element\Template;
1617

1718
newScript.async = true;
1819
newScript.defer = true;
19-
newScript.src = '<?= $escaper->escapeUrl($block->getViewFileUrl('Hyva_ReactCheckout::js/react-checkout.js')); ?>';
20+
newScript.src = '<?= $escaper->escapeUrl($block->getViewFileUrl($buildJsFile)); ?>';
2021

2122
firstScript.parentNode.insertBefore(newScript, firstScript);
2223
}
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
<?php
22
use Magento\Framework\Escaper;
3+
use Hyva\ReactCheckout\Block\CheckoutTranslator;
34

4-
/** @var \Hyva\ReactCheckout\Block\CheckoutTranslator $block */
5+
/**
6+
* @var CheckoutTranslator $block
7+
* @var Escaper $escaper
8+
*/
59
?>
610
<script>
7-
var CHECKOUT_TRANSLATIONS = '<?= $block->getTranslations() ?>';
11+
var CHECKOUT_TRANSLATIONS = '<?= $escaper->escapeJs($block->getTranslations()) ?>';
812
</script>

src/view/frontend/web/js/react-checkout.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.

0 commit comments

Comments
 (0)