@bonlineza/luxity-lib 2.34.7 → 2.34.9

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.
@@ -282,6 +282,7 @@
282
282
  _ref$brandElements = _ref.brandElements,
283
283
  brandElements = _ref$brandElements === void 0 ? [] : _ref$brandElements,
284
284
  productsUrl = _ref.productsUrl,
285
+ LinkComponent = _ref.LinkComponent,
285
286
  categorySlug = _ref.categorySlug,
286
287
  categoryTitle = _ref.categoryTitle,
287
288
  isLoading = _ref.isLoading,
@@ -300,12 +301,12 @@
300
301
  }, title), /*#__PURE__*/React__default.createElement("div", {
301
302
  className: "dropdown__elements dropdown__elements--column"
302
303
  }, !!categoryElements.length && categoryElements.map(function (categoryElement) {
303
- return categoryElement.category ? /*#__PURE__*/React__default.createElement("a", {
304
+ return categoryElement.category ? /*#__PURE__*/React__default.createElement(LinkComponent, {
304
305
  href: "".concat(productsUrl, "/").concat(categoryElement.category, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
305
306
  className: "dropdown__element",
306
307
  key: categoryElement.name,
307
308
  onClick: onMenuItemClick
308
- }, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase()) : /*#__PURE__*/React__default.createElement("a", {
309
+ }, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase()) : /*#__PURE__*/React__default.createElement(LinkComponent, {
309
310
  href: "".concat(productsUrl, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
310
311
  className: "dropdown__element",
311
312
  key: categoryElement.name,
@@ -319,14 +320,14 @@
319
320
  className: "dropdown__brand-elements"
320
321
  }, /*#__PURE__*/React__default.createElement("div", {
321
322
  className: "dropdown__brand-element"
322
- }, /*#__PURE__*/React__default.createElement("a", {
323
+ }, /*#__PURE__*/React__default.createElement(LinkComponent, {
323
324
  href: "".concat(productsUrl, "/").concat(categorySlug),
324
325
  className: "dropdown__element",
325
326
  onClick: onMenuItemClick
326
327
  }, "All ", categoryTitle)), !!brandElements.length && brandElements.map(function (brand) {
327
328
  return /*#__PURE__*/React__default.createElement("div", {
328
329
  className: "dropdown__brand-element"
329
- }, /*#__PURE__*/React__default.createElement("a", {
330
+ }, /*#__PURE__*/React__default.createElement(LinkComponent, {
330
331
  href: "".concat(productsUrl, "/").concat(categorySlug, "/").concat(brand === null || brand === void 0 ? void 0 : brand.slug),
331
332
  className: "dropdown__element",
332
333
  key: brand.name,
@@ -346,6 +347,7 @@
346
347
  categoryElements = _ref.categoryElements,
347
348
  brandElements = _ref.brandElements,
348
349
  productsUrl = _ref.productsUrl,
350
+ LinkComponent = _ref.LinkComponent,
349
351
  categorySlug = _ref.categorySlug,
350
352
  categoryTitle = _ref.categoryTitle,
351
353
  isLoading = _ref.isLoading,
@@ -368,7 +370,7 @@
368
370
  onMouseLeave: function onMouseLeave() {
369
371
  return setDropdownVisible(false);
370
372
  }
371
- }, /*#__PURE__*/React__default.createElement("a", {
373
+ }, /*#__PURE__*/React__default.createElement(LinkComponent, {
372
374
  href: "".concat(productsUrl, "/").concat(categorySlug),
373
375
  className: "navbar__link-item navbar__link-item--desktop",
374
376
  onClick: handleMenuItemClick
@@ -384,7 +386,8 @@
384
386
  categoryTitle: categoryTitle,
385
387
  isLoading: isLoading,
386
388
  hasError: hasError,
387
- onMenuItemClick: handleMenuItemClick
389
+ onMenuItemClick: handleMenuItemClick,
390
+ LinkComponent: LinkComponent
388
391
  })));
389
392
  };
390
393
 
@@ -734,6 +737,7 @@
734
737
  stores = _ref.stores,
735
738
  contactNumber = _ref.contactNumber,
736
739
  productsUrl = _ref.productsUrl,
740
+ LinkComponent = _ref.LinkComponent,
737
741
  onInterestClick = _ref.onInterestClick,
738
742
  onCartClick = _ref.onCartClick,
739
743
  onAccountClick = _ref.onAccountClick,
@@ -820,27 +824,24 @@
820
824
  };
821
825
 
822
826
  var debouncedSearch = React.useCallback(debounce(function (nextValue) {
823
- var isKeyDown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
824
827
  setSearchLoading(true);
825
828
  axios.post(endpoint, searchProducts(nextValue, 6)).then(function (response) {
826
829
  setSearchResults(response.data.data.luxity_products_serach_results);
827
830
  var ids = response.data.data.luxity_products_serach_results.luxity_product_ids;
828
831
  onProductIdsReceived(ids);
829
-
830
- if (isKeyDown) {
831
- // reset the search results on keydown
832
- setSearchResults({
833
- brands: [],
834
- products: []
835
- });
836
- onSearchSubmit(nextValue);
837
- }
838
-
839
832
  setSearchLoading(false);
840
833
  }).catch(function () {
841
834
  setSearchLoading(false);
842
835
  });
843
836
  }, 500), [endpoint]);
837
+ var immediateSearch = React.useCallback(function (value) {
838
+ setSearchValue('');
839
+ setSearchResults({
840
+ brands: [],
841
+ products: []
842
+ });
843
+ onSearchSubmit(value);
844
+ }, [onSearchSubmit]);
844
845
 
845
846
  var handleChange = function handleChange(event) {
846
847
  var value = event.target.value;
@@ -871,7 +872,11 @@
871
872
 
872
873
  var handleKeyDown = function handleKeyDown(event) {
873
874
  if (event.key === 'Enter') {
874
- debouncedSearch(searchValue, true);
875
+ event.preventDefault();
876
+
877
+ if (searchValue.trim().length >= 3) {
878
+ immediateSearch(searchValue);
879
+ }
875
880
  } else if (event.key === 'Escape') {
876
881
  setSearchValue('');
877
882
  }
@@ -906,6 +911,13 @@
906
911
  return setHasError(true);
907
912
  });
908
913
  }, [menuData]);
914
+
915
+ var getMarginRight = function getMarginRight(userIsVip, userName) {
916
+ if (userIsVip) return '15px';
917
+ if (userName) return '5px';
918
+ return '18px';
919
+ };
920
+
909
921
  return /*#__PURE__*/React__default.createElement("div", {
910
922
  className: "navbar"
911
923
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -964,7 +976,8 @@
964
976
  categorySlug: "brands",
965
977
  categoryTitle: "Brands",
966
978
  isLoading: loading,
967
- hasError: hasError
979
+ hasError: hasError,
980
+ LinkComponent: LinkComponent
968
981
  }), /*#__PURE__*/React__default.createElement(DropdownLink, {
969
982
  title: "Bags",
970
983
  imageSrc: bagsImage,
@@ -974,7 +987,8 @@
974
987
  categorySlug: categories.bags.slug,
975
988
  categoryTitle: categories.bags.name,
976
989
  isLoading: loading,
977
- hasError: hasError
990
+ hasError: hasError,
991
+ LinkComponent: LinkComponent
978
992
  }), /*#__PURE__*/React__default.createElement(DropdownLink, {
979
993
  title: "Shoes",
980
994
  imageSrc: shoesImage,
@@ -984,7 +998,8 @@
984
998
  categorySlug: categories.shoes.slug,
985
999
  categoryTitle: categories.shoes.name,
986
1000
  isLoading: loading,
987
- hasError: hasError
1001
+ hasError: hasError,
1002
+ LinkComponent: LinkComponent
988
1003
  }), /*#__PURE__*/React__default.createElement(DropdownLink, {
989
1004
  title: "Clothing",
990
1005
  imageSrc: clothingImage,
@@ -994,7 +1009,8 @@
994
1009
  categorySlug: categories.clothing.slug,
995
1010
  categoryTitle: categories.clothing.name,
996
1011
  isLoading: loading,
997
- hasError: hasError
1012
+ hasError: hasError,
1013
+ LinkComponent: LinkComponent
998
1014
  }), /*#__PURE__*/React__default.createElement(DropdownLink, {
999
1015
  title: "Accessories",
1000
1016
  imageSrc: accessoriesImage,
@@ -1004,7 +1020,8 @@
1004
1020
  categorySlug: categories.accessories.slug,
1005
1021
  categoryTitle: categories.accessories.name,
1006
1022
  isLoading: loading,
1007
- hasError: hasError
1023
+ hasError: hasError,
1024
+ LinkComponent: LinkComponent
1008
1025
  }), /*#__PURE__*/React__default.createElement(DropdownLink, {
1009
1026
  title: "Watches",
1010
1027
  imageSrc: watchesImage,
@@ -1014,10 +1031,11 @@
1014
1031
  categorySlug: categories.watches.slug,
1015
1032
  categoryTitle: categories.watches.name,
1016
1033
  isLoading: loading,
1017
- hasError: hasError
1034
+ hasError: hasError,
1035
+ LinkComponent: LinkComponent
1018
1036
  }), /*#__PURE__*/React__default.createElement("li", {
1019
1037
  className: "navbar__link"
1020
- }, /*#__PURE__*/React__default.createElement("a", {
1038
+ }, /*#__PURE__*/React__default.createElement(LinkComponent, {
1021
1039
  href: contactUsLink,
1022
1040
  className: "navbar__link-item navbar__link-item--desktop"
1023
1041
  }, "Stores"), /*#__PURE__*/React__default.createElement("div", {
@@ -1038,7 +1056,10 @@
1038
1056
  }), shop && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("button", {
1039
1057
  type: "button",
1040
1058
  className: "navbar__icon relative flex",
1041
- onClick: onAccountClick
1059
+ onClick: onAccountClick,
1060
+ style: {
1061
+ marginRight: getMarginRight(isVip, name)
1062
+ }
1042
1063
  }, /*#__PURE__*/React__default.createElement("img", {
1043
1064
  src: accountIcon,
1044
1065
  alt: "account-icon",
@@ -1080,12 +1101,12 @@
1080
1101
  className: "navbar__nav-links"
1081
1102
  }, /*#__PURE__*/React__default.createElement("li", {
1082
1103
  className: "navbar__company-link"
1083
- }, /*#__PURE__*/React__default.createElement("a", {
1104
+ }, /*#__PURE__*/React__default.createElement(LinkComponent, {
1084
1105
  href: ourStoryLink,
1085
1106
  className: "navbar__link-item"
1086
1107
  }, "Our Story")), /*#__PURE__*/React__default.createElement("li", {
1087
1108
  className: "navbar__company-link"
1088
- }, /*#__PURE__*/React__default.createElement("a", {
1109
+ }, /*#__PURE__*/React__default.createElement(LinkComponent, {
1089
1110
  href: contactUsLink,
1090
1111
  className: "navbar__link-item"
1091
1112
  }, "Contact Us")), /*#__PURE__*/React__default.createElement("li", {
@@ -503,7 +503,8 @@
503
503
  brandsList = _ref$brandsList === void 0 ? [] : _ref$brandsList,
504
504
  categorySlug = _ref.categorySlug,
505
505
  isLoading = _ref.isLoading,
506
- hasError = _ref.hasError;
506
+ hasError = _ref.hasError,
507
+ LinkComponent = _ref.LinkComponent;
507
508
 
508
509
  var handleLinkClick = function handleLinkClick(event) {
509
510
  event.preventDefault();
@@ -538,12 +539,12 @@
538
539
  }, subMenuCategoryTitle), /*#__PURE__*/React__default.createElement("div", {
539
540
  className: "side-nav__elements"
540
541
  }, categoryElements.map(function (categoryElement) {
541
- return categoryElement.category ? /*#__PURE__*/React__default.createElement("a", {
542
+ return categoryElement.category ? /*#__PURE__*/React__default.createElement(LinkComponent, {
542
543
  href: "".concat(productUrl, "/").concat(categoryElement.category, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
543
544
  onClick: handleLinkClick,
544
545
  className: "dropdown__element",
545
546
  key: categoryElement.name
546
- }, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase()) : /*#__PURE__*/React__default.createElement("a", {
547
+ }, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase()) : /*#__PURE__*/React__default.createElement(LinkComponent, {
547
548
  href: "".concat(productUrl, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
548
549
  onClick: handleLinkClick,
549
550
  className: "dropdown__element",
@@ -553,12 +554,12 @@
553
554
  className: "side-nav__elements"
554
555
  }, /*#__PURE__*/React__default.createElement("div", {
555
556
  className: "side-nav__sub-menu-title"
556
- }, subMenuBrandsTitle), /*#__PURE__*/React__default.createElement("a", {
557
+ }, subMenuBrandsTitle), /*#__PURE__*/React__default.createElement(LinkComponent, {
557
558
  href: "".concat(productUrl, "/").concat(categorySlug === 'new' ? 'brands' : categorySlug),
558
559
  onClick: handleLinkClick,
559
560
  className: "side-nav__element"
560
561
  }, "All Brands"), !!brandsList.length && brandsList.map(function (brand) {
561
- return /*#__PURE__*/React__default.createElement("a", {
562
+ return /*#__PURE__*/React__default.createElement(LinkComponent, {
562
563
  href: "".concat(productUrl, "/").concat(categorySlug === 'new' ? 'brands' : categorySlug, "/").concat(brand.slug),
563
564
  onClick: handleLinkClick,
564
565
  className: "side-nav__element"
@@ -820,7 +821,8 @@
820
821
  currencyOptions = _ref.currencyOptions,
821
822
  onCurrencyChange = _ref.onCurrencyChange,
822
823
  isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
823
- tooltipContent = _ref.tooltipContent;
824
+ tooltipContent = _ref.tooltipContent,
825
+ LinkComponent = _ref.LinkComponent;
824
826
 
825
827
  var _useState = React.useState(false),
826
828
  _useState2 = _slicedToArray(_useState, 2),
@@ -1082,7 +1084,8 @@
1082
1084
  categorySlug: displayedSubMenu,
1083
1085
  isLoading: loading,
1084
1086
  hasError: hasError,
1085
- onCloseSideNav: onCloseSideNav
1087
+ onCloseSideNav: onCloseSideNav,
1088
+ LinkComponent: LinkComponent
1086
1089
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
1087
1090
  subMenuOpen: subMenuOpen && displayedSubMenu === 'bags',
1088
1091
  onBackClick: onBackClick,
@@ -1095,7 +1098,8 @@
1095
1098
  categorySlug: displayedSubMenu,
1096
1099
  isLoading: loading,
1097
1100
  hasError: hasError,
1098
- onCloseSideNav: onCloseSideNav
1101
+ onCloseSideNav: onCloseSideNav,
1102
+ LinkComponent: LinkComponent
1099
1103
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
1100
1104
  subMenuOpen: subMenuOpen && displayedSubMenu === 'shoes',
1101
1105
  onBackClick: onBackClick,
@@ -1108,7 +1112,8 @@
1108
1112
  categorySlug: displayedSubMenu,
1109
1113
  isLoading: loading,
1110
1114
  hasError: hasError,
1111
- onCloseSideNav: onCloseSideNav
1115
+ onCloseSideNav: onCloseSideNav,
1116
+ LinkComponent: LinkComponent
1112
1117
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
1113
1118
  subMenuOpen: subMenuOpen && displayedSubMenu === 'apparel',
1114
1119
  onBackClick: onBackClick,
@@ -1121,7 +1126,8 @@
1121
1126
  categorySlug: displayedSubMenu,
1122
1127
  isLoading: loading,
1123
1128
  hasError: hasError,
1124
- onCloseSideNav: onCloseSideNav
1129
+ onCloseSideNav: onCloseSideNav,
1130
+ LinkComponent: LinkComponent
1125
1131
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
1126
1132
  subMenuOpen: subMenuOpen && displayedSubMenu === 'accessories',
1127
1133
  onBackClick: onBackClick,
@@ -1134,7 +1140,8 @@
1134
1140
  categorySlug: displayedSubMenu,
1135
1141
  isLoading: loading,
1136
1142
  hasError: hasError,
1137
- onCloseSideNav: onCloseSideNav
1143
+ onCloseSideNav: onCloseSideNav,
1144
+ LinkComponent: LinkComponent
1138
1145
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
1139
1146
  subMenuOpen: subMenuOpen && displayedSubMenu === 'watches',
1140
1147
  onBackClick: onBackClick,
@@ -1147,7 +1154,8 @@
1147
1154
  categorySlug: displayedSubMenu,
1148
1155
  isLoading: loading,
1149
1156
  hasError: hasError,
1150
- onCloseSideNav: onCloseSideNav
1157
+ onCloseSideNav: onCloseSideNav,
1158
+ LinkComponent: LinkComponent
1151
1159
  }), displayedSubMenu === 'stores' && /*#__PURE__*/React__default.createElement("div", {
1152
1160
  className: "side-nav__content"
1153
1161
  }, /*#__PURE__*/React__default.createElement(StoresDropdown, {
@@ -1265,6 +1273,7 @@
1265
1273
  onCurrencyChange = _ref.onCurrencyChange,
1266
1274
  isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
1267
1275
  tooltipContent = _ref.tooltipContent,
1276
+ LinkComponent = _ref.LinkComponent,
1268
1277
  shop = _ref.shop,
1269
1278
  app = _ref.app;
1270
1279
 
@@ -1314,27 +1323,24 @@
1314
1323
  };
1315
1324
 
1316
1325
  var debouncedSearch = React.useCallback(debounce(function (nextValue) {
1317
- var isKeyDown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1318
1326
  setSearchLoading(true);
1319
1327
  axios.post(endpoint, searchProducts(nextValue, 6)).then(function (response) {
1320
1328
  setSearchResults(response.data.data.luxity_products_serach_results);
1321
1329
  var ids = response.data.data.luxity_products_serach_results.luxity_product_ids;
1322
1330
  onProductIdsReceived(ids);
1323
-
1324
- if (isKeyDown) {
1325
- // reset the search results on keydown
1326
- setSearchResults({
1327
- brands: [],
1328
- products: []
1329
- });
1330
- onSearchSubmit(nextValue);
1331
- }
1332
-
1333
1331
  setSearchLoading(false);
1334
1332
  }).catch(function () {
1335
1333
  setSearchLoading(false);
1336
1334
  });
1337
1335
  }, 500), [endpoint]);
1336
+ var immediateSearch = React.useCallback(function (value) {
1337
+ setSearchValue('');
1338
+ setSearchResults({
1339
+ brands: [],
1340
+ products: []
1341
+ });
1342
+ onSearchSubmit(value);
1343
+ }, [onSearchSubmit]);
1338
1344
 
1339
1345
  var handleChange = function handleChange(event) {
1340
1346
  var value = event.target.value;
@@ -1352,7 +1358,11 @@
1352
1358
 
1353
1359
  var handleKeyDown = function handleKeyDown(event) {
1354
1360
  if (event.key === 'Enter') {
1355
- debouncedSearch(searchValue, true);
1361
+ event.preventDefault();
1362
+
1363
+ if (searchValue.trim().length >= 3) {
1364
+ immediateSearch(searchValue);
1365
+ }
1356
1366
  } else if (event.key === 'Escape') {
1357
1367
  setSearchValue('');
1358
1368
  }
@@ -1550,7 +1560,8 @@
1550
1560
  currencyOptions: currencyOptions,
1551
1561
  onCurrencyChange: onCurrencyChange,
1552
1562
  isCurrencySelectionDisabled: isCurrencySelectionDisabled,
1553
- tooltipContent: tooltipContent
1563
+ tooltipContent: tooltipContent,
1564
+ LinkComponent: LinkComponent
1554
1565
  }), app && /*#__PURE__*/React__default.createElement(LuxityAppSideNav, {
1555
1566
  accordionIcon: accordionIcon,
1556
1567
  closeIcon: closeIcon,
package/LuxitySideNav.js CHANGED
@@ -192,7 +192,8 @@
192
192
  brandsList = _ref$brandsList === void 0 ? [] : _ref$brandsList,
193
193
  categorySlug = _ref.categorySlug,
194
194
  isLoading = _ref.isLoading,
195
- hasError = _ref.hasError;
195
+ hasError = _ref.hasError,
196
+ LinkComponent = _ref.LinkComponent;
196
197
 
197
198
  var handleLinkClick = function handleLinkClick(event) {
198
199
  event.preventDefault();
@@ -227,12 +228,12 @@
227
228
  }, subMenuCategoryTitle), /*#__PURE__*/React__default.createElement("div", {
228
229
  className: "side-nav__elements"
229
230
  }, categoryElements.map(function (categoryElement) {
230
- return categoryElement.category ? /*#__PURE__*/React__default.createElement("a", {
231
+ return categoryElement.category ? /*#__PURE__*/React__default.createElement(LinkComponent, {
231
232
  href: "".concat(productUrl, "/").concat(categoryElement.category, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
232
233
  onClick: handleLinkClick,
233
234
  className: "dropdown__element",
234
235
  key: categoryElement.name
235
- }, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase()) : /*#__PURE__*/React__default.createElement("a", {
236
+ }, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase()) : /*#__PURE__*/React__default.createElement(LinkComponent, {
236
237
  href: "".concat(productUrl, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
237
238
  onClick: handleLinkClick,
238
239
  className: "dropdown__element",
@@ -242,12 +243,12 @@
242
243
  className: "side-nav__elements"
243
244
  }, /*#__PURE__*/React__default.createElement("div", {
244
245
  className: "side-nav__sub-menu-title"
245
- }, subMenuBrandsTitle), /*#__PURE__*/React__default.createElement("a", {
246
+ }, subMenuBrandsTitle), /*#__PURE__*/React__default.createElement(LinkComponent, {
246
247
  href: "".concat(productUrl, "/").concat(categorySlug === 'new' ? 'brands' : categorySlug),
247
248
  onClick: handleLinkClick,
248
249
  className: "side-nav__element"
249
250
  }, "All Brands"), !!brandsList.length && brandsList.map(function (brand) {
250
- return /*#__PURE__*/React__default.createElement("a", {
251
+ return /*#__PURE__*/React__default.createElement(LinkComponent, {
251
252
  href: "".concat(productUrl, "/").concat(categorySlug === 'new' ? 'brands' : categorySlug, "/").concat(brand.slug),
252
253
  onClick: handleLinkClick,
253
254
  className: "side-nav__element"
@@ -509,7 +510,8 @@
509
510
  currencyOptions = _ref.currencyOptions,
510
511
  onCurrencyChange = _ref.onCurrencyChange,
511
512
  isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
512
- tooltipContent = _ref.tooltipContent;
513
+ tooltipContent = _ref.tooltipContent,
514
+ LinkComponent = _ref.LinkComponent;
513
515
 
514
516
  var _useState = React.useState(false),
515
517
  _useState2 = _slicedToArray(_useState, 2),
@@ -771,7 +773,8 @@
771
773
  categorySlug: displayedSubMenu,
772
774
  isLoading: loading,
773
775
  hasError: hasError,
774
- onCloseSideNav: onCloseSideNav
776
+ onCloseSideNav: onCloseSideNav,
777
+ LinkComponent: LinkComponent
775
778
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
776
779
  subMenuOpen: subMenuOpen && displayedSubMenu === 'bags',
777
780
  onBackClick: onBackClick,
@@ -784,7 +787,8 @@
784
787
  categorySlug: displayedSubMenu,
785
788
  isLoading: loading,
786
789
  hasError: hasError,
787
- onCloseSideNav: onCloseSideNav
790
+ onCloseSideNav: onCloseSideNav,
791
+ LinkComponent: LinkComponent
788
792
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
789
793
  subMenuOpen: subMenuOpen && displayedSubMenu === 'shoes',
790
794
  onBackClick: onBackClick,
@@ -797,7 +801,8 @@
797
801
  categorySlug: displayedSubMenu,
798
802
  isLoading: loading,
799
803
  hasError: hasError,
800
- onCloseSideNav: onCloseSideNav
804
+ onCloseSideNav: onCloseSideNav,
805
+ LinkComponent: LinkComponent
801
806
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
802
807
  subMenuOpen: subMenuOpen && displayedSubMenu === 'apparel',
803
808
  onBackClick: onBackClick,
@@ -810,7 +815,8 @@
810
815
  categorySlug: displayedSubMenu,
811
816
  isLoading: loading,
812
817
  hasError: hasError,
813
- onCloseSideNav: onCloseSideNav
818
+ onCloseSideNav: onCloseSideNav,
819
+ LinkComponent: LinkComponent
814
820
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
815
821
  subMenuOpen: subMenuOpen && displayedSubMenu === 'accessories',
816
822
  onBackClick: onBackClick,
@@ -823,7 +829,8 @@
823
829
  categorySlug: displayedSubMenu,
824
830
  isLoading: loading,
825
831
  hasError: hasError,
826
- onCloseSideNav: onCloseSideNav
832
+ onCloseSideNav: onCloseSideNav,
833
+ LinkComponent: LinkComponent
827
834
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
828
835
  subMenuOpen: subMenuOpen && displayedSubMenu === 'watches',
829
836
  onBackClick: onBackClick,
@@ -836,7 +843,8 @@
836
843
  categorySlug: displayedSubMenu,
837
844
  isLoading: loading,
838
845
  hasError: hasError,
839
- onCloseSideNav: onCloseSideNav
846
+ onCloseSideNav: onCloseSideNav,
847
+ LinkComponent: LinkComponent
840
848
  }), displayedSubMenu === 'stores' && /*#__PURE__*/React__default.createElement("div", {
841
849
  className: "side-nav__content"
842
850
  }, /*#__PURE__*/React__default.createElement(StoresDropdown, {
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var ReactSelectWrapper_1 = __importDefault(require("../ReactSelectWrapper"));
8
+ var responseTransform = function (countryData) {
9
+ return countryData.map(function (item) { return ({
10
+ label: "".concat(item.code, " (+").concat(item.dial_code, ")"),
11
+ value: item.code,
12
+ }); });
13
+ };
14
+ var CountryCodeSelect = function (_a) {
15
+ var _b = _a.countryData, countryData = _b === void 0 ? [] : _b, className = _a.className, classNamePrefix = _a.classNamePrefix, _c = _a.defaultCountryCode, defaultCountryCode = _c === void 0 ? 'ZA' : _c, _d = _a.onChange, onChange = _d === void 0 ? function () { return null; } : _d, _e = _a.isSearchable, isSearchable = _e === void 0 ? true : _e, _f = _a.name, name = _f === void 0 ? 'country_code' : _f, _g = _a.renderNoData, renderNoData = _g === void 0 ? function () { return 'Loading...'; } : _g;
16
+ return (react_1.default.createElement(react_1.default.Fragment, null, countryData && countryData.length ? (react_1.default.createElement(ReactSelectWrapper_1.default, { name: name, className: className, classNamePrefix: classNamePrefix, options: responseTransform(countryData), defaultValue: responseTransform(countryData.filter(function (item) { return item.code === defaultCountryCode; })), onChange: onChange, isSearchable: isSearchable })) : (renderNoData())));
17
+ };
18
+ exports.default = CountryCodeSelect;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ var react_1 = __importDefault(require("react"));
29
+ var react_select_1 = __importDefault(require("react-select"));
30
+ var ReactSelectWrapper = function (_a) {
31
+ var _b = _a.isMulti, isMulti = _b === void 0 ? false : _b, _c = _a.isSearchable, isSearchable = _c === void 0 ? false : _c, _d = _a.components, components = _d === void 0 ? { IndicatorSeparator: function () { return null; } } : _d, _e = _a.options, options = _e === void 0 ? [] : _e, _f = _a.className, className = _f === void 0 ? 'dropdown-select-container' : _f, _g = _a.classNamePrefix, classNamePrefix = _g === void 0 ? 'dropdown-select' : _g, _h = _a.onChange, onChange = _h === void 0 ? function () { return null; } : _h, name = _a.name, _j = _a.noOptionsMessage, noOptionsMessage = _j === void 0 ? function () { return 'No Options'; } : _j, rest = __rest(_a, ["isMulti", "isSearchable", "components", "options", "className", "classNamePrefix", "onChange", "name", "noOptionsMessage"]);
32
+ return (react_1.default.createElement(react_select_1.default, __assign({ isMulti: isMulti, isSearchable: isSearchable, components: components, options: options, className: className, classNamePrefix: classNamePrefix, onChange: onChange, name: name, noOptionsMessage: noOptionsMessage }, rest)));
33
+ };
34
+ exports.default = ReactSelectWrapper;
package/build/bundle.css CHANGED
@@ -1 +1 @@
1
- .navbar{box-shadow:2px 2px 10px #dfdede;display:flex;padding-bottom:10px;padding-top:20px;position:relative}.navbar__link-item--desktop{align-items:center;display:flex;height:35px;margin:auto 0;padding-top:5px}.navbar__mobile-wrapper{align-items:center;display:flex;flex-direction:column;padding-bottom:20px;padding-left:32px;padding-right:32px}.navbar__container{display:flex;margin:0 auto;max-width:1280px;padding-left:12px;padding-right:12px;width:100%}.navbar__body{flex-basis:60%}.navbar__wrapper{align-items:center;display:flex;justify-content:space-between;width:100%}.navbar__product-search-wrapper{align-items:center;display:flex;justify-content:center;padding:0 20%;width:100%}@media only screen and (max-width:879px){.navbar__product-search-wrapper{padding:0}}.navbar__input-close-icon{height:auto;margin-bottom:10px;margin-left:10px;width:20px}@media only screen and (max-width:879px){.navbar__input-close-icon{margin-bottom:0;margin-left:0;width:15px}}.navbar__menu-icon{width:30px}.navbar__product-search{align-items:center;display:flex;max-width:545px;width:100%}.navbar__logo-wrapper{margin-right:18px;width:200px}.navbar__logo{width:200px}@media only screen and (max-width:879px){.navbar__logo{margin-left:10px;margin-top:5px;width:125px}}.navbar__form-input{align-items:center;background:transparent;border:none;display:flex;font-size:13px;outline:none;padding:8px;width:100%}.navbar__product-search{border:1px solid #dfdede;margin-bottom:10px}@media only screen and (max-width:879px){.navbar__product-search{border:none;border-bottom:1px solid #dfdede;margin-bottom:0;margin-right:10px;margin-top:10px}}.navbar__section{align-items:flex-start;display:flex;flex-direction:row;justify-content:space-between;width:100%}.navbar__link{display:inline-block;font-family:Martel Sans;font-size:14px;font-weight:700;margin-right:10px;overflow:hidden;text-transform:uppercase;transition:.3s ease-in-out}.navbar__link:after{background-color:#000;content:"";display:block;height:2px;transition:width .25s ease-out;width:0}.navbar__link:hover:after{width:100%}.navbar__link:hover .navbar__dropdown{animation:fadeInDropdown .3s ease-in-out;display:block}.navbar__dropdown{background-color:#fff;box-shadow:5px 5px 5px #dfdede;display:none;left:0;position:absolute;width:100%;z-index:999}@keyframes fadeInDropdown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.navbar__company-link{font-size:13px;font-weight:400;list-style:none;margin-left:18px;text-decoration:none}.navbar__company-block{align-items:center;background-color:#000;color:#fff;display:flex;font-weight:700;height:33px;justify-content:center;margin-right:0;padding:0 18px;text-transform:uppercase}.navbar__input-search-icon{height:auto;margin-left:1.125rem;margin-right:.375rem;width:15px}.navbar__nav-links{align-items:center;display:flex}.navbar__nav-links--wrap{flex-wrap:wrap}.navbar__icons{align-items:center;display:flex;height:40px;justify-content:flex-end;margin-bottom:10px}@media only screen and (max-width:879px){.navbar__icons{display:block;height:20px;margin-bottom:0}}.navbar__icon{cursor:pointer;height:auto;margin-right:18px;width:20px}@media only screen and (max-width:879px){.navbar__icon{margin-right:0}}.navbar__icon--app{cursor:pointer;height:auto;margin-left:12px;width:20px}@media only screen and (max-width:879px){.navbar__icon--app{margin-right:0}}.navbar__vip-icon{height:16px;position:absolute;right:-12px;top:-4px;width:16px}.navbar__cart-icon{position:relative}.navbar__cart-count{align-items:center;background-color:#000;border-radius:50%;bottom:50%;color:#fff;display:flex;font-size:13px;height:20px;justify-content:center;left:100%;position:absolute;width:20px}.footer__newsletter-section{align-items:center;background-color:#000;color:#fff;display:flex;justify-content:space-between;padding:2.265rem 0}@media only screen and (max-width:879px){.footer__newsletter-section{flex-direction:column}}.footer__newsletter-wrapper{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1280px;padding-left:32px;padding-right:32px;width:100%}@media only screen and (max-width:879px){.footer__newsletter-wrapper{flex-direction:column}.footer__link-container{flex-basis:50%}}.footer__newsletter-icon{height:30px;position:absolute;right:0;top:0;width:32px}.footer__newsletter-form{flex-basis:50%;max-width:250px;position:relative}@media only screen and (max-width:879px){.footer__newsletter-form{display:block;margin-top:20px;max-width:100%;width:100%}}.footer__newsletter-title{font-family:Martel Sans,sans-serif;font-size:14px;font-weight:700;letter-spacing:3px;margin-bottom:1.125rem;text-transform:uppercase}.footer__newsletter-text{font-size:14px}.footer__form-input{background-color:#000;border:none;border-bottom:1px solid #fff;color:#fff;height:30px;outline:none;width:100%}.footer__form-input::-moz-placeholder{color:#fff;font-weight:400}.footer__form-input::placeholder{color:#fff;font-weight:400}.footer__form-errors{color:#fff;margin-top:5px}.footer__main-section{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:50px;margin-top:80px}.footer__link-title{font-family:El Messiri;font-size:16px;font-weight:700;margin-bottom:20px;text-transform:uppercase}@media only screen and (max-width:879px){.footer__link-title{margin-bottom:10px}}.footer__link-child{margin-top:25px}.footer__links{display:flex;flex-direction:column}.footer__link{color:#939393;cursor:pointer;font-family:Martel Sans;font-size:14px;line-height:20px;margin-bottom:7px;text-align:left;text-decoration:none}.footer__link:hover{color:#000;text-decoration:underline}@media only screen and (max-width:879px){.footer__link{margin-bottom:10px}}.footer__link-wrapper{align-items:center;display:flex;gap:5px}.footer__link-icon{height:30px;margin-bottom:18px}.footer__text{color:#939393;font-family:Martel Sans;font-size:14px;line-height:20px;margin-bottom:15px;text-align:left;text-decoration:none}.footer__store-hours{margin-top:35px}.footer__copyrights-section{border-top:1px solid;display:flex;justify-content:space-between;padding-bottom:20px;padding-top:20px}.footer__logo{height:30px;width:135px}.footer__payment-icons{align-items:center;display:flex;gap:8px}.footer__wrapper{margin:0 auto;max-width:1280px;padding-left:32px;padding-right:32px;width:100%}@media only screen and (max-width:879px){.footer__wrapper{padding:32px 0 0 24px}}.footer__wrapper--desktop{display:block}@media only screen and (max-width:879px){.footer__wrapper--desktop{display:none}}.footer__wrapper--mobile{display:none}@media only screen and (max-width:879px){.footer__wrapper--mobile{display:block;padding-top:30px}}.footer__copyright{font-size:10px;line-height:22px}.footer__copyright--mobile{display:none}@media only screen and (max-width:879px){.footer__copyright--mobile{display:block;padding:30px 10px 30px 0;text-align:center}}.footer__section-row{display:flex;gap:50%}@media only screen and (max-width:879px){.footer__section-row{gap:unset}}@charset "UTF-8";.currency-select-container{align-items:center;display:flex;margin-right:18px;position:relative}.currency-select-container .currency-flag{margin-right:5px}.currency-select-container .currency-flag img{height:15px;-o-object-fit:cover;object-fit:cover;width:20px}.currency-select-container .currency-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:none;color:#000;cursor:pointer;font-family:inherit;font-size:14px;margin:0;outline:none;padding:5px 15px 5px 5px}.currency-select-container .currency-select::-ms-expand{display:none}.currency-select-container .currency-select:focus{box-shadow:none;outline:none}.currency-select-container .currency-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.currency-select-container:after{color:#000;content:"▼";font-size:10px;pointer-events:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}@media only screen and (max-width:879px){.currency-select-container .currency-select{appearance:menulist;-webkit-appearance:menulist;-moz-appearance:menulist;padding-right:0}.currency-select-container:after{display:none}}.currency-select-container.disabled{cursor:not-allowed;opacity:.7}.currency-select-container.disabled .currency-select{pointer-events:none}.side-nav{font-family:Martel Sans}.side-nav__errors{align-items:center;color:red;display:flex;font-size:16px;justify-content:center}.side-nav__overlay{background-color:rgba(78,73,73,.51);height:100%;opacity:0;position:fixed;top:0;transition:opacity .5s ease-out 0s,visibility .5s ease-out 0s;width:100%;z-index:99999}.side-nav__overlay--visible{opacity:1;visibility:visible}.side-nav__overlay--hidden{opacity:1;visibility:hidden}.side-nav__content{background-color:#fff;bottom:0;overflow-y:scroll;padding:1.5rem;position:fixed;top:0;transition:left .5s ease-in-out;width:80%;z-index:99999}.side-nav__content--hidden{display:none}.side-nav__content--open{left:0}.side-nav__content--closed{left:-100%}.side-nav__menu-title-wrapper{align-items:center;background-color:transparent;border:none;display:flex;justify-content:space-between;outline:none;width:100%}.side-nav__icon-container{float:right;margin-bottom:10px}.side-nav__menu-title{font-size:14px;font-weight:700;line-height:20px;text-transform:uppercase}.side-nav__accordion-icon{height:auto;width:15px}.side-nav__menu-item{margin-bottom:25px}.side-nav__close-icon{height:20px;margin-left:auto;width:20px}.side-nav__back-button-wrapper{align-items:center;display:flex;margin-bottom:25px}.side-nav__back-icon{height:20px;width:20px}.side-nav__back-button,.side-nav__sub-menu-title{font-weight:700;text-transform:uppercase}.side-nav__sub-menu-title{font-size:14px;margin-bottom:10px}.side-nav__elements{display:flex;flex-direction:column}.side-nav__element{color:#555;cursor:pointer;line-height:20px;margin-bottom:10px}.side-nav__element,.side-nav__sub-link{font-size:14px;font-weight:400;text-transform:capitalize}.side-nav__block-button{background-color:#000;color:#fff;font-weight:700;padding:10px 0;width:100%}.side-nav{font-family:Martel Sans}.side-nav__errors{align-items:center;color:red;display:flex;font-size:16px;justify-content:center}.side-nav__overlay{background-color:rgba(78,73,73,.51);height:100%;opacity:0;position:fixed;top:0;transition:opacity .5s ease-out 0s,visibility .5s ease-out 0s;width:100%;z-index:99999}.side-nav__overlay--visible{opacity:1;visibility:visible}.side-nav__overlay--hidden{opacity:1;visibility:hidden}.side-nav__content{background-color:#fff;bottom:0;overflow-y:scroll;padding:1.5rem;position:fixed;top:0;transition:left .5s ease-in-out;width:80%;z-index:99999}.side-nav__content--hidden{display:none}.side-nav__content--open{left:0}.side-nav__content--closed{left:-100%}.side-nav__menu-title-wrapper{align-items:center;background-color:transparent;border:none;display:flex;outline:none;width:100%}.side-nav__icon-container{float:right;margin-bottom:10px}.side-nav__menu-title{align-items:center;display:flex;font-size:14px;font-weight:700;justify-content:center;line-height:20px;text-transform:uppercase}.side-nav__menu-icon{display:flex;height:25px;margin-right:10px;width:25px}.side-nav__menu-divider{margin-bottom:40px}.side-nav__accordion-icon{height:auto;width:15px}.side-nav__menu-item{margin-bottom:25px}.side-nav__close-icon{height:20px;margin-left:auto;width:20px}.side-nav__back-button-wrapper{align-items:center;display:flex;margin-bottom:25px}.side-nav__back-icon{height:20px;width:20px}.side-nav__back-button,.side-nav__sub-menu-title{font-weight:700;text-transform:uppercase}.side-nav__sub-menu-title{font-size:14px;margin-bottom:10px}.side-nav__elements{display:flex;flex-direction:column}.side-nav__element{color:#555;cursor:pointer;line-height:20px;margin-bottom:10px}.side-nav__element,.side-nav__sub-link{font-size:14px;font-weight:400;text-transform:capitalize}.side-nav__block-button{background-color:#000;color:#fff;font-weight:700;padding:10px 0;width:100%}.stores-dropdown{align-items:flex-start;display:flex;font-family:Martel Sans;gap:20px;margin-left:auto;margin-right:auto;max-width:1280px;overflow-x:auto;padding:20px 15px}.stores-dropdown__image{height:200px;-o-object-fit:cover;object-fit:cover;width:100%}.stores-dropdown__store-details{flex-basis:20%}.stores-dropdown__title{font-family:El Messiri}.stores-dropdown__main-title,.stores-dropdown__title{font-size:16px;font-weight:400;letter-spacing:3px;margin-top:20px}.stores-dropdown__main-title{font-weight:700;margin-bottom:10px}.stores-dropdown__open-days{font-size:12px;font-weight:700;line-height:20px}.stores-dropdown__open-hours{font-size:12px;font-weight:400;line-height:20px}.stores-dropdown__queries-title{font-family:El Messiri;font-size:16px;font-weight:400;letter-spacing:3px}.stores-dropdown__contact-details{font-size:16px;font-weight:700}.stores-dropdown__view-more{cursor:pointer;font-size:14px;font-weight:400;margin-top:10px;text-transform:capitalize}.dropdown{display:flex;justify-content:space-between;margin-left:auto;margin-right:auto;max-width:1280px;min-height:500px;overflow-x:auto;padding:20px 0}.dropdown__errors{align-items:center;color:red;display:flex;font-size:16px;justify-content:center;min-height:300px}.dropdown__column{flex:1;padding-left:12px}.dropdown__column:nth-child(2){flex:2}.dropdown__title{font-family:El Messiri;font-size:16px;font-weight:700;letter-spacing:3px;line-height:1;margin-bottom:20px;text-transform:uppercase}.dropdown__elements{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));max-height:800px;overflow-y:auto}.dropdown__brand-elements{-moz-column-count:3;column-count:3;max-height:800px}.dropdown__brand-element{cursor:pointer;margin-bottom:10px}.dropdown__element{flex-basis:33.33%;font-family:Martel Sans;font-size:14px;font-weight:400;margin-bottom:10px;text-transform:capitalize}.cover-spinner{align-items:center;background-color:hsla(0,0%,100%,.7);display:flex;height:100%;justify-content:center;min-height:400px;position:relative;top:50%;width:100%;z-index:9999}.cover-spinner:after{animation:spin 1.5s linear infinite;border:4px dotted #000;border-radius:50%;border-top-color:transparent;content:"";display:block;height:40px;position:absolute;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
1
+ .navbar{box-shadow:2px 2px 10px #dfdede;display:flex;padding-bottom:10px;padding-top:20px;position:relative}.navbar__link-item--desktop{align-items:center;display:flex;height:35px;margin:auto 0;padding-top:5px}.navbar__mobile-wrapper{align-items:center;display:flex;flex-direction:column;padding-bottom:20px;padding-left:32px;padding-right:32px}.navbar__container{display:flex;margin:0 auto;max-width:1280px;padding-left:12px;padding-right:12px;width:100%}.navbar__body{flex-basis:60%}.navbar__wrapper{align-items:center;display:flex;justify-content:space-between;width:100%}.navbar__product-search-wrapper{align-items:center;display:flex;justify-content:center;padding:0 20%;width:100%}@media only screen and (max-width:879px){.navbar__product-search-wrapper{padding:0}}.navbar__input-close-icon{height:auto;margin-bottom:10px;margin-left:10px;width:20px}@media only screen and (max-width:879px){.navbar__input-close-icon{margin-bottom:0;margin-left:0;width:15px}}.navbar__menu-icon{width:30px}.navbar__product-search{align-items:center;display:flex;max-width:545px;width:100%}.navbar__logo-wrapper{margin-right:18px;width:200px}.navbar__logo{width:200px}@media only screen and (max-width:879px){.navbar__logo{margin-left:10px;margin-top:5px;width:125px}}.navbar__form-input{align-items:center;background:transparent;border:none;display:flex;font-size:13px;outline:none;padding:8px;width:100%}.navbar__product-search{border:1px solid #dfdede;margin-bottom:10px}@media only screen and (max-width:879px){.navbar__product-search{border:none;border-bottom:1px solid #dfdede;margin-bottom:0;margin-right:10px;margin-top:10px}}.navbar__section{align-items:flex-start;display:flex;flex-direction:row;justify-content:space-between;width:100%}.navbar__link{display:inline-block;font-family:Martel Sans;font-size:14px;font-weight:700;margin-right:10px;overflow:hidden;text-transform:uppercase;transition:.3s ease-in-out}.navbar__link:after{background-color:#000;content:"";display:block;height:2px;transition:width .25s ease-out;width:0}.navbar__link:hover:after{width:100%}.navbar__link:hover .navbar__dropdown{animation:fadeInDropdown .3s ease-in-out;display:block}.navbar__dropdown{background-color:#fff;box-shadow:5px 5px 5px #dfdede;display:none;left:0;position:absolute;width:100%;z-index:999}@keyframes fadeInDropdown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.navbar__company-link{font-size:13px;font-weight:400;list-style:none;margin-left:18px;text-decoration:none}.navbar__company-block{align-items:center;background-color:#000;color:#fff;display:flex;font-weight:700;height:33px;justify-content:center;margin-right:0;padding:0 18px;text-transform:uppercase}.navbar__input-search-icon{height:auto;margin-left:1.125rem;margin-right:.375rem;width:15px}.navbar__nav-links{align-items:center;display:flex}.navbar__nav-links--wrap{flex-wrap:wrap}.navbar__icons{align-items:center;display:flex;height:40px;justify-content:flex-end;margin-bottom:10px}@media only screen and (max-width:879px){.navbar__icons{display:block;height:20px;margin-bottom:0}}.navbar__icon{cursor:pointer;height:auto;margin-right:18px;width:20px}@media only screen and (max-width:879px){.navbar__icon{margin-right:0}}.navbar__icon--app{cursor:pointer;height:auto;margin-left:12px;width:20px}@media only screen and (max-width:879px){.navbar__icon--app{margin-right:0}}.navbar__vip-icon{height:16px;position:absolute;right:-12px;top:-4px;width:16px}.navbar__cart-icon{position:relative}.navbar__cart-count{align-items:center;background-color:#000;border-radius:50%;bottom:50%;color:#fff;display:flex;font-size:13px;height:20px;justify-content:center;left:100%;position:absolute;width:20px}.side-nav{font-family:Martel Sans}.side-nav__errors{align-items:center;color:red;display:flex;font-size:16px;justify-content:center}.side-nav__overlay{background-color:rgba(78,73,73,.51);height:100%;opacity:0;position:fixed;top:0;transition:opacity .5s ease-out 0s,visibility .5s ease-out 0s;width:100%;z-index:99999}.side-nav__overlay--visible{opacity:1;visibility:visible}.side-nav__overlay--hidden{opacity:1;visibility:hidden}.side-nav__content{background-color:#fff;bottom:0;overflow-y:scroll;padding:1.5rem;position:fixed;top:0;transition:left .5s ease-in-out;width:80%;z-index:99999}.side-nav__content--hidden{display:none}.side-nav__content--open{left:0}.side-nav__content--closed{left:-100%}.side-nav__menu-title-wrapper{align-items:center;background-color:transparent;border:none;display:flex;justify-content:space-between;outline:none;width:100%}.side-nav__icon-container{float:right;margin-bottom:10px}.side-nav__menu-title{font-size:14px;font-weight:700;line-height:20px;text-transform:uppercase}.side-nav__accordion-icon{height:auto;width:15px}.side-nav__menu-item{margin-bottom:25px}.side-nav__close-icon{height:20px;margin-left:auto;width:20px}.side-nav__back-button-wrapper{align-items:center;display:flex;margin-bottom:25px}.side-nav__back-icon{height:20px;width:20px}.side-nav__back-button,.side-nav__sub-menu-title{font-weight:700;text-transform:uppercase}.side-nav__sub-menu-title{font-size:14px;margin-bottom:10px}.side-nav__elements{display:flex;flex-direction:column}.side-nav__element{color:#555;cursor:pointer;line-height:20px;margin-bottom:10px}.side-nav__element,.side-nav__sub-link{font-size:14px;font-weight:400;text-transform:capitalize}.side-nav__block-button{background-color:#000;color:#fff;font-weight:700;padding:10px 0;width:100%}.footer__newsletter-section{align-items:center;background-color:#000;color:#fff;display:flex;justify-content:space-between;padding:2.265rem 0}@media only screen and (max-width:879px){.footer__newsletter-section{flex-direction:column}}.footer__newsletter-wrapper{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1280px;padding-left:32px;padding-right:32px;width:100%}@media only screen and (max-width:879px){.footer__newsletter-wrapper{flex-direction:column}.footer__link-container{flex-basis:50%}}.footer__newsletter-icon{height:30px;position:absolute;right:0;top:0;width:32px}.footer__newsletter-form{flex-basis:50%;max-width:250px;position:relative}@media only screen and (max-width:879px){.footer__newsletter-form{display:block;margin-top:20px;max-width:100%;width:100%}}.footer__newsletter-title{font-family:Martel Sans,sans-serif;font-size:14px;font-weight:700;letter-spacing:3px;margin-bottom:1.125rem;text-transform:uppercase}.footer__newsletter-text{font-size:14px}.footer__form-input{background-color:#000;border:none;border-bottom:1px solid #fff;color:#fff;height:30px;outline:none;width:100%}.footer__form-input::-moz-placeholder{color:#fff;font-weight:400}.footer__form-input::placeholder{color:#fff;font-weight:400}.footer__form-errors{color:#fff;margin-top:5px}.footer__main-section{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:50px;margin-top:80px}.footer__link-title{font-family:El Messiri;font-size:16px;font-weight:700;margin-bottom:20px;text-transform:uppercase}@media only screen and (max-width:879px){.footer__link-title{margin-bottom:10px}}.footer__link-child{margin-top:25px}.footer__links{display:flex;flex-direction:column}.footer__link{color:#939393;cursor:pointer;font-family:Martel Sans;font-size:14px;line-height:20px;margin-bottom:7px;text-align:left;text-decoration:none}.footer__link:hover{color:#000;text-decoration:underline}@media only screen and (max-width:879px){.footer__link{margin-bottom:10px}}.footer__link-wrapper{align-items:center;display:flex;gap:5px}.footer__link-icon{height:30px;margin-bottom:18px}.footer__text{color:#939393;font-family:Martel Sans;font-size:14px;line-height:20px;margin-bottom:15px;text-align:left;text-decoration:none}.footer__store-hours{margin-top:35px}.footer__copyrights-section{border-top:1px solid;display:flex;justify-content:space-between;padding-bottom:20px;padding-top:20px}.footer__logo{height:30px;width:135px}.footer__payment-icons{align-items:center;display:flex;gap:8px}.footer__wrapper{margin:0 auto;max-width:1280px;padding-left:32px;padding-right:32px;width:100%}@media only screen and (max-width:879px){.footer__wrapper{padding:32px 0 0 24px}}.footer__wrapper--desktop{display:block}@media only screen and (max-width:879px){.footer__wrapper--desktop{display:none}}.footer__wrapper--mobile{display:none}@media only screen and (max-width:879px){.footer__wrapper--mobile{display:block;padding-top:30px}}.footer__copyright{font-size:10px;line-height:22px}.footer__copyright--mobile{display:none}@media only screen and (max-width:879px){.footer__copyright--mobile{display:block;padding:30px 10px 30px 0;text-align:center}}.footer__section-row{display:flex;gap:50%}@media only screen and (max-width:879px){.footer__section-row{gap:unset}}.side-nav{font-family:Martel Sans}.side-nav__errors{align-items:center;color:red;display:flex;font-size:16px;justify-content:center}.side-nav__overlay{background-color:rgba(78,73,73,.51);height:100%;opacity:0;position:fixed;top:0;transition:opacity .5s ease-out 0s,visibility .5s ease-out 0s;width:100%;z-index:99999}.side-nav__overlay--visible{opacity:1;visibility:visible}.side-nav__overlay--hidden{opacity:1;visibility:hidden}.side-nav__content{background-color:#fff;bottom:0;overflow-y:scroll;padding:1.5rem;position:fixed;top:0;transition:left .5s ease-in-out;width:80%;z-index:99999}.side-nav__content--hidden{display:none}.side-nav__content--open{left:0}.side-nav__content--closed{left:-100%}.side-nav__menu-title-wrapper{align-items:center;background-color:transparent;border:none;display:flex;outline:none;width:100%}.side-nav__icon-container{float:right;margin-bottom:10px}.side-nav__menu-title{align-items:center;display:flex;font-size:14px;font-weight:700;justify-content:center;line-height:20px;text-transform:uppercase}.side-nav__menu-icon{display:flex;height:25px;margin-right:10px;width:25px}.side-nav__menu-divider{margin-bottom:40px}.side-nav__accordion-icon{height:auto;width:15px}.side-nav__menu-item{margin-bottom:25px}.side-nav__close-icon{height:20px;margin-left:auto;width:20px}.side-nav__back-button-wrapper{align-items:center;display:flex;margin-bottom:25px}.side-nav__back-icon{height:20px;width:20px}.side-nav__back-button,.side-nav__sub-menu-title{font-weight:700;text-transform:uppercase}.side-nav__sub-menu-title{font-size:14px;margin-bottom:10px}.side-nav__elements{display:flex;flex-direction:column}.side-nav__element{color:#555;cursor:pointer;line-height:20px;margin-bottom:10px}.side-nav__element,.side-nav__sub-link{font-size:14px;font-weight:400;text-transform:capitalize}.side-nav__block-button{background-color:#000;color:#fff;font-weight:700;padding:10px 0;width:100%}@charset "UTF-8";.currency-select-container{align-items:center;display:flex;margin-right:18px;position:relative}.currency-select-container .currency-flag{margin-right:5px}.currency-select-container .currency-flag img{height:15px;-o-object-fit:cover;object-fit:cover;width:20px}.currency-select-container .currency-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:none;color:#000;cursor:pointer;font-family:inherit;font-size:14px;margin:0;outline:none;padding:5px 15px 5px 5px}.currency-select-container .currency-select::-ms-expand{display:none}.currency-select-container .currency-select:focus{box-shadow:none;outline:none}.currency-select-container .currency-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.currency-select-container:after{color:#000;content:"▼";font-size:10px;pointer-events:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}@media only screen and (max-width:879px){.currency-select-container .currency-select{appearance:menulist;-webkit-appearance:menulist;-moz-appearance:menulist;padding-right:0}.currency-select-container:after{display:none}}.currency-select-container.disabled{cursor:not-allowed;opacity:.7}.currency-select-container.disabled .currency-select{pointer-events:none}.stores-dropdown{align-items:flex-start;display:flex;font-family:Martel Sans;gap:20px;margin-left:auto;margin-right:auto;max-width:1280px;overflow-x:auto;padding:20px 15px}.stores-dropdown__image{height:200px;-o-object-fit:cover;object-fit:cover;width:100%}.stores-dropdown__store-details{flex-basis:20%}.stores-dropdown__title{font-family:El Messiri}.stores-dropdown__main-title,.stores-dropdown__title{font-size:16px;font-weight:400;letter-spacing:3px;margin-top:20px}.stores-dropdown__main-title{font-weight:700;margin-bottom:10px}.stores-dropdown__open-days{font-size:12px;font-weight:700;line-height:20px}.stores-dropdown__open-hours{font-size:12px;font-weight:400;line-height:20px}.stores-dropdown__queries-title{font-family:El Messiri;font-size:16px;font-weight:400;letter-spacing:3px}.stores-dropdown__contact-details{font-size:16px;font-weight:700}.stores-dropdown__view-more{cursor:pointer;font-size:14px;font-weight:400;margin-top:10px;text-transform:capitalize}.dropdown{display:flex;justify-content:space-between;margin-left:auto;margin-right:auto;max-width:1280px;min-height:500px;overflow-x:auto;padding:20px 0}.dropdown__errors{align-items:center;color:red;display:flex;font-size:16px;justify-content:center;min-height:300px}.dropdown__column{flex:1;padding-left:12px}.dropdown__column:nth-child(2){flex:2}.dropdown__title{font-family:El Messiri;font-size:16px;font-weight:700;letter-spacing:3px;line-height:1;margin-bottom:20px;text-transform:uppercase}.dropdown__elements{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));max-height:800px;overflow-y:auto}.dropdown__brand-elements{-moz-column-count:3;column-count:3;max-height:800px}.dropdown__brand-element{cursor:pointer;margin-bottom:10px}.dropdown__element{flex-basis:33.33%;font-family:Martel Sans;font-size:14px;font-weight:400;margin-bottom:10px;text-transform:capitalize}.cover-spinner{align-items:center;background-color:hsla(0,0%,100%,.7);display:flex;height:100%;justify-content:center;min-height:400px;position:relative;top:50%;width:100%;z-index:9999}.cover-spinner:after{animation:spin 1.5s linear infinite;border:4px dotted #000;border-radius:50%;border-top-color:transparent;content:"";display:block;height:40px;position:absolute;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
package/build/bundle.js CHANGED
@@ -14657,6 +14657,7 @@
14657
14657
  _ref$brandElements = _ref.brandElements,
14658
14658
  brandElements = _ref$brandElements === void 0 ? [] : _ref$brandElements,
14659
14659
  productsUrl = _ref.productsUrl,
14660
+ LinkComponent = _ref.LinkComponent,
14660
14661
  categorySlug = _ref.categorySlug,
14661
14662
  categoryTitle = _ref.categoryTitle,
14662
14663
  isLoading = _ref.isLoading,
@@ -14675,12 +14676,12 @@
14675
14676
  }, title), /*#__PURE__*/React__default.createElement("div", {
14676
14677
  className: "dropdown__elements dropdown__elements--column"
14677
14678
  }, !!categoryElements.length && categoryElements.map(function (categoryElement) {
14678
- return categoryElement.category ? /*#__PURE__*/React__default.createElement("a", {
14679
+ return categoryElement.category ? /*#__PURE__*/React__default.createElement(LinkComponent, {
14679
14680
  href: "".concat(productsUrl, "/").concat(categoryElement.category, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
14680
14681
  className: "dropdown__element",
14681
14682
  key: categoryElement.name,
14682
14683
  onClick: onMenuItemClick
14683
- }, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase()) : /*#__PURE__*/React__default.createElement("a", {
14684
+ }, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase()) : /*#__PURE__*/React__default.createElement(LinkComponent, {
14684
14685
  href: "".concat(productsUrl, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
14685
14686
  className: "dropdown__element",
14686
14687
  key: categoryElement.name,
@@ -14694,14 +14695,14 @@
14694
14695
  className: "dropdown__brand-elements"
14695
14696
  }, /*#__PURE__*/React__default.createElement("div", {
14696
14697
  className: "dropdown__brand-element"
14697
- }, /*#__PURE__*/React__default.createElement("a", {
14698
+ }, /*#__PURE__*/React__default.createElement(LinkComponent, {
14698
14699
  href: "".concat(productsUrl, "/").concat(categorySlug),
14699
14700
  className: "dropdown__element",
14700
14701
  onClick: onMenuItemClick
14701
14702
  }, "All ", categoryTitle)), !!brandElements.length && brandElements.map(function (brand) {
14702
14703
  return /*#__PURE__*/React__default.createElement("div", {
14703
14704
  className: "dropdown__brand-element"
14704
- }, /*#__PURE__*/React__default.createElement("a", {
14705
+ }, /*#__PURE__*/React__default.createElement(LinkComponent, {
14705
14706
  href: "".concat(productsUrl, "/").concat(categorySlug, "/").concat(brand === null || brand === void 0 ? void 0 : brand.slug),
14706
14707
  className: "dropdown__element",
14707
14708
  key: brand.name,
@@ -14721,6 +14722,7 @@
14721
14722
  categoryElements = _ref.categoryElements,
14722
14723
  brandElements = _ref.brandElements,
14723
14724
  productsUrl = _ref.productsUrl,
14725
+ LinkComponent = _ref.LinkComponent,
14724
14726
  categorySlug = _ref.categorySlug,
14725
14727
  categoryTitle = _ref.categoryTitle,
14726
14728
  isLoading = _ref.isLoading,
@@ -14743,7 +14745,7 @@
14743
14745
  onMouseLeave: function onMouseLeave() {
14744
14746
  return setDropdownVisible(false);
14745
14747
  }
14746
- }, /*#__PURE__*/React__default.createElement("a", {
14748
+ }, /*#__PURE__*/React__default.createElement(LinkComponent, {
14747
14749
  href: "".concat(productsUrl, "/").concat(categorySlug),
14748
14750
  className: "navbar__link-item navbar__link-item--desktop",
14749
14751
  onClick: handleMenuItemClick
@@ -14759,7 +14761,8 @@
14759
14761
  categoryTitle: categoryTitle,
14760
14762
  isLoading: isLoading,
14761
14763
  hasError: hasError,
14762
- onMenuItemClick: handleMenuItemClick
14764
+ onMenuItemClick: handleMenuItemClick,
14765
+ LinkComponent: LinkComponent
14763
14766
  })));
14764
14767
  };
14765
14768
 
@@ -14906,6 +14909,7 @@
14906
14909
  stores = _ref.stores,
14907
14910
  contactNumber = _ref.contactNumber,
14908
14911
  productsUrl = _ref.productsUrl,
14912
+ LinkComponent = _ref.LinkComponent,
14909
14913
  onInterestClick = _ref.onInterestClick,
14910
14914
  onCartClick = _ref.onCartClick,
14911
14915
  onAccountClick = _ref.onAccountClick,
@@ -14992,27 +14996,24 @@
14992
14996
  };
14993
14997
 
14994
14998
  var debouncedSearch = React.useCallback(debounce(function (nextValue) {
14995
- var isKeyDown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
14996
14999
  setSearchLoading(true);
14997
15000
  axios.post(endpoint, searchProducts(nextValue, 6)).then(function (response) {
14998
15001
  setSearchResults(response.data.data.luxity_products_serach_results);
14999
15002
  var ids = response.data.data.luxity_products_serach_results.luxity_product_ids;
15000
15003
  onProductIdsReceived(ids);
15001
-
15002
- if (isKeyDown) {
15003
- // reset the search results on keydown
15004
- setSearchResults({
15005
- brands: [],
15006
- products: []
15007
- });
15008
- onSearchSubmit(nextValue);
15009
- }
15010
-
15011
15004
  setSearchLoading(false);
15012
15005
  }).catch(function () {
15013
15006
  setSearchLoading(false);
15014
15007
  });
15015
15008
  }, 500), [endpoint]);
15009
+ var immediateSearch = React.useCallback(function (value) {
15010
+ setSearchValue('');
15011
+ setSearchResults({
15012
+ brands: [],
15013
+ products: []
15014
+ });
15015
+ onSearchSubmit(value);
15016
+ }, [onSearchSubmit]);
15016
15017
 
15017
15018
  var handleChange = function handleChange(event) {
15018
15019
  var value = event.target.value;
@@ -15043,7 +15044,11 @@
15043
15044
 
15044
15045
  var handleKeyDown = function handleKeyDown(event) {
15045
15046
  if (event.key === 'Enter') {
15046
- debouncedSearch(searchValue, true);
15047
+ event.preventDefault();
15048
+
15049
+ if (searchValue.trim().length >= 3) {
15050
+ immediateSearch(searchValue);
15051
+ }
15047
15052
  } else if (event.key === 'Escape') {
15048
15053
  setSearchValue('');
15049
15054
  }
@@ -15078,6 +15083,13 @@
15078
15083
  return setHasError(true);
15079
15084
  });
15080
15085
  }, [menuData]);
15086
+
15087
+ var getMarginRight = function getMarginRight(userIsVip, userName) {
15088
+ if (userIsVip) return '15px';
15089
+ if (userName) return '5px';
15090
+ return '18px';
15091
+ };
15092
+
15081
15093
  return /*#__PURE__*/React__default.createElement("div", {
15082
15094
  className: "navbar"
15083
15095
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -15136,7 +15148,8 @@
15136
15148
  categorySlug: "brands",
15137
15149
  categoryTitle: "Brands",
15138
15150
  isLoading: loading,
15139
- hasError: hasError
15151
+ hasError: hasError,
15152
+ LinkComponent: LinkComponent
15140
15153
  }), /*#__PURE__*/React__default.createElement(DropdownLink$1, {
15141
15154
  title: "Bags",
15142
15155
  imageSrc: bagsImage,
@@ -15146,7 +15159,8 @@
15146
15159
  categorySlug: categories$1.bags.slug,
15147
15160
  categoryTitle: categories$1.bags.name,
15148
15161
  isLoading: loading,
15149
- hasError: hasError
15162
+ hasError: hasError,
15163
+ LinkComponent: LinkComponent
15150
15164
  }), /*#__PURE__*/React__default.createElement(DropdownLink$1, {
15151
15165
  title: "Shoes",
15152
15166
  imageSrc: shoesImage,
@@ -15156,7 +15170,8 @@
15156
15170
  categorySlug: categories$1.shoes.slug,
15157
15171
  categoryTitle: categories$1.shoes.name,
15158
15172
  isLoading: loading,
15159
- hasError: hasError
15173
+ hasError: hasError,
15174
+ LinkComponent: LinkComponent
15160
15175
  }), /*#__PURE__*/React__default.createElement(DropdownLink$1, {
15161
15176
  title: "Clothing",
15162
15177
  imageSrc: clothingImage,
@@ -15166,7 +15181,8 @@
15166
15181
  categorySlug: categories$1.clothing.slug,
15167
15182
  categoryTitle: categories$1.clothing.name,
15168
15183
  isLoading: loading,
15169
- hasError: hasError
15184
+ hasError: hasError,
15185
+ LinkComponent: LinkComponent
15170
15186
  }), /*#__PURE__*/React__default.createElement(DropdownLink$1, {
15171
15187
  title: "Accessories",
15172
15188
  imageSrc: accessoriesImage,
@@ -15176,7 +15192,8 @@
15176
15192
  categorySlug: categories$1.accessories.slug,
15177
15193
  categoryTitle: categories$1.accessories.name,
15178
15194
  isLoading: loading,
15179
- hasError: hasError
15195
+ hasError: hasError,
15196
+ LinkComponent: LinkComponent
15180
15197
  }), /*#__PURE__*/React__default.createElement(DropdownLink$1, {
15181
15198
  title: "Watches",
15182
15199
  imageSrc: watchesImage,
@@ -15186,10 +15203,11 @@
15186
15203
  categorySlug: categories$1.watches.slug,
15187
15204
  categoryTitle: categories$1.watches.name,
15188
15205
  isLoading: loading,
15189
- hasError: hasError
15206
+ hasError: hasError,
15207
+ LinkComponent: LinkComponent
15190
15208
  }), /*#__PURE__*/React__default.createElement("li", {
15191
15209
  className: "navbar__link"
15192
- }, /*#__PURE__*/React__default.createElement("a", {
15210
+ }, /*#__PURE__*/React__default.createElement(LinkComponent, {
15193
15211
  href: contactUsLink,
15194
15212
  className: "navbar__link-item navbar__link-item--desktop"
15195
15213
  }, "Stores"), /*#__PURE__*/React__default.createElement("div", {
@@ -15210,7 +15228,10 @@
15210
15228
  }), shop && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("button", {
15211
15229
  type: "button",
15212
15230
  className: "navbar__icon relative flex",
15213
- onClick: onAccountClick
15231
+ onClick: onAccountClick,
15232
+ style: {
15233
+ marginRight: getMarginRight(isVip, name)
15234
+ }
15214
15235
  }, /*#__PURE__*/React__default.createElement("img", {
15215
15236
  src: accountIcon,
15216
15237
  alt: "account-icon",
@@ -15252,12 +15273,12 @@
15252
15273
  className: "navbar__nav-links"
15253
15274
  }, /*#__PURE__*/React__default.createElement("li", {
15254
15275
  className: "navbar__company-link"
15255
- }, /*#__PURE__*/React__default.createElement("a", {
15276
+ }, /*#__PURE__*/React__default.createElement(LinkComponent, {
15256
15277
  href: ourStoryLink,
15257
15278
  className: "navbar__link-item"
15258
15279
  }, "Our Story")), /*#__PURE__*/React__default.createElement("li", {
15259
15280
  className: "navbar__company-link"
15260
- }, /*#__PURE__*/React__default.createElement("a", {
15281
+ }, /*#__PURE__*/React__default.createElement(LinkComponent, {
15261
15282
  href: contactUsLink,
15262
15283
  className: "navbar__link-item"
15263
15284
  }, "Contact Us")), /*#__PURE__*/React__default.createElement("li", {
@@ -15324,7 +15345,8 @@
15324
15345
  brandsList = _ref$brandsList === void 0 ? [] : _ref$brandsList,
15325
15346
  categorySlug = _ref.categorySlug,
15326
15347
  isLoading = _ref.isLoading,
15327
- hasError = _ref.hasError;
15348
+ hasError = _ref.hasError,
15349
+ LinkComponent = _ref.LinkComponent;
15328
15350
 
15329
15351
  var handleLinkClick = function handleLinkClick(event) {
15330
15352
  event.preventDefault();
@@ -15359,12 +15381,12 @@
15359
15381
  }, subMenuCategoryTitle), /*#__PURE__*/React__default.createElement("div", {
15360
15382
  className: "side-nav__elements"
15361
15383
  }, categoryElements.map(function (categoryElement) {
15362
- return categoryElement.category ? /*#__PURE__*/React__default.createElement("a", {
15384
+ return categoryElement.category ? /*#__PURE__*/React__default.createElement(LinkComponent, {
15363
15385
  href: "".concat(productUrl, "/").concat(categoryElement.category, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
15364
15386
  onClick: handleLinkClick,
15365
15387
  className: "dropdown__element",
15366
15388
  key: categoryElement.name
15367
- }, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase()) : /*#__PURE__*/React__default.createElement("a", {
15389
+ }, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase()) : /*#__PURE__*/React__default.createElement(LinkComponent, {
15368
15390
  href: "".concat(productUrl, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
15369
15391
  onClick: handleLinkClick,
15370
15392
  className: "dropdown__element",
@@ -15374,12 +15396,12 @@
15374
15396
  className: "side-nav__elements"
15375
15397
  }, /*#__PURE__*/React__default.createElement("div", {
15376
15398
  className: "side-nav__sub-menu-title"
15377
- }, subMenuBrandsTitle), /*#__PURE__*/React__default.createElement("a", {
15399
+ }, subMenuBrandsTitle), /*#__PURE__*/React__default.createElement(LinkComponent, {
15378
15400
  href: "".concat(productUrl, "/").concat(categorySlug === 'new' ? 'brands' : categorySlug),
15379
15401
  onClick: handleLinkClick,
15380
15402
  className: "side-nav__element"
15381
15403
  }, "All Brands"), !!brandsList.length && brandsList.map(function (brand) {
15382
- return /*#__PURE__*/React__default.createElement("a", {
15404
+ return /*#__PURE__*/React__default.createElement(LinkComponent, {
15383
15405
  href: "".concat(productUrl, "/").concat(categorySlug === 'new' ? 'brands' : categorySlug, "/").concat(brand.slug),
15384
15406
  onClick: handleLinkClick,
15385
15407
  className: "side-nav__element"
@@ -15407,7 +15429,8 @@
15407
15429
  currencyOptions = _ref.currencyOptions,
15408
15430
  onCurrencyChange = _ref.onCurrencyChange,
15409
15431
  isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
15410
- tooltipContent = _ref.tooltipContent;
15432
+ tooltipContent = _ref.tooltipContent,
15433
+ LinkComponent = _ref.LinkComponent;
15411
15434
 
15412
15435
  var _useState = React.useState(false),
15413
15436
  _useState2 = _slicedToArray(_useState, 2),
@@ -15669,7 +15692,8 @@
15669
15692
  categorySlug: displayedSubMenu,
15670
15693
  isLoading: loading,
15671
15694
  hasError: hasError,
15672
- onCloseSideNav: onCloseSideNav
15695
+ onCloseSideNav: onCloseSideNav,
15696
+ LinkComponent: LinkComponent
15673
15697
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
15674
15698
  subMenuOpen: subMenuOpen && displayedSubMenu === 'bags',
15675
15699
  onBackClick: onBackClick,
@@ -15682,7 +15706,8 @@
15682
15706
  categorySlug: displayedSubMenu,
15683
15707
  isLoading: loading,
15684
15708
  hasError: hasError,
15685
- onCloseSideNav: onCloseSideNav
15709
+ onCloseSideNav: onCloseSideNav,
15710
+ LinkComponent: LinkComponent
15686
15711
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
15687
15712
  subMenuOpen: subMenuOpen && displayedSubMenu === 'shoes',
15688
15713
  onBackClick: onBackClick,
@@ -15695,7 +15720,8 @@
15695
15720
  categorySlug: displayedSubMenu,
15696
15721
  isLoading: loading,
15697
15722
  hasError: hasError,
15698
- onCloseSideNav: onCloseSideNav
15723
+ onCloseSideNav: onCloseSideNav,
15724
+ LinkComponent: LinkComponent
15699
15725
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
15700
15726
  subMenuOpen: subMenuOpen && displayedSubMenu === 'apparel',
15701
15727
  onBackClick: onBackClick,
@@ -15708,7 +15734,8 @@
15708
15734
  categorySlug: displayedSubMenu,
15709
15735
  isLoading: loading,
15710
15736
  hasError: hasError,
15711
- onCloseSideNav: onCloseSideNav
15737
+ onCloseSideNav: onCloseSideNav,
15738
+ LinkComponent: LinkComponent
15712
15739
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
15713
15740
  subMenuOpen: subMenuOpen && displayedSubMenu === 'accessories',
15714
15741
  onBackClick: onBackClick,
@@ -15721,7 +15748,8 @@
15721
15748
  categorySlug: displayedSubMenu,
15722
15749
  isLoading: loading,
15723
15750
  hasError: hasError,
15724
- onCloseSideNav: onCloseSideNav
15751
+ onCloseSideNav: onCloseSideNav,
15752
+ LinkComponent: LinkComponent
15725
15753
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
15726
15754
  subMenuOpen: subMenuOpen && displayedSubMenu === 'watches',
15727
15755
  onBackClick: onBackClick,
@@ -15734,7 +15762,8 @@
15734
15762
  categorySlug: displayedSubMenu,
15735
15763
  isLoading: loading,
15736
15764
  hasError: hasError,
15737
- onCloseSideNav: onCloseSideNav
15765
+ onCloseSideNav: onCloseSideNav,
15766
+ LinkComponent: LinkComponent
15738
15767
  }), displayedSubMenu === 'stores' && /*#__PURE__*/React__default.createElement("div", {
15739
15768
  className: "side-nav__content"
15740
15769
  }, /*#__PURE__*/React__default.createElement(StoresDropdown$1, {
@@ -15973,6 +16002,7 @@
15973
16002
  onCurrencyChange = _ref.onCurrencyChange,
15974
16003
  isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
15975
16004
  tooltipContent = _ref.tooltipContent,
16005
+ LinkComponent = _ref.LinkComponent,
15976
16006
  shop = _ref.shop,
15977
16007
  app = _ref.app;
15978
16008
 
@@ -16022,27 +16052,24 @@
16022
16052
  };
16023
16053
 
16024
16054
  var debouncedSearch = React.useCallback(debounce(function (nextValue) {
16025
- var isKeyDown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
16026
16055
  setSearchLoading(true);
16027
16056
  axios.post(endpoint, searchProducts(nextValue, 6)).then(function (response) {
16028
16057
  setSearchResults(response.data.data.luxity_products_serach_results);
16029
16058
  var ids = response.data.data.luxity_products_serach_results.luxity_product_ids;
16030
16059
  onProductIdsReceived(ids);
16031
-
16032
- if (isKeyDown) {
16033
- // reset the search results on keydown
16034
- setSearchResults({
16035
- brands: [],
16036
- products: []
16037
- });
16038
- onSearchSubmit(nextValue);
16039
- }
16040
-
16041
16060
  setSearchLoading(false);
16042
16061
  }).catch(function () {
16043
16062
  setSearchLoading(false);
16044
16063
  });
16045
16064
  }, 500), [endpoint]);
16065
+ var immediateSearch = React.useCallback(function (value) {
16066
+ setSearchValue('');
16067
+ setSearchResults({
16068
+ brands: [],
16069
+ products: []
16070
+ });
16071
+ onSearchSubmit(value);
16072
+ }, [onSearchSubmit]);
16046
16073
 
16047
16074
  var handleChange = function handleChange(event) {
16048
16075
  var value = event.target.value;
@@ -16060,7 +16087,11 @@
16060
16087
 
16061
16088
  var handleKeyDown = function handleKeyDown(event) {
16062
16089
  if (event.key === 'Enter') {
16063
- debouncedSearch(searchValue, true);
16090
+ event.preventDefault();
16091
+
16092
+ if (searchValue.trim().length >= 3) {
16093
+ immediateSearch(searchValue);
16094
+ }
16064
16095
  } else if (event.key === 'Escape') {
16065
16096
  setSearchValue('');
16066
16097
  }
@@ -16258,7 +16289,8 @@
16258
16289
  currencyOptions: currencyOptions,
16259
16290
  onCurrencyChange: onCurrencyChange,
16260
16291
  isCurrencySelectionDisabled: isCurrencySelectionDisabled,
16261
- tooltipContent: tooltipContent
16292
+ tooltipContent: tooltipContent,
16293
+ LinkComponent: LinkComponent
16262
16294
  }), app && /*#__PURE__*/React__default.createElement(LuxityAppSideNav, {
16263
16295
  accordionIcon: accordionIcon,
16264
16296
  closeIcon: closeIcon,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bonlineza/luxity-lib",
3
- "version": "2.34.7",
3
+ "version": "2.34.9",
4
4
  "scripts": {
5
5
  "start": "start-storybook -p 9001 -c .storybook -s ./public",
6
6
  "clean": "rimraf ./build/*.*",