Skip to content

Commit b32567b

Browse files
ENGCOM-6251: Fix minicart promotion region not rendering #25373 #25375
2 parents 0316b67 + a93a1b2 commit b32567b

File tree

6 files changed

+35
-12
lines changed

6 files changed

+35
-12
lines changed

app/code/Magento/Catalog/view/base/web/template/product/list/listing.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@
2525
<render args="$col.getBody()"/>
2626
</fastForEach>
2727

28-
<div if="getRegion('action-primary-area')().length || getRegion('action-secondary-area')().length"
28+
<div if="regionHasElements('action-primary-area') || regionHasElements('action-secondary-area')"
2929
class="product-item-actions">
30-
<div class="actions-primary" if="getRegion('action-primary-area')().length">
30+
<div class="actions-primary" if="regionHasElements('action-primary-area')">
3131
<fastForEach args="data: getRegion('action-primary-area'), as: '$col'" >
3232
<render args="$col.getBody()"/>
3333
</fastForEach>
3434
</div>
3535

36-
<div if="getRegion('action-secondary-area')().length"
36+
<div if="regionHasElements('action-secondary-area')"
3737
class="actions-secondary"
3838
data-role="add-to-links">
3939
<fastForEach args="data: getRegion('action-secondary-area'), as: '$col'" >
@@ -42,7 +42,7 @@
4242
</div>
4343
</div>
4444

45-
<div if="getRegion('description-area')().length"
45+
<div if="regionHasElements('description-area')"
4646
class="product-item-description">
4747
<fastForEach args="data: getRegion('description-area'), as: '$col'" >
4848
<render args="$col.getBody()"/>
@@ -54,4 +54,4 @@
5454
</ol>
5555
</div>
5656
</div>
57-
</div>
57+
</div>

app/code/Magento/Checkout/view/frontend/web/js/view/minicart.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,11 @@ define([
162162

163163
/**
164164
* Get cart param by name.
165+
*
165166
* @param {String} name
166167
* @returns {*}
167168
*/
168-
getCartParam: function (name) {
169+
getCartParamUnsanitizedHtml: function (name) {
169170
if (!_.isUndefined(name)) {
170171
if (!this.cart.hasOwnProperty(name)) {
171172
this.cart[name] = ko.observable();
@@ -175,12 +176,21 @@ define([
175176
return this.cart[name]();
176177
},
177178

179+
/**
180+
* @deprecated please use getCartParamUnsanitizedHtml.
181+
* @param {String} name
182+
* @returns {*}
183+
*/
184+
getCartParam: function (name) {
185+
return this.getCartParamUnsanitizedHtml(name);
186+
},
187+
178188
/**
179189
* Returns array of cart items, limited by 'maxItemsToDisplay' setting
180190
* @returns []
181191
*/
182192
getCartItems: function () {
183-
var items = this.getCartParam('items') || [];
193+
var items = this.getCartParamUnsanitizedHtml('items') || [];
184194

185195
items = items.slice(parseInt(-this.maxItemsToDisplay, 10));
186196

@@ -192,7 +202,7 @@ define([
192202
* @returns {Number}
193203
*/
194204
getCartLineItemsCount: function () {
195-
var items = this.getCartParam('items') || [];
205+
var items = this.getCartParamUnsanitizedHtml('items') || [];
196206

197207
return parseInt(items.length, 10);
198208
}

app/code/Magento/Checkout/view/frontend/web/js/view/payment/list.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ define([
203203
*/
204204
isPaymentMethodsAvailable: function () {
205205
return _.some(this.paymentGroupsList(), function (group) {
206-
return this.getRegion(group.displayArea)().length;
206+
return this.regionHasElements(group.displayArea);
207207
}, this);
208208
},
209209

app/code/Magento/Checkout/view/frontend/web/template/minicart/content.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
"
5757
translate="'Proceed to Checkout'"
5858
/>
59-
<div data-bind="html: getCartParam('extra_actions')"></div>
59+
<div data-bind="html: getCartParamUnsanitizedHtml('extra_actions')"></div>
6060
</div>
6161
</div>
6262
</if>
@@ -97,7 +97,7 @@
9797
</div>
9898
</div>
9999

100-
<div id="minicart-widgets" class="minicart-widgets" if="getRegion('promotion').length">
100+
<div id="minicart-widgets" class="minicart-widgets" if="regionHasElements('promotion')">
101101
<each args="getRegion('promotion')" render=""/>
102102
</div>
103103
</div>

app/code/Magento/Checkout/view/frontend/web/template/payment-methods/list.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
class="items payment-methods">
99
<div repeat="foreach: paymentGroupsList, item: '$group'"
1010
class="payment-group">
11-
<div if="getRegion($group().displayArea)().length"
11+
<div if="regionHasElements($group().displayArea)"
1212
translate="getGroupTitle($group)"
1313
class="step-title"
1414
data-role="title">

app/code/Magento/Ui/view/base/web/js/lib/core/collection.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,19 @@ define([
214214
return regions[name];
215215
},
216216

217+
/**
218+
* Checks if the specified region has any elements
219+
* associated with it.
220+
*
221+
* @param {String} name
222+
* @returns {Boolean}
223+
*/
224+
regionHasElements: function (name) {
225+
var region = this.getRegion(name);
226+
227+
return region().length > 0;
228+
},
229+
217230
/**
218231
* Replaces specified regions' data with a provided one.
219232
* Creates region if it was not created yet.

0 commit comments

Comments
 (0)