wickes-css2 2.102.0-lg-788-improve-mini-basket.5 → 2.102.0-lg-788-improve-mini-basket.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickes-css2",
3
- "version": "2.102.0-lg-788-improve-mini-basket.5",
3
+ "version": "2.102.0-lg-788-improve-mini-basket.7",
4
4
  "description": "CSS and JS and page templates in use by Wickes",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -170,7 +170,7 @@ function createPopupSlider({ type, sliderSelector, onAppendEvent, onAppend, onCl
170
170
  bindClosePopup();
171
171
 
172
172
  if (onAppendEvent && onAppend) {
173
- document.addEventListener(onAppendEvent, (event) => {
173
+ window.addEventListener(onAppendEvent, (event) => {
174
174
  onAppend(event, { showSlider, handleScroll, el });
175
175
  });
176
176
  }
@@ -44,7 +44,10 @@ Wick.MiniBasketSliderFE = {
44
44
  events: {
45
45
  MINI_BASKET_CHECKOUT: 'MINI_BASKET_CHECKOUT',
46
46
  MINI_BASKET_VIEW_BASKET: 'MINI_BASKET_VIEW_BASKET',
47
- SHOW_MINI_BASKET: 'SHOW_MINI_BASKET'
47
+ SHOW_MINI_BASKET: 'SHOW_MINI_BASKET',
48
+ MINI_BASKET_QUANTITY_INCREASE: 'MINI_BASKET_QUANTITY_INCREASE',
49
+ MINI_BASKET_QUANTITY_DECREASE: 'MINI_BASKET_QUANTITY_DECREASE',
50
+ MINI_BASKET_ITEM_REMOVE: 'MINI_BASKET_ITEM_REMOVE'
48
51
  },
49
52
  el: {
50
53
  miniBasket: '.custom-slider.mini-basket',
@@ -71,6 +74,7 @@ Wick.MiniBasketSliderFE = {
71
74
  productCardPreview: '.card.product-card-preview',
72
75
  notifications: '.custom-slider__notifications',
73
76
  btnQuantity: '.card .btn--quantity',
77
+ btnQuantityMinus: '.btn--quantity[data-action="minus"]',
74
78
  btnRemove: '.card .btn--remove',
75
79
  customSliderWrap: '.custom-slider__wrap',
76
80
  miniBasketFooter: '.custom-slider__footer',
@@ -139,6 +143,7 @@ Wick.MiniBasketSliderFE = {
139
143
  },
140
144
  isInitial: true,
141
145
  isMiniBasketOpened: false,
146
+ actionEventType: null,
142
147
  miniBasketUpdateItemQuantity(e) {
143
148
  const $item = $(e.currentTarget).closest(Wick.MiniBasketSliderFE.el.productCardPreview);
144
149
  const quantityElement = $item.find(Wick.MiniBasketSliderFE.el.quantityValue)
@@ -146,6 +151,10 @@ Wick.MiniBasketSliderFE = {
146
151
  const action = $(e.currentTarget).attr('data-action');
147
152
  const entryNumber = +$item.attr('data-id');
148
153
 
154
+ if (action === 'plus') Wick.MiniBasketSliderFE.actionEventType = Wick.MiniBasketSliderFE.events.MINI_BASKET_QUANTITY_INCREASE;
155
+ if (action === 'minus') Wick.MiniBasketSliderFE.actionEventType = Wick.MiniBasketSliderFE.events.MINI_BASKET_QUANTITY_DECREASE;
156
+ if (action === 'remove') Wick.MiniBasketSliderFE.actionEventType = Wick.MiniBasketSliderFE.events.MINI_BASKET_ITEM_REMOVE;
157
+
149
158
  handleQuantityChange({
150
159
  quantityInput: quantityElement,
151
160
  action,
@@ -153,7 +162,7 @@ Wick.MiniBasketSliderFE = {
153
162
  context: $item,
154
163
  entryNumber,
155
164
  onQuantityChange: Wick.MiniBasketSliderFE.updateQuantityAction,
156
- debounceQuantityChange: Wick.MiniBasketSliderFE.debounceQuantityChange,
165
+ debounceQuantityChange: Wick.MiniBasketSliderFE.debounceQuantityChange
157
166
  });
158
167
  },
159
168
  debounceQuantityChange: _.debounce(function (entryNumber, value, quantityInput, context) {
@@ -175,6 +184,16 @@ Wick.MiniBasketSliderFE = {
175
184
  routes: ROUTES,
176
185
  isMiniBasket: true,
177
186
  });
187
+
188
+ Wick.MiniBasketSliderFE.toggleMinusButtonState(context, quantityToUpdate);
189
+ },
190
+ toggleMinusButtonState($item, value) {
191
+ const $minusBtn = $item.find(Wick.MiniBasketSliderFE.el.btnQuantityMinus);
192
+ if (value > 1) {
193
+ $minusBtn.prop('disabled', false);
194
+ } else {
195
+ $minusBtn.prop('disabled', true);
196
+ }
178
197
  },
179
198
  updateAction: function (response, quantityToUpdate, quantityInput, context, successCallback) {
180
199
  Wick.MiniBasketSliderFE.updateQuantityOperation(
@@ -260,9 +279,27 @@ Wick.MiniBasketSliderFE = {
260
279
  extraActionsMiniBasket: () => {
261
280
  Wick.MiniBasketSliderFE.toggleMiniBasketEmptyView();
262
281
  Wick.MiniBasketSliderFE.updateItemsCount(response);
282
+
283
+ if (Wick.MiniBasketSliderFE.actionEventType) {
284
+ Wick.MiniBasketSliderFE.fireMiniBasketActionEvent(Wick.MiniBasketSliderFE.actionEventType, response);
285
+ }
263
286
  }
264
287
  });
265
288
  },
289
+ fireMiniBasketActionEvent(eventType, cartData) {
290
+ if (!eventType) return;
291
+ const payload = {
292
+ orderType: cartData.orderType,
293
+ deliveryOrderGroups: cartData.deliveryOrderGroups,
294
+ pickupOrderGroups: cartData.pickupOrderGroups
295
+ };
296
+ const event = createEvent(
297
+ eventType,
298
+ payload,
299
+ {}
300
+ );
301
+ window.dispatchEvent(event);
302
+ },
266
303
  removeOrderItem(data) {
267
304
  Wick.MiniBasketSliderFE.updateItemsCount(data);
268
305
  },
@@ -398,6 +435,7 @@ Wick.MiniBasketSliderFE = {
398
435
  onClose: function () {
399
436
  $(Wick.MiniBasketSliderFE.el.notifications).empty();
400
437
  Wick.MiniBasketSliderFE.isMiniBasketOpened = false;
438
+ Wick.MiniBasketSliderFE.actionEventType = null;
401
439
  }
402
440
  });
403
441
  },
@@ -472,7 +510,7 @@ Wick.MiniBasketSliderFE = {
472
510
  {},
473
511
  eventDetail
474
512
  );
475
- document.dispatchEvent(event);
513
+ window.dispatchEvent(event);
476
514
  });
477
515
  },
478
516
  bindMiniBasketBtnHandler(selector, eventName) {