@bonlineza/luxity-lib 2.34.3 → 2.34.5

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.
Files changed (87) hide show
  1. package/Accordion.js +116 -76
  2. package/AddInterest.js +768 -434
  3. package/BrandSelector.js +336 -176
  4. package/Checkbox.js +101 -68
  5. package/CheckboxButton.js +124 -79
  6. package/CommunicationPreferenceOptionsRenderer.js +125 -107
  7. package/CommunicationPreferenceSection.js +134 -114
  8. package/CommunicationPreferences.js +339 -443
  9. package/CountryCodeSelect.js +10 -7
  10. package/CurrencyInputFormatter.js +56 -29
  11. package/CurrencySelect.js +49 -23
  12. package/GALink.js +16 -6
  13. package/GenderSelector.js +142 -88
  14. package/GraphQLDropdownSelector.js +937 -503
  15. package/GraphQLMultiSelector.js +274 -141
  16. package/IconHeader.js +25 -11
  17. package/IconWrapper.js +7 -3
  18. package/InterestCatSelector.js +74 -34
  19. package/InterestItem.js +187 -103
  20. package/Interests.js +890 -485
  21. package/InterestsSubheading.js +10 -5
  22. package/InvertedTextButton.js +63 -27
  23. package/LuxityAppSideNav.js +21 -18
  24. package/LuxityDesktopHeader.js +258 -191
  25. package/LuxityFooter.js +276 -374
  26. package/LuxityGraphQLDropdownSelector.js +969 -519
  27. package/LuxityGraphQLMultiselector.js +321 -167
  28. package/LuxityMobileHeader.js +351 -253
  29. package/LuxityPageReady.js +136 -74
  30. package/LuxitySideNav.js +213 -165
  31. package/MaterialSelector.js +976 -525
  32. package/ModelSelector.js +976 -525
  33. package/NotificationDropDown.js +209 -111
  34. package/Notify.js +1 -0
  35. package/OutlinePrimaryButton.js +58 -26
  36. package/PriceRangeSelector.js +281 -168
  37. package/PrimaryButton.js +58 -26
  38. package/RadioButtons.js +140 -114
  39. package/RangeSlider.js +242 -152
  40. package/RareStepFooter.js +41 -27
  41. package/RareStepHeader.js +190 -139
  42. package/ReactSelectWrapper.js +1 -0
  43. package/SecondaryButton.js +58 -26
  44. package/ShoeSizeRangeSelector.js +260 -162
  45. package/ShoeSizeSelector.js +263 -158
  46. package/SimpleErrorBoundary.js +106 -59
  47. package/StyleSelector.js +336 -176
  48. package/TestComponent.js +15 -0
  49. package/TextButton.js +58 -26
  50. package/Tooltip.js +39 -17
  51. package/Tracking.js +1 -0
  52. package/WrapperButton.js +43 -20
  53. package/build/bundle.css +1 -1
  54. package/build/bundle.js +1711 -1265
  55. package/package.json +1 -1
  56. package/svg/Accessories.js +13 -6
  57. package/svg/Account.js +13 -6
  58. package/svg/Add.js +13 -6
  59. package/svg/ArrowRight.js +13 -6
  60. package/svg/Bags.js +13 -6
  61. package/svg/BurgerMenu.js +13 -6
  62. package/svg/Calendar.js +13 -6
  63. package/svg/CalendarCircled.js +13 -6
  64. package/svg/CheckCircled.js +13 -6
  65. package/svg/Close.js +13 -6
  66. package/svg/Clothing.js +13 -6
  67. package/svg/Dot.js +13 -6
  68. package/svg/Edit.js +13 -6
  69. package/svg/Eye.js +13 -6
  70. package/svg/FileAttach.js +13 -6
  71. package/svg/FileAttachCircled.js +13 -6
  72. package/svg/LightBulb.js +13 -6
  73. package/svg/Logo.js +13 -6
  74. package/svg/LuxityMenu.js +13 -6
  75. package/svg/Minus.js +13 -6
  76. package/svg/MobileAvatar.js +13 -6
  77. package/svg/MyOrder.js +13 -6
  78. package/svg/MyPayment.js +13 -6
  79. package/svg/MyProfile.js +14 -8
  80. package/svg/MySale.js +13 -6
  81. package/svg/Notification.js +13 -6
  82. package/svg/PointerDown.js +13 -6
  83. package/svg/Search.js +13 -6
  84. package/svg/Shoes.js +13 -6
  85. package/svg/SvgWrapper.js +7 -3
  86. package/svg/Trash.js +13 -6
  87. package/svg/Watches.js +13 -6
@@ -8,112 +8,133 @@
8
8
  axios = axios && Object.prototype.hasOwnProperty.call(axios, 'default') ? axios['default'] : axios;
9
9
  var styled__default = 'default' in styled ? styled['default'] : styled;
10
10
 
11
- function _arrayLikeToArray(r, a) {
12
- (null == a || a > r.length) && (a = r.length);
13
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
14
- return n;
15
- }
16
- function _arrayWithHoles(r) {
17
- if (Array.isArray(r)) return r;
18
- }
19
- function _defineProperty(e, r, t) {
20
- return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
21
- value: t,
22
- enumerable: !0,
23
- configurable: !0,
24
- writable: !0
25
- }) : e[r] = t, e;
26
- }
27
- function _extends() {
28
- return _extends = Object.assign ? Object.assign.bind() : function (n) {
29
- for (var e = 1; e < arguments.length; e++) {
30
- var t = arguments[e];
31
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
32
- }
33
- return n;
34
- }, _extends.apply(null, arguments);
35
- }
36
- function _iterableToArrayLimit(r, l) {
37
- var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
38
- if (null != t) {
39
- var e,
40
- n,
41
- i,
42
- u,
43
- a = [],
44
- f = !0,
45
- o = !1;
46
- try {
47
- if (i = (t = t.call(r)).next, 0 === l) {
48
- if (Object(t) !== t) return;
49
- f = !1;
50
- } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
51
- } catch (r) {
52
- o = !0, n = r;
53
- } finally {
54
- try {
55
- if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
56
- } finally {
57
- if (o) throw n;
58
- }
59
- }
60
- return a;
11
+ function ownKeys(object, enumerableOnly) {
12
+ var keys = Object.keys(object);
13
+
14
+ if (Object.getOwnPropertySymbols) {
15
+ var symbols = Object.getOwnPropertySymbols(object);
16
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
17
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
18
+ })), keys.push.apply(keys, symbols);
61
19
  }
20
+
21
+ return keys;
62
22
  }
63
- function _nonIterableRest() {
64
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
65
- }
66
- function ownKeys(e, r) {
67
- var t = Object.keys(e);
68
- if (Object.getOwnPropertySymbols) {
69
- var o = Object.getOwnPropertySymbols(e);
70
- r && (o = o.filter(function (r) {
71
- return Object.getOwnPropertyDescriptor(e, r).enumerable;
72
- })), t.push.apply(t, o);
23
+
24
+ function _objectSpread2(target) {
25
+ for (var i = 1; i < arguments.length; i++) {
26
+ var source = null != arguments[i] ? arguments[i] : {};
27
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
28
+ _defineProperty(target, key, source[key]);
29
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
30
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
31
+ });
73
32
  }
74
- return t;
33
+
34
+ return target;
75
35
  }
76
- function _objectSpread2(e) {
77
- for (var r = 1; r < arguments.length; r++) {
78
- var t = null != arguments[r] ? arguments[r] : {};
79
- r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
80
- _defineProperty(e, r, t[r]);
81
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
82
- Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
36
+
37
+ function _defineProperty(obj, key, value) {
38
+ if (key in obj) {
39
+ Object.defineProperty(obj, key, {
40
+ value: value,
41
+ enumerable: true,
42
+ configurable: true,
43
+ writable: true
83
44
  });
45
+ } else {
46
+ obj[key] = value;
84
47
  }
85
- return e;
48
+
49
+ return obj;
86
50
  }
87
- function _slicedToArray(r, e) {
88
- return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
51
+
52
+ function _extends() {
53
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
54
+ for (var i = 1; i < arguments.length; i++) {
55
+ var source = arguments[i];
56
+
57
+ for (var key in source) {
58
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
59
+ target[key] = source[key];
60
+ }
61
+ }
62
+ }
63
+
64
+ return target;
65
+ };
66
+ return _extends.apply(this, arguments);
89
67
  }
90
- function _taggedTemplateLiteral(e, t) {
91
- return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {
68
+
69
+ function _taggedTemplateLiteral(strings, raw) {
70
+ if (!raw) {
71
+ raw = strings.slice(0);
72
+ }
73
+
74
+ return Object.freeze(Object.defineProperties(strings, {
92
75
  raw: {
93
- value: Object.freeze(t)
76
+ value: Object.freeze(raw)
94
77
  }
95
78
  }));
96
79
  }
97
- function _toPrimitive(t, r) {
98
- if ("object" != typeof t || !t) return t;
99
- var e = t[Symbol.toPrimitive];
100
- if (void 0 !== e) {
101
- var i = e.call(t, r || "default");
102
- if ("object" != typeof i) return i;
103
- throw new TypeError("@@toPrimitive must return a primitive value.");
104
- }
105
- return ("string" === r ? String : Number)(t);
80
+
81
+ function _slicedToArray(arr, i) {
82
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
106
83
  }
107
- function _toPropertyKey(t) {
108
- var i = _toPrimitive(t, "string");
109
- return "symbol" == typeof i ? i : i + "";
84
+
85
+ function _arrayWithHoles(arr) {
86
+ if (Array.isArray(arr)) return arr;
110
87
  }
111
- function _unsupportedIterableToArray(r, a) {
112
- if (r) {
113
- if ("string" == typeof r) return _arrayLikeToArray(r, a);
114
- var t = {}.toString.call(r).slice(8, -1);
115
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
88
+
89
+ function _iterableToArrayLimit(arr, i) {
90
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
91
+
92
+ if (_i == null) return;
93
+ var _arr = [];
94
+ var _n = true;
95
+ var _d = false;
96
+
97
+ var _s, _e;
98
+
99
+ try {
100
+ for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
101
+ _arr.push(_s.value);
102
+
103
+ if (i && _arr.length === i) break;
104
+ }
105
+ } catch (err) {
106
+ _d = true;
107
+ _e = err;
108
+ } finally {
109
+ try {
110
+ if (!_n && _i["return"] != null) _i["return"]();
111
+ } finally {
112
+ if (_d) throw _e;
113
+ }
116
114
  }
115
+
116
+ return _arr;
117
+ }
118
+
119
+ function _unsupportedIterableToArray(o, minLen) {
120
+ if (!o) return;
121
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
122
+ var n = Object.prototype.toString.call(o).slice(8, -1);
123
+ if (n === "Object" && o.constructor) n = o.constructor.name;
124
+ if (n === "Map" || n === "Set") return Array.from(o);
125
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
126
+ }
127
+
128
+ function _arrayLikeToArray(arr, len) {
129
+ if (len == null || len > arr.length) len = arr.length;
130
+
131
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
132
+
133
+ return arr2;
134
+ }
135
+
136
+ function _nonIterableRest() {
137
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
117
138
  }
118
139
 
119
140
  var cssUnit = {
@@ -255,16 +276,16 @@
255
276
 
256
277
  var Dropdown = function Dropdown(_ref) {
257
278
  var title = _ref.title,
258
- imageSrc = _ref.imageSrc,
259
- _ref$categoryElements = _ref.categoryElements,
260
- categoryElements = _ref$categoryElements === void 0 ? [] : _ref$categoryElements,
261
- _ref$brandElements = _ref.brandElements,
262
- brandElements = _ref$brandElements === void 0 ? [] : _ref$brandElements,
263
- productsUrl = _ref.productsUrl,
264
- categorySlug = _ref.categorySlug,
265
- categoryTitle = _ref.categoryTitle,
266
- isLoading = _ref.isLoading,
267
- hasError = _ref.hasError;
279
+ imageSrc = _ref.imageSrc,
280
+ _ref$categoryElements = _ref.categoryElements,
281
+ categoryElements = _ref$categoryElements === void 0 ? [] : _ref$categoryElements,
282
+ _ref$brandElements = _ref.brandElements,
283
+ brandElements = _ref$brandElements === void 0 ? [] : _ref$brandElements,
284
+ productsUrl = _ref.productsUrl,
285
+ categorySlug = _ref.categorySlug,
286
+ categoryTitle = _ref.categoryTitle,
287
+ isLoading = _ref.isLoading,
288
+ hasError = _ref.hasError;
268
289
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, hasError ? /*#__PURE__*/React__default.createElement("div", {
269
290
  className: "dropdown__errors"
270
291
  }, "Failed to load data.") : /*#__PURE__*/React__default.createElement("div", {
@@ -316,8 +337,8 @@
316
337
 
317
338
  var StoresDropdown = function StoresDropdown(_ref) {
318
339
  var _ref$stores = _ref.stores,
319
- stores = _ref$stores === void 0 ? [] : _ref$stores,
320
- contactNumber = _ref.contactNumber;
340
+ stores = _ref$stores === void 0 ? [] : _ref$stores,
341
+ contactNumber = _ref.contactNumber;
321
342
  return /*#__PURE__*/React__default.createElement("div", {
322
343
  className: "stores-dropdown"
323
344
  }, !!stores.length && stores.map(function (store) {
@@ -382,6 +403,7 @@
382
403
 
383
404
  var removeCategoryByName = function removeCategoryByName(categories, name) {
384
405
  var _categories$filter;
406
+
385
407
  return (_categories$filter = categories === null || categories === void 0 ? void 0 : categories.filter(function (category) {
386
408
  return category.name !== name;
387
409
  })) !== null && _categories$filter !== void 0 ? _categories$filter : [];
@@ -389,15 +411,17 @@
389
411
 
390
412
  var SearchResults = function SearchResults(_ref) {
391
413
  var searchValue = _ref.searchValue,
392
- searchResults = _ref.searchResults,
393
- onViewAll = _ref.onViewAll,
394
- searchResultsRef = _ref.searchResultsRef,
395
- onSearchSubmit = _ref.onSearchSubmit,
396
- setSearchValue = _ref.setSearchValue;
414
+ searchResults = _ref.searchResults,
415
+ onViewAll = _ref.onViewAll,
416
+ searchResultsRef = _ref.searchResultsRef,
417
+ onSearchSubmit = _ref.onSearchSubmit,
418
+ setSearchValue = _ref.setSearchValue;
419
+
397
420
  if (searchValue.trim().length >= 3) {
398
421
  if (searchResults.brands.length === 0 && searchResults.products.length === 0) {
399
422
  return null;
400
423
  }
424
+
401
425
  return /*#__PURE__*/React__default.createElement("div", {
402
426
  className: "z-50 absolute md:top-14 font-body bg-white w-full lg:w-1/2 flex flex-col md:flex-row md:divide-x divide-black lg:mt-1 shadow-md",
403
427
  ref: searchResultsRef
@@ -434,12 +458,13 @@
434
458
  className: "bottom-0 mt-5 py-3 w-full font-body text-center text-white uppercase bg-black hover:bg-gray-950 border border-black transition-all ease-in-out duration-300 cursor-pointer"
435
459
  }, "View all"))));
436
460
  }
461
+
437
462
  return null;
438
463
  };
439
464
 
440
465
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
441
-
442
466
  /* position relative is required for the Body element to be positioned correctly */
467
+
443
468
  var relativeInlineStyle = styled.css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n"])));
444
469
  var topMiddleBodyStyle = styled.css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: absolute;\n z-index: 1;\n bottom: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n"])));
445
470
  var getTopMiddleArrowAfterStyle = function getTopMiddleArrowAfterStyle(props) {
@@ -453,31 +478,40 @@
453
478
  };
454
479
 
455
480
  var _templateObject$1;
481
+
456
482
  var getBodyStyle = function getBodyStyle() {
457
483
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
458
484
  var _props$toolTipPositio = props.toolTipPosition,
459
- toolTipPosition = _props$toolTipPositio === void 0 ? '' : _props$toolTipPositio;
485
+ toolTipPosition = _props$toolTipPositio === void 0 ? '' : _props$toolTipPositio;
486
+
460
487
  switch (toolTipPosition) {
461
488
  case 'top':
462
489
  return topMiddleBodyStyle;
490
+
463
491
  case 'bottom':
464
492
  return getBottomMiddleBodyStyle(props);
493
+
465
494
  default:
466
495
  return null;
467
496
  }
468
497
  };
498
+
469
499
  var getAfterStyling = function getAfterStyling() {
470
500
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
471
501
  var toolTipPosition = props.toolTipPosition;
502
+
472
503
  switch (toolTipPosition) {
473
504
  case 'top':
474
505
  return getTopMiddleArrowAfterStyle(props);
506
+
475
507
  case 'bottom':
476
508
  return getBottomMiddleArrowAfterStyle(props);
509
+
477
510
  default:
478
511
  return '';
479
512
  }
480
513
  };
514
+
481
515
  var Body = styled__default.span(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n ", ";\n visibility: hidden;\n opacity: 0;\n width: ", ";\n transition: visibility 0.3s linear, opacity 0.3s linear;\n background-color: ", ";\n color: white;\n text-align: center;\n border-radius: 5px;\n ", "\n &::after {\n content: ' ';\n position: absolute;\n ", "\n }\n"])), relativeInlineStyle, function (props) {
482
516
  return props.bodyWidth;
483
517
  }, function (props) {
@@ -557,12 +591,12 @@
557
591
 
558
592
  var Tooltip = function Tooltip(_ref) {
559
593
  var children = _ref.children,
560
- toolTipText = _ref.toolTipText,
561
- toolTipPosition = _ref.toolTipPosition,
562
- bodyWidth = _ref.bodyWidth,
563
- apexWidth = _ref.apexWidth,
564
- containerClassName = _ref.containerClassName,
565
- bodyClassName = _ref.bodyClassName;
594
+ toolTipText = _ref.toolTipText,
595
+ toolTipPosition = _ref.toolTipPosition,
596
+ bodyWidth = _ref.bodyWidth,
597
+ apexWidth = _ref.apexWidth,
598
+ containerClassName = _ref.containerClassName,
599
+ bodyClassName = _ref.bodyClassName;
566
600
  return /*#__PURE__*/React__default.createElement(Container, {
567
601
  className: containerClassName
568
602
  }, children, /*#__PURE__*/React__default.createElement(Body, {
@@ -572,6 +606,7 @@
572
606
  className: bodyClassName
573
607
  }, toolTipText));
574
608
  };
609
+
575
610
  Tooltip.defaultProps = {
576
611
  children: null,
577
612
  toolTipText: '',
@@ -585,21 +620,25 @@
585
620
 
586
621
  var CurrencySelect = function CurrencySelect(_ref) {
587
622
  var currency = _ref.currency,
588
- currencyOptions = _ref.currencyOptions,
589
- onCurrencyChange = _ref.onCurrencyChange,
590
- _ref$isCurrencySelect = _ref.isCurrencySelectionDisabled,
591
- isCurrencySelectionDisabled = _ref$isCurrencySelect === void 0 ? false : _ref$isCurrencySelect,
592
- _ref$tooltipContent = _ref.tooltipContent,
593
- tooltipContent = _ref$tooltipContent === void 0 ? '' : _ref$tooltipContent;
623
+ currencyOptions = _ref.currencyOptions,
624
+ onCurrencyChange = _ref.onCurrencyChange,
625
+ _ref$isCurrencySelect = _ref.isCurrencySelectionDisabled,
626
+ isCurrencySelectionDisabled = _ref$isCurrencySelect === void 0 ? false : _ref$isCurrencySelect,
627
+ _ref$tooltipContent = _ref.tooltipContent,
628
+ tooltipContent = _ref$tooltipContent === void 0 ? '' : _ref$tooltipContent;
629
+
594
630
  if (!currencyOptions || currencyOptions.length === 0) {
595
631
  return null;
596
632
  }
633
+
597
634
  var selectedOption = currencyOptions.find(function (opt) {
598
635
  return opt.value === currency;
599
636
  });
637
+
600
638
  if (!selectedOption) {
601
639
  return null;
602
640
  }
641
+
603
642
  return /*#__PURE__*/React__default.createElement(Tooltip$1, {
604
643
  toolTipText: isCurrencySelectionDisabled ? tooltipContent : '',
605
644
  toolTipPosition: "bottom",
@@ -628,108 +667,132 @@
628
667
 
629
668
  var LuxityDesktopHeader = function LuxityDesktopHeader(_ref) {
630
669
  var accountIcon = _ref.accountIcon,
631
- cartIcon = _ref.cartIcon,
632
- interestIcon = _ref.interestIcon,
633
- cartCount = _ref.cartCount,
634
- logoSrc = _ref.logoSrc,
635
- categoryElements = _ref.categoryElements,
636
- newBrandsImage = _ref.newBrandsImage,
637
- bagsImage = _ref.bagsImage,
638
- shoesImage = _ref.shoesImage,
639
- clothingImage = _ref.clothingImage,
640
- accessoriesImage = _ref.accessoriesImage,
641
- watchesImage = _ref.watchesImage,
642
- stores = _ref.stores,
643
- contactNumber = _ref.contactNumber,
644
- productsUrl = _ref.productsUrl,
645
- onInterestClick = _ref.onInterestClick,
646
- onCartClick = _ref.onCartClick,
647
- onAccountClick = _ref.onAccountClick,
648
- inputSearchIcon = _ref.inputSearchIcon,
649
- onSearch = _ref.onSearch,
650
- onSellToUsClick = _ref.onSellToUsClick,
651
- contactUsLink = _ref.contactUsLink,
652
- ourStoryLink = _ref.ourStoryLink,
653
- onLogoClick = _ref.onLogoClick,
654
- endpoint = _ref.endpoint,
655
- menuData = _ref.menuData,
656
- onSearchSubmit = _ref.onSearchSubmit,
657
- onProductIdsReceived = _ref.onProductIdsReceived,
658
- currency = _ref.currency,
659
- currencyOptions = _ref.currencyOptions,
660
- onCurrencyChange = _ref.onCurrencyChange,
661
- isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
662
- tooltipContent = _ref.tooltipContent,
663
- vipIcon = _ref.vipIcon,
664
- name = _ref.name,
665
- isVip = _ref.isVip,
666
- shop = _ref.shop,
667
- app = _ref.app;
670
+ cartIcon = _ref.cartIcon,
671
+ interestIcon = _ref.interestIcon,
672
+ cartCount = _ref.cartCount,
673
+ logoSrc = _ref.logoSrc,
674
+ categoryElements = _ref.categoryElements,
675
+ newBrandsImage = _ref.newBrandsImage,
676
+ bagsImage = _ref.bagsImage,
677
+ shoesImage = _ref.shoesImage,
678
+ clothingImage = _ref.clothingImage,
679
+ accessoriesImage = _ref.accessoriesImage,
680
+ watchesImage = _ref.watchesImage,
681
+ stores = _ref.stores,
682
+ contactNumber = _ref.contactNumber,
683
+ productsUrl = _ref.productsUrl,
684
+ onInterestClick = _ref.onInterestClick,
685
+ onCartClick = _ref.onCartClick,
686
+ onAccountClick = _ref.onAccountClick,
687
+ inputSearchIcon = _ref.inputSearchIcon,
688
+ onSearch = _ref.onSearch,
689
+ onSellToUsClick = _ref.onSellToUsClick,
690
+ contactUsLink = _ref.contactUsLink,
691
+ ourStoryLink = _ref.ourStoryLink,
692
+ onLogoClick = _ref.onLogoClick,
693
+ endpoint = _ref.endpoint,
694
+ menuData = _ref.menuData,
695
+ onSearchSubmit = _ref.onSearchSubmit,
696
+ onProductIdsReceived = _ref.onProductIdsReceived,
697
+ currency = _ref.currency,
698
+ currencyOptions = _ref.currencyOptions,
699
+ onCurrencyChange = _ref.onCurrencyChange,
700
+ isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
701
+ tooltipContent = _ref.tooltipContent,
702
+ vipIcon = _ref.vipIcon,
703
+ name = _ref.name,
704
+ isVip = _ref.isVip,
705
+ shop = _ref.shop,
706
+ app = _ref.app;
707
+
668
708
  var _useState = React.useState(''),
669
- _useState2 = _slicedToArray(_useState, 2),
670
- searchValue = _useState2[0],
671
- setSearchValue = _useState2[1];
709
+ _useState2 = _slicedToArray(_useState, 2),
710
+ searchValue = _useState2[0],
711
+ setSearchValue = _useState2[1];
712
+
672
713
  var _useState3 = React.useState(false),
673
- _useState4 = _slicedToArray(_useState3, 2),
674
- loading = _useState4[0],
675
- setLoading = _useState4[1];
714
+ _useState4 = _slicedToArray(_useState3, 2),
715
+ loading = _useState4[0],
716
+ setLoading = _useState4[1];
717
+
676
718
  var _useState5 = React.useState({
677
- latestArrivals: [],
678
- bags: [],
679
- shoes: [],
680
- clothing: [],
681
- accessories: [],
682
- watches: [],
683
- accessoriesCategories: [],
684
- apparelStyles: []
685
- }),
686
- _useState6 = _slicedToArray(_useState5, 2),
687
- dropdownData = _useState6[0],
688
- setDropdownData = _useState6[1];
719
+ latestArrivals: [],
720
+ bags: [],
721
+ shoes: [],
722
+ clothing: [],
723
+ accessories: [],
724
+ watches: [],
725
+ accessoriesCategories: [],
726
+ apparelStyles: []
727
+ }),
728
+ _useState6 = _slicedToArray(_useState5, 2),
729
+ dropdownData = _useState6[0],
730
+ setDropdownData = _useState6[1];
731
+
689
732
  var _useState7 = React.useState(false),
690
- _useState8 = _slicedToArray(_useState7, 2),
691
- hasError = _useState8[0],
692
- setHasError = _useState8[1];
733
+ _useState8 = _slicedToArray(_useState7, 2),
734
+ hasError = _useState8[0],
735
+ setHasError = _useState8[1];
736
+
693
737
  var _useState9 = React.useState(false),
694
- _useState10 = _slicedToArray(_useState9, 2),
695
- searchLoading = _useState10[0],
696
- setSearchLoading = _useState10[1];
738
+ _useState10 = _slicedToArray(_useState9, 2),
739
+ searchLoading = _useState10[0],
740
+ setSearchLoading = _useState10[1];
741
+
697
742
  var _useState11 = React.useState({
698
- brands: [],
699
- products: []
700
- }),
701
- _useState12 = _slicedToArray(_useState11, 2),
702
- searchResults = _useState12[0],
703
- setSearchResults = _useState12[1];
743
+ brands: [],
744
+ products: []
745
+ }),
746
+ _useState12 = _slicedToArray(_useState11, 2),
747
+ searchResults = _useState12[0],
748
+ setSearchResults = _useState12[1];
749
+
704
750
  var searchResultsRef = React.useRef(null);
751
+
705
752
  var debounce = function debounce(func, wait) {
706
753
  var timeout;
707
754
  return function executedFunction() {
708
755
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
709
756
  args[_key] = arguments[_key];
710
757
  }
758
+
711
759
  var later = function later() {
712
760
  clearTimeout(timeout);
713
761
  func.apply(void 0, args);
714
762
  };
763
+
715
764
  clearTimeout(timeout);
716
765
  timeout = setTimeout(later, wait);
717
766
  };
718
767
  };
768
+
719
769
  var debouncedSearch = React.useCallback(debounce(function (nextValue) {
770
+ var isKeyDown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
720
771
  setSearchLoading(true);
721
772
  axios.post(endpoint, searchProducts(nextValue, 6)).then(function (response) {
722
773
  setSearchResults(response.data.data.luxity_products_serach_results);
723
774
  var ids = response.data.data.luxity_products_serach_results.luxity_product_ids;
724
775
  onProductIdsReceived(ids);
776
+
777
+ if (isKeyDown) {
778
+ // reset the search results on keydown
779
+ setSearchResults({
780
+ brands: [],
781
+ products: []
782
+ });
783
+ onSearchSubmit(nextValue);
784
+ }
785
+
725
786
  setSearchLoading(false);
726
787
  }).catch(function () {
727
788
  setSearchLoading(false);
728
789
  });
729
790
  }, 500), [endpoint]);
791
+
730
792
  var handleChange = function handleChange(event) {
731
793
  var value = event.target.value;
732
794
  setSearchValue(value);
795
+
733
796
  if (value.trim().length >= 3) {
734
797
  debouncedSearch(value);
735
798
  } else {
@@ -739,25 +802,28 @@
739
802
  });
740
803
  }
741
804
  };
805
+
742
806
  React.useEffect(function () {
743
807
  var handleClickOutside = function handleClickOutside(event) {
744
808
  if (searchResultsRef.current && !searchResultsRef.current.contains(event.target)) {
745
809
  setSearchValue('');
746
810
  }
747
811
  };
812
+
748
813
  document.addEventListener('mousedown', handleClickOutside);
749
814
  return function () {
750
815
  document.removeEventListener('mousedown', handleClickOutside);
751
816
  };
752
817
  }, []);
818
+
753
819
  var handleKeyDown = function handleKeyDown(event) {
754
820
  if (event.key === 'Enter') {
755
- onSearchSubmit(searchValue);
756
- setSearchValue('');
821
+ debouncedSearch(searchValue, true);
757
822
  } else if (event.key === 'Escape') {
758
823
  setSearchValue('');
759
824
  }
760
825
  };
826
+
761
827
  function addCategoryToElements(elements, categoryName) {
762
828
  return elements.map(function (element) {
763
829
  return _objectSpread2(_objectSpread2({}, element), {}, {
@@ -765,6 +831,7 @@
765
831
  });
766
832
  });
767
833
  }
834
+
768
835
  React.useMemo(function () {
769
836
  setLoading(true);
770
837
  axios.get("".concat(menuData)).then(function (_ref2) {