@bonlineza/luxity-lib 2.38.2 → 2.39.0

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.
@@ -82,10 +82,22 @@
82
82
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
83
83
  }
84
84
 
85
+ function _toConsumableArray(arr) {
86
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
87
+ }
88
+
89
+ function _arrayWithoutHoles(arr) {
90
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
91
+ }
92
+
85
93
  function _arrayWithHoles(arr) {
86
94
  if (Array.isArray(arr)) return arr;
87
95
  }
88
96
 
97
+ function _iterableToArray(iter) {
98
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
99
+ }
100
+
89
101
  function _iterableToArrayLimit(arr, i) {
90
102
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
91
103
 
@@ -133,6 +145,10 @@
133
145
  return arr2;
134
146
  }
135
147
 
148
+ function _nonIterableSpread() {
149
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
150
+ }
151
+
136
152
  function _nonIterableRest() {
137
153
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
138
154
  }
@@ -298,7 +314,7 @@
298
314
  };
299
315
 
300
316
  var SearchResults = function SearchResults(_ref) {
301
- var _searchResults$brands, _searchResults$produc, _initialSearchData$tr, _initialSearchData$la, _limitBrands, _limitBrands2, _initialSearchData$la2, _searchResults$produc2;
317
+ var _searchResults$brands, _searchResults$produc, _initialSearchData$tr, _initialSearchData$la;
302
318
 
303
319
  var searchValue = _ref.searchValue,
304
320
  searchResults = _ref.searchResults,
@@ -315,7 +331,9 @@
315
331
  onBrandSearchResultClick = _ref.onBrandSearchResultClick,
316
332
  onCreateInterests = _ref.onCreateInterests,
317
333
  noResultsImage = _ref.noResultsImage,
318
- showNoResults = _ref.showNoResults;
334
+ showNoResults = _ref.showNoResults,
335
+ _ref$isLoading = _ref.isLoading,
336
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading;
319
337
 
320
338
  var _useState = React.useState(false),
321
339
  _useState2 = _slicedToArray(_useState, 2),
@@ -354,6 +372,39 @@
354
372
  return "".concat(currencySymbol).concat(formatter.format(price));
355
373
  };
356
374
 
375
+ var renderBrandSkeleton = function renderBrandSkeleton() {
376
+ return /*#__PURE__*/React__default.createElement("div", {
377
+ className: "brand-skeleton"
378
+ }, /*#__PURE__*/React__default.createElement("div", {
379
+ className: "brand-skeleton__item shimmer"
380
+ }), /*#__PURE__*/React__default.createElement("div", {
381
+ className: "brand-skeleton__item shimmer"
382
+ }), /*#__PURE__*/React__default.createElement("div", {
383
+ className: "brand-skeleton__item shimmer"
384
+ }), /*#__PURE__*/React__default.createElement("div", {
385
+ className: "brand-skeleton__item shimmer"
386
+ }));
387
+ };
388
+
389
+ var renderProductSkeleton = function renderProductSkeleton() {
390
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, _toConsumableArray(Array(3)).map(function (_, index) {
391
+ return /*#__PURE__*/React__default.createElement("div", {
392
+ key: index,
393
+ className: "product-skeleton"
394
+ }, /*#__PURE__*/React__default.createElement("div", {
395
+ className: "product-skeleton__image shimmer"
396
+ }), /*#__PURE__*/React__default.createElement("div", {
397
+ className: "product-skeleton__content"
398
+ }, /*#__PURE__*/React__default.createElement("div", {
399
+ className: "product-skeleton__title shimmer"
400
+ }), /*#__PURE__*/React__default.createElement("div", {
401
+ className: "product-skeleton__subtitle shimmer"
402
+ }), /*#__PURE__*/React__default.createElement("div", {
403
+ className: "product-skeleton__price shimmer"
404
+ })));
405
+ }));
406
+ };
407
+
357
408
  var renderProductCard = function renderProductCard(product) {
358
409
  var selectedPrice = product.prices ? product.prices.find(function (p) {
359
410
  return p.currency === currency;
@@ -423,6 +474,70 @@
423
474
  }
424
475
 
425
476
  return brands;
477
+ };
478
+
479
+ var renderBrandsList = function renderBrandsList() {
480
+ var _limitBrands2;
481
+
482
+ if (isLoading) {
483
+ return renderBrandSkeleton();
484
+ }
485
+
486
+ if (shouldShowInitialData) {
487
+ var _limitBrands;
488
+
489
+ return (_limitBrands = limitBrands(initialSearchData === null || initialSearchData === void 0 ? void 0 : initialSearchData.trending_brands)) === null || _limitBrands === void 0 ? void 0 : _limitBrands.map(function (brand) {
490
+ return /*#__PURE__*/React__default.createElement("a", {
491
+ key: brand.id,
492
+ href: getBrandLink(brand),
493
+ className: "search-results__item",
494
+ onClick: function onClick() {
495
+ if (typeof onBrandSearchResultClick === 'function') {
496
+ onBrandSearchResultClick({
497
+ brand_name: brand.name,
498
+ brand_link: getBrandLink(brand),
499
+ search_string: searchValue,
500
+ is_trending: true
501
+ });
502
+ }
503
+ }
504
+ }, brand.name);
505
+ });
506
+ }
507
+
508
+ return (_limitBrands2 = limitBrands(searchResults === null || searchResults === void 0 ? void 0 : searchResults.brands)) === null || _limitBrands2 === void 0 ? void 0 : _limitBrands2.map(function (brand) {
509
+ return /*#__PURE__*/React__default.createElement("a", {
510
+ key: brand.link,
511
+ href: brand.link,
512
+ className: "search-results__item",
513
+ onClick: function onClick() {
514
+ if (typeof onBrandSearchResultClick === 'function') {
515
+ onBrandSearchResultClick({
516
+ brand_name: brand.name,
517
+ brand_link: brand.link,
518
+ search_string: searchValue,
519
+ is_trending: false
520
+ });
521
+ }
522
+ }
523
+ }, brand.name);
524
+ });
525
+ };
526
+
527
+ var renderProductsList = function renderProductsList() {
528
+ var _searchResults$produc2;
529
+
530
+ if (isLoading) {
531
+ return renderProductSkeleton();
532
+ }
533
+
534
+ if (shouldShowInitialData) {
535
+ var _initialSearchData$la2;
536
+
537
+ return initialSearchData === null || initialSearchData === void 0 ? void 0 : (_initialSearchData$la2 = initialSearchData.latest_products) === null || _initialSearchData$la2 === void 0 ? void 0 : _initialSearchData$la2.map(renderProductCard);
538
+ }
539
+
540
+ return searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$produc2 = searchResults.products) === null || _searchResults$produc2 === void 0 ? void 0 : _searchResults$produc2.map(renderProductCard);
426
541
  }; // Show no results state
427
542
 
428
543
 
@@ -463,39 +578,7 @@
463
578
  className: "search-results__header"
464
579
  }, shouldShowInitialData ? 'TRENDING SEARCHES' : 'BRANDS'), /*#__PURE__*/React__default.createElement("div", {
465
580
  className: "search-results__list"
466
- }, shouldShowInitialData ? (_limitBrands = limitBrands(initialSearchData === null || initialSearchData === void 0 ? void 0 : initialSearchData.trending_brands)) === null || _limitBrands === void 0 ? void 0 : _limitBrands.map(function (brand) {
467
- return /*#__PURE__*/React__default.createElement("a", {
468
- key: brand.id,
469
- href: getBrandLink(brand),
470
- className: "search-results__item",
471
- onClick: function onClick() {
472
- if (typeof onBrandSearchResultClick === 'function') {
473
- onBrandSearchResultClick({
474
- brand_name: brand.name,
475
- brand_link: getBrandLink(brand),
476
- search_string: searchValue,
477
- is_trending: true
478
- });
479
- }
480
- }
481
- }, brand.name);
482
- }) : (_limitBrands2 = limitBrands(searchResults === null || searchResults === void 0 ? void 0 : searchResults.brands)) === null || _limitBrands2 === void 0 ? void 0 : _limitBrands2.map(function (brand) {
483
- return /*#__PURE__*/React__default.createElement("a", {
484
- key: brand.link,
485
- href: brand.link,
486
- className: "search-results__item",
487
- onClick: function onClick() {
488
- if (typeof onBrandSearchResultClick === 'function') {
489
- onBrandSearchResultClick({
490
- brand_name: brand.name,
491
- brand_link: brand.link,
492
- search_string: searchValue,
493
- is_trending: false
494
- });
495
- }
496
- }
497
- }, brand.name);
498
- }))), /*#__PURE__*/React__default.createElement("div", {
581
+ }, renderBrandsList())), /*#__PURE__*/React__default.createElement("div", {
499
582
  className: "search-results__section"
500
583
  }, /*#__PURE__*/React__default.createElement("div", {
501
584
  className: "search-results__section-header"
@@ -509,7 +592,7 @@
509
592
  }
510
593
  }, "View all items")), /*#__PURE__*/React__default.createElement("div", {
511
594
  className: "search-results__product-list"
512
- }, shouldShowInitialData ? initialSearchData === null || initialSearchData === void 0 ? void 0 : (_initialSearchData$la2 = initialSearchData.latest_products) === null || _initialSearchData$la2 === void 0 ? void 0 : _initialSearchData$la2.map(renderProductCard) : searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$produc2 = searchResults.products) === null || _searchResults$produc2 === void 0 ? void 0 : _searchResults$produc2.map(renderProductCard)), /*#__PURE__*/React__default.createElement("button", {
595
+ }, renderProductsList()), /*#__PURE__*/React__default.createElement("button", {
513
596
  type: "button",
514
597
  className: "search-results__view-all-button",
515
598
  onClick: function onClick() {
@@ -835,7 +918,12 @@
835
918
  if (currentSearchRequestToken.current === newSearchToken) {
836
919
  var _brandsResponse$data$, _productsResponse$dat, _productsResponse$dat2;
837
920
 
838
- // Extract brands from aggregations
921
+ // Set loading to false when search completes
922
+ if (typeof onSearchLoading === 'function') {
923
+ onSearchLoading(false);
924
+ } // Extract brands from aggregations
925
+
926
+
839
927
  var brandsData = ((_brandsResponse$data$ = brandsResponse.data.data.luxity_products_aggregations) === null || _brandsResponse$data$ === void 0 ? void 0 : _brandsResponse$data$.luxity_brand) || []; // Extract products from filter
840
928
 
841
929
  var productsData = ((_productsResponse$dat = productsResponse.data.data.luxity_products_filter) === null || _productsResponse$dat === void 0 ? void 0 : _productsResponse$dat.data) || [];
@@ -898,6 +986,11 @@
898
986
  }
899
987
  }).catch(function (error) {
900
988
  if (!axios.isCancel(error)) {
989
+ // Set loading to false when search fails
990
+ if (typeof onSearchLoading === 'function') {
991
+ onSearchLoading(false);
992
+ }
993
+
901
994
  setSearchResults({
902
995
  brands: [],
903
996
  products: []
@@ -1045,7 +1138,7 @@
1045
1138
  onSearchPreview = _ref.onSearchPreview,
1046
1139
  onProductSearchResultClick = _ref.onProductSearchResultClick,
1047
1140
  onBrandSearchResultClick = _ref.onBrandSearchResultClick,
1048
- onSearchLoading = _ref.onSearchLoading,
1141
+ _onSearchLoading = _ref.onSearchLoading,
1049
1142
  currency = _ref.currency,
1050
1143
  currencySymbol = _ref.currencySymbol,
1051
1144
  currencyOptions = _ref.currencyOptions,
@@ -1075,53 +1168,64 @@
1075
1168
 
1076
1169
  var _useState5 = React.useState(false),
1077
1170
  _useState6 = _slicedToArray(_useState5, 2),
1078
- isSearchFocused = _useState6[0],
1079
- setIsSearchFocused = _useState6[1];
1171
+ searchLoading = _useState6[0],
1172
+ setSearchLoading = _useState6[1];
1173
+
1174
+ var _useState7 = React.useState(false),
1175
+ _useState8 = _slicedToArray(_useState7, 2),
1176
+ isSearchFocused = _useState8[0],
1177
+ setIsSearchFocused = _useState8[1];
1080
1178
 
1081
- var _useState7 = React.useState({
1179
+ var _useState9 = React.useState({
1082
1180
  trending_brands: [],
1083
1181
  latest_products: []
1084
1182
  }),
1085
- _useState8 = _slicedToArray(_useState7, 2),
1086
- initialSearchView = _useState8[0],
1087
- setInitialSearchView = _useState8[1];
1088
-
1089
- var _useState9 = React.useState({}),
1090
1183
  _useState10 = _slicedToArray(_useState9, 2),
1091
- dropdownData = _useState10[0],
1092
- setDropdownData = _useState10[1];
1184
+ initialSearchView = _useState10[0],
1185
+ setInitialSearchView = _useState10[1];
1093
1186
 
1094
- var _useState11 = React.useState(false),
1187
+ var _useState11 = React.useState({}),
1095
1188
  _useState12 = _slicedToArray(_useState11, 2),
1096
- hasError = _useState12[0],
1097
- setHasError = _useState12[1];
1189
+ dropdownData = _useState12[0],
1190
+ setDropdownData = _useState12[1];
1098
1191
 
1099
- var _useState13 = React.useState({
1100
- brands: [],
1101
- products: []
1102
- }),
1192
+ var _useState13 = React.useState(false),
1103
1193
  _useState14 = _slicedToArray(_useState13, 2),
1104
- searchResults = _useState14[0],
1105
- setSearchResults = _useState14[1];
1194
+ hasError = _useState14[0],
1195
+ setHasError = _useState14[1];
1106
1196
 
1107
1197
  var _useState15 = React.useState({
1108
1198
  brands: [],
1109
1199
  products: []
1110
1200
  }),
1111
1201
  _useState16 = _slicedToArray(_useState15, 2),
1112
- cachedResults = _useState16[0],
1113
- setCachedResults = _useState16[1];
1202
+ searchResults = _useState16[0],
1203
+ setSearchResults = _useState16[1];
1114
1204
 
1115
- var _useState17 = React.useState(false),
1205
+ var _useState17 = React.useState({
1206
+ brands: [],
1207
+ products: []
1208
+ }),
1116
1209
  _useState18 = _slicedToArray(_useState17, 2),
1117
- showNoResults = _useState18[0],
1118
- setShowNoResults = _useState18[1];
1210
+ cachedResults = _useState18[0],
1211
+ setCachedResults = _useState18[1];
1212
+
1213
+ var _useState19 = React.useState(false),
1214
+ _useState20 = _slicedToArray(_useState19, 2),
1215
+ showNoResults = _useState20[0],
1216
+ setShowNoResults = _useState20[1];
1119
1217
 
1120
1218
  var searchResultsRef = React.useRef(null);
1121
1219
 
1122
1220
  var _useSearch = useSearch({
1123
1221
  endpoint: endpoint,
1124
- onSearchLoading: onSearchLoading,
1222
+ onSearchLoading: function onSearchLoading(isLoading) {
1223
+ setSearchLoading(isLoading);
1224
+
1225
+ if (typeof _onSearchLoading === 'function') {
1226
+ _onSearchLoading(isLoading);
1227
+ }
1228
+ },
1125
1229
  currency: currency,
1126
1230
  onSearchPreview: onSearchPreview,
1127
1231
  onNoResults: setShowNoResults
@@ -1276,7 +1380,8 @@
1276
1380
  onBrandSearchResultClick: onBrandSearchResultClick,
1277
1381
  onCreateInterests: onCreateInterests,
1278
1382
  noResultsImage: noResultsImage,
1279
- showNoResults: showNoResults
1383
+ showNoResults: showNoResults,
1384
+ isLoading: searchLoading
1280
1385
  }), /*#__PURE__*/React__default.createElement("nav", {
1281
1386
  className: "navbar__nav-links navbar__nav-links--wrap"
1282
1387
  }, renderDropdownLinks(), !!stores.length && /*#__PURE__*/React__default.createElement("li", {
@@ -82,10 +82,22 @@
82
82
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
83
83
  }
84
84
 
85
+ function _toConsumableArray(arr) {
86
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
87
+ }
88
+
89
+ function _arrayWithoutHoles(arr) {
90
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
91
+ }
92
+
85
93
  function _arrayWithHoles(arr) {
86
94
  if (Array.isArray(arr)) return arr;
87
95
  }
88
96
 
97
+ function _iterableToArray(iter) {
98
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
99
+ }
100
+
89
101
  function _iterableToArrayLimit(arr, i) {
90
102
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
91
103
 
@@ -133,6 +145,10 @@
133
145
  return arr2;
134
146
  }
135
147
 
148
+ function _nonIterableSpread() {
149
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
150
+ }
151
+
136
152
  function _nonIterableRest() {
137
153
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
138
154
  }
@@ -918,7 +934,7 @@
918
934
  };
919
935
 
920
936
  var SearchResults = function SearchResults(_ref) {
921
- var _searchResults$brands, _searchResults$produc, _initialSearchData$tr, _initialSearchData$la, _limitBrands, _limitBrands2, _initialSearchData$la2, _searchResults$produc2;
937
+ var _searchResults$brands, _searchResults$produc, _initialSearchData$tr, _initialSearchData$la;
922
938
 
923
939
  var searchValue = _ref.searchValue,
924
940
  searchResults = _ref.searchResults,
@@ -935,7 +951,9 @@
935
951
  onBrandSearchResultClick = _ref.onBrandSearchResultClick,
936
952
  onCreateInterests = _ref.onCreateInterests,
937
953
  noResultsImage = _ref.noResultsImage,
938
- showNoResults = _ref.showNoResults;
954
+ showNoResults = _ref.showNoResults,
955
+ _ref$isLoading = _ref.isLoading,
956
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading;
939
957
 
940
958
  var _useState = React.useState(false),
941
959
  _useState2 = _slicedToArray(_useState, 2),
@@ -974,6 +992,39 @@
974
992
  return "".concat(currencySymbol).concat(formatter.format(price));
975
993
  };
976
994
 
995
+ var renderBrandSkeleton = function renderBrandSkeleton() {
996
+ return /*#__PURE__*/React__default.createElement("div", {
997
+ className: "brand-skeleton"
998
+ }, /*#__PURE__*/React__default.createElement("div", {
999
+ className: "brand-skeleton__item shimmer"
1000
+ }), /*#__PURE__*/React__default.createElement("div", {
1001
+ className: "brand-skeleton__item shimmer"
1002
+ }), /*#__PURE__*/React__default.createElement("div", {
1003
+ className: "brand-skeleton__item shimmer"
1004
+ }), /*#__PURE__*/React__default.createElement("div", {
1005
+ className: "brand-skeleton__item shimmer"
1006
+ }));
1007
+ };
1008
+
1009
+ var renderProductSkeleton = function renderProductSkeleton() {
1010
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, _toConsumableArray(Array(3)).map(function (_, index) {
1011
+ return /*#__PURE__*/React__default.createElement("div", {
1012
+ key: index,
1013
+ className: "product-skeleton"
1014
+ }, /*#__PURE__*/React__default.createElement("div", {
1015
+ className: "product-skeleton__image shimmer"
1016
+ }), /*#__PURE__*/React__default.createElement("div", {
1017
+ className: "product-skeleton__content"
1018
+ }, /*#__PURE__*/React__default.createElement("div", {
1019
+ className: "product-skeleton__title shimmer"
1020
+ }), /*#__PURE__*/React__default.createElement("div", {
1021
+ className: "product-skeleton__subtitle shimmer"
1022
+ }), /*#__PURE__*/React__default.createElement("div", {
1023
+ className: "product-skeleton__price shimmer"
1024
+ })));
1025
+ }));
1026
+ };
1027
+
977
1028
  var renderProductCard = function renderProductCard(product) {
978
1029
  var selectedPrice = product.prices ? product.prices.find(function (p) {
979
1030
  return p.currency === currency;
@@ -1043,6 +1094,70 @@
1043
1094
  }
1044
1095
 
1045
1096
  return brands;
1097
+ };
1098
+
1099
+ var renderBrandsList = function renderBrandsList() {
1100
+ var _limitBrands2;
1101
+
1102
+ if (isLoading) {
1103
+ return renderBrandSkeleton();
1104
+ }
1105
+
1106
+ if (shouldShowInitialData) {
1107
+ var _limitBrands;
1108
+
1109
+ return (_limitBrands = limitBrands(initialSearchData === null || initialSearchData === void 0 ? void 0 : initialSearchData.trending_brands)) === null || _limitBrands === void 0 ? void 0 : _limitBrands.map(function (brand) {
1110
+ return /*#__PURE__*/React__default.createElement("a", {
1111
+ key: brand.id,
1112
+ href: getBrandLink(brand),
1113
+ className: "search-results__item",
1114
+ onClick: function onClick() {
1115
+ if (typeof onBrandSearchResultClick === 'function') {
1116
+ onBrandSearchResultClick({
1117
+ brand_name: brand.name,
1118
+ brand_link: getBrandLink(brand),
1119
+ search_string: searchValue,
1120
+ is_trending: true
1121
+ });
1122
+ }
1123
+ }
1124
+ }, brand.name);
1125
+ });
1126
+ }
1127
+
1128
+ return (_limitBrands2 = limitBrands(searchResults === null || searchResults === void 0 ? void 0 : searchResults.brands)) === null || _limitBrands2 === void 0 ? void 0 : _limitBrands2.map(function (brand) {
1129
+ return /*#__PURE__*/React__default.createElement("a", {
1130
+ key: brand.link,
1131
+ href: brand.link,
1132
+ className: "search-results__item",
1133
+ onClick: function onClick() {
1134
+ if (typeof onBrandSearchResultClick === 'function') {
1135
+ onBrandSearchResultClick({
1136
+ brand_name: brand.name,
1137
+ brand_link: brand.link,
1138
+ search_string: searchValue,
1139
+ is_trending: false
1140
+ });
1141
+ }
1142
+ }
1143
+ }, brand.name);
1144
+ });
1145
+ };
1146
+
1147
+ var renderProductsList = function renderProductsList() {
1148
+ var _searchResults$produc2;
1149
+
1150
+ if (isLoading) {
1151
+ return renderProductSkeleton();
1152
+ }
1153
+
1154
+ if (shouldShowInitialData) {
1155
+ var _initialSearchData$la2;
1156
+
1157
+ return initialSearchData === null || initialSearchData === void 0 ? void 0 : (_initialSearchData$la2 = initialSearchData.latest_products) === null || _initialSearchData$la2 === void 0 ? void 0 : _initialSearchData$la2.map(renderProductCard);
1158
+ }
1159
+
1160
+ return searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$produc2 = searchResults.products) === null || _searchResults$produc2 === void 0 ? void 0 : _searchResults$produc2.map(renderProductCard);
1046
1161
  }; // Show no results state
1047
1162
 
1048
1163
 
@@ -1083,39 +1198,7 @@
1083
1198
  className: "search-results__header"
1084
1199
  }, shouldShowInitialData ? 'TRENDING SEARCHES' : 'BRANDS'), /*#__PURE__*/React__default.createElement("div", {
1085
1200
  className: "search-results__list"
1086
- }, shouldShowInitialData ? (_limitBrands = limitBrands(initialSearchData === null || initialSearchData === void 0 ? void 0 : initialSearchData.trending_brands)) === null || _limitBrands === void 0 ? void 0 : _limitBrands.map(function (brand) {
1087
- return /*#__PURE__*/React__default.createElement("a", {
1088
- key: brand.id,
1089
- href: getBrandLink(brand),
1090
- className: "search-results__item",
1091
- onClick: function onClick() {
1092
- if (typeof onBrandSearchResultClick === 'function') {
1093
- onBrandSearchResultClick({
1094
- brand_name: brand.name,
1095
- brand_link: getBrandLink(brand),
1096
- search_string: searchValue,
1097
- is_trending: true
1098
- });
1099
- }
1100
- }
1101
- }, brand.name);
1102
- }) : (_limitBrands2 = limitBrands(searchResults === null || searchResults === void 0 ? void 0 : searchResults.brands)) === null || _limitBrands2 === void 0 ? void 0 : _limitBrands2.map(function (brand) {
1103
- return /*#__PURE__*/React__default.createElement("a", {
1104
- key: brand.link,
1105
- href: brand.link,
1106
- className: "search-results__item",
1107
- onClick: function onClick() {
1108
- if (typeof onBrandSearchResultClick === 'function') {
1109
- onBrandSearchResultClick({
1110
- brand_name: brand.name,
1111
- brand_link: brand.link,
1112
- search_string: searchValue,
1113
- is_trending: false
1114
- });
1115
- }
1116
- }
1117
- }, brand.name);
1118
- }))), /*#__PURE__*/React__default.createElement("div", {
1201
+ }, renderBrandsList())), /*#__PURE__*/React__default.createElement("div", {
1119
1202
  className: "search-results__section"
1120
1203
  }, /*#__PURE__*/React__default.createElement("div", {
1121
1204
  className: "search-results__section-header"
@@ -1129,7 +1212,7 @@
1129
1212
  }
1130
1213
  }, "View all items")), /*#__PURE__*/React__default.createElement("div", {
1131
1214
  className: "search-results__product-list"
1132
- }, shouldShowInitialData ? initialSearchData === null || initialSearchData === void 0 ? void 0 : (_initialSearchData$la2 = initialSearchData.latest_products) === null || _initialSearchData$la2 === void 0 ? void 0 : _initialSearchData$la2.map(renderProductCard) : searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$produc2 = searchResults.products) === null || _searchResults$produc2 === void 0 ? void 0 : _searchResults$produc2.map(renderProductCard)), /*#__PURE__*/React__default.createElement("button", {
1215
+ }, renderProductsList()), /*#__PURE__*/React__default.createElement("button", {
1133
1216
  type: "button",
1134
1217
  className: "search-results__view-all-button",
1135
1218
  onClick: function onClick() {
@@ -1252,7 +1335,12 @@
1252
1335
  if (currentSearchRequestToken.current === newSearchToken) {
1253
1336
  var _brandsResponse$data$, _productsResponse$dat, _productsResponse$dat2;
1254
1337
 
1255
- // Extract brands from aggregations
1338
+ // Set loading to false when search completes
1339
+ if (typeof onSearchLoading === 'function') {
1340
+ onSearchLoading(false);
1341
+ } // Extract brands from aggregations
1342
+
1343
+
1256
1344
  var brandsData = ((_brandsResponse$data$ = brandsResponse.data.data.luxity_products_aggregations) === null || _brandsResponse$data$ === void 0 ? void 0 : _brandsResponse$data$.luxity_brand) || []; // Extract products from filter
1257
1345
 
1258
1346
  var productsData = ((_productsResponse$dat = productsResponse.data.data.luxity_products_filter) === null || _productsResponse$dat === void 0 ? void 0 : _productsResponse$dat.data) || [];
@@ -1315,6 +1403,11 @@
1315
1403
  }
1316
1404
  }).catch(function (error) {
1317
1405
  if (!axios.isCancel(error)) {
1406
+ // Set loading to false when search fails
1407
+ if (typeof onSearchLoading === 'function') {
1408
+ onSearchLoading(false);
1409
+ }
1410
+
1318
1411
  setSearchResults({
1319
1412
  brands: [],
1320
1413
  products: []
@@ -1461,7 +1554,7 @@
1461
1554
  onSearchPreview = _ref.onSearchPreview,
1462
1555
  onProductSearchResultClick = _ref.onProductSearchResultClick,
1463
1556
  onBrandSearchResultClick = _ref.onBrandSearchResultClick,
1464
- onSearchLoading = _ref.onSearchLoading,
1557
+ _onSearchLoading = _ref.onSearchLoading,
1465
1558
  onLogoutClick = _ref.onLogoutClick,
1466
1559
  onInterestClick = _ref.onInterestClick,
1467
1560
  onAddressClick = _ref.onAddressClick,
@@ -1491,9 +1584,20 @@
1491
1584
  showNoResults = _useState2[0],
1492
1585
  setShowNoResults = _useState2[1];
1493
1586
 
1587
+ var _useState3 = React.useState(false),
1588
+ _useState4 = _slicedToArray(_useState3, 2),
1589
+ searchLoading = _useState4[0],
1590
+ setSearchLoading = _useState4[1];
1591
+
1494
1592
  var _useSearch = useSearch({
1495
1593
  endpoint: endpoint,
1496
- onSearchLoading: onSearchLoading,
1594
+ onSearchLoading: function onSearchLoading(isLoading) {
1595
+ setSearchLoading(isLoading);
1596
+
1597
+ if (typeof _onSearchLoading === 'function') {
1598
+ _onSearchLoading(isLoading);
1599
+ }
1600
+ },
1497
1601
  currency: currency,
1498
1602
  onSearchPreview: onSearchPreview,
1499
1603
  onNoResults: setShowNoResults
@@ -1502,49 +1606,49 @@
1502
1606
  createDebouncedSearch = _useSearch.createDebouncedSearch,
1503
1607
  createImmediateSearch = _useSearch.createImmediateSearch;
1504
1608
 
1505
- var _useState3 = React.useState(''),
1506
- _useState4 = _slicedToArray(_useState3, 2),
1507
- searchValue = _useState4[0],
1508
- setSearchValue = _useState4[1];
1509
-
1510
- var _useState5 = React.useState(false),
1609
+ var _useState5 = React.useState(''),
1511
1610
  _useState6 = _slicedToArray(_useState5, 2),
1512
- showSearchBar = _useState6[0],
1513
- setShowSearchbar = _useState6[1];
1611
+ searchValue = _useState6[0],
1612
+ setSearchValue = _useState6[1];
1514
1613
 
1515
1614
  var _useState7 = React.useState(false),
1516
1615
  _useState8 = _slicedToArray(_useState7, 2),
1517
- showSideNav = _useState8[0],
1518
- setShowSideNav = _useState8[1];
1616
+ showSearchBar = _useState8[0],
1617
+ setShowSearchbar = _useState8[1];
1519
1618
 
1520
- var _useState9 = React.useState({
1521
- brands: [],
1522
- products: []
1523
- }),
1619
+ var _useState9 = React.useState(false),
1524
1620
  _useState10 = _slicedToArray(_useState9, 2),
1525
- searchResults = _useState10[0],
1526
- setSearchResults = _useState10[1];
1621
+ showSideNav = _useState10[0],
1622
+ setShowSideNav = _useState10[1];
1527
1623
 
1528
1624
  var _useState11 = React.useState({
1529
1625
  brands: [],
1530
1626
  products: []
1531
1627
  }),
1532
1628
  _useState12 = _slicedToArray(_useState11, 2),
1533
- cachedResults = _useState12[0],
1534
- setCachedResults = _useState12[1];
1629
+ searchResults = _useState12[0],
1630
+ setSearchResults = _useState12[1];
1535
1631
 
1536
- var _useState13 = React.useState(false),
1632
+ var _useState13 = React.useState({
1633
+ brands: [],
1634
+ products: []
1635
+ }),
1537
1636
  _useState14 = _slicedToArray(_useState13, 2),
1538
- isSearchFocused = _useState14[0],
1539
- setIsSearchFocused = _useState14[1];
1637
+ cachedResults = _useState14[0],
1638
+ setCachedResults = _useState14[1];
1639
+
1640
+ var _useState15 = React.useState(false),
1641
+ _useState16 = _slicedToArray(_useState15, 2),
1642
+ isSearchFocused = _useState16[0],
1643
+ setIsSearchFocused = _useState16[1];
1540
1644
 
1541
- var _useState15 = React.useState({
1645
+ var _useState17 = React.useState({
1542
1646
  trending_brands: [],
1543
1647
  latest_products: []
1544
1648
  }),
1545
- _useState16 = _slicedToArray(_useState15, 2),
1546
- initialSearchView = _useState16[0],
1547
- setInitialSearchView = _useState16[1];
1649
+ _useState18 = _slicedToArray(_useState17, 2),
1650
+ initialSearchView = _useState18[0],
1651
+ setInitialSearchView = _useState18[1];
1548
1652
 
1549
1653
  var searchResultsRef = React.useRef(null);
1550
1654
  var searchInputRef = React.useRef(null);
@@ -1785,7 +1889,8 @@
1785
1889
  onBrandSearchResultClick: onBrandSearchResultClick,
1786
1890
  onCreateInterests: onCreateInterests,
1787
1891
  noResultsImage: noResultsImage,
1788
- showNoResults: showNoResults
1892
+ showNoResults: showNoResults,
1893
+ isLoading: searchLoading
1789
1894
  }))), shop && /*#__PURE__*/React__default.createElement(LuxitySideNav, {
1790
1895
  accordionIcon: accordionIcon,
1791
1896
  logoSrc: logoSrc,
package/build/bundle.css CHANGED
@@ -1 +1 @@
1
- .interests__add-button{display:flex;flex-direction:row;gap:10px;width:100%}@media only screen and (max-width:879px){.interests__add-button{flex-direction:column}}.interests__section-wrapper{display:flex;flex-direction:column;width:100%}.interests__select-option{display:flex;flex-direction:column;margin-bottom:15px}.interests__title{font-family:El Messiri;font-size:16px;margin-bottom:10px}.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%}.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%}.navbar{box-shadow:2px 2px 10px #dfdede;display:flex;padding-bottom:10px;padding-top:20px;position:relative}@media only screen and (max-width:879px){.navbar{padding-top:12px}}.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-left:16px;padding-right:16px}.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;gap:10px;justify-content:flex-start;width:100%}@media only screen and (max-width:879px){.navbar__wrapper .navbar__menu-icon-wrapper{margin-right:10px}.navbar__wrapper .navbar__logo{margin-left:0;margin-right:auto}.navbar__wrapper .navbar__icons-wrapper{align-items:center;display:flex;gap:20px;margin-left:auto}.navbar__wrapper .navbar__icons{align-items:center;display:flex;gap:20px;margin:0}.navbar__wrapper .navbar__icon{margin:0}}.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__search-container{width:100%}.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:20px}.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:150px}}.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}.navbar__icon.navbar__cart-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__loyalty-icon{height:18px;position:absolute;right:-14px;top:-6px;width:18px}.navbar__cart-icon{position:relative}.navbar__cart-count{bottom:50%;font-size:13px;height:20px;left:60%;position:absolute;width:20px}.navbar__account-initials,.navbar__cart-count{align-items:center;background-color:#f2eeeb;border-radius:50%;color:#000;display:flex;justify-content:center}.navbar__account-initials{font-size:11px;font-weight:500;height:24px;text-transform:uppercase;width:24px}@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}.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}}.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}.search-results{background:#fff;border:1px solid #dfdede;border-radius:2px;box-shadow:0 2px 8px rgba(0,0,0,.08);display:flex;position:absolute;width:770px;z-index:50}@media only screen and (max-width:1052px){.search-results{border:none;box-shadow:none;flex-direction:column;left:0;right:0;top:100%;width:100%}}.search-results__section:first-child{border-right:1px solid #dfdede;flex:1;min-width:240px}.search-results__section:last-child{display:flex;flex:2;flex-direction:column}.search-results__section-header{align-items:center;display:flex;justify-content:space-between}.search-results__header{color:#000;font-family:Martel Sans;font-size:14px;font-weight:600;margin-bottom:0;padding:16px 20px;text-transform:uppercase}.search-results__view-all-link{display:none}@media only screen and (max-width:879px){.search-results__view-all-link{color:#000;display:block;font-family:Martel Sans;font-size:14px;margin-right:20px}}.search-results__list{display:flex;flex-direction:column}.search-results__item{color:grey;font-family:Martel Sans;font-size:14px;padding:8px 20px;text-decoration:none}.search-results__product-list{display:flex;flex-direction:column;overflow-y:auto}.product-card{color:inherit;display:flex;padding:12px 20px;text-decoration:none;transition:background-color .15s ease}.product-card:hover{background-color:#f4f4f4}.product-card__image-container{border-radius:2px;flex-shrink:0;height:90px;margin-right:16px;overflow:hidden;width:90px}.product-card__image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.product-card__details{display:flex;flex:1;flex-direction:column}.product-card__name{color:#000;font-family:Martel Sans;font-size:14px;line-height:1.4;margin-bottom:24px}.product-card__brand-name{font-weight:600}.product-card__info-row{align-items:flex-end;display:flex;justify-content:space-between}@media only screen and (max-width:879px){.product-card__info-row{align-items:flex-start;flex-direction:column}}.product-card__price-group{display:flex;flex-direction:column;gap:4px}.product-card__price{font-family:Martel Sans;font-size:14px;font-weight:600;line-height:1}.product-card__price--promotion{color:#000}.product-card__price--original{color:#939393;font-weight:400;text-decoration:line-through}.product-card__price-with-promotion{display:flex;flex-direction:column;gap:2px}.product-card__retail-price{color:#939393;font-family:Martel Sans;font-size:14px;text-decoration:line-through}.product-card__condition{color:#000;font-family:Martel Sans;font-size:13px;margin-right:20px;text-align:right}.product-card__condition-label{color:#939393;margin-right:4px}.search-results__view-all-button{background-color:#f5f0ea!important;border:none;color:#000;cursor:pointer;font-family:Martel Sans;font-size:13px;font-weight:400;padding:16px;text-align:center}@media only screen and (max-width:879px){.search-results__view-all-button{display:none}}.search-results__no-results{display:flex;flex-direction:column;width:100%}.search-results__no-results-content{align-items:flex-start;display:flex;gap:20px;padding:20px}@media only screen and (max-width:879px){.search-results__no-results-content{align-items:center;flex-direction:column;text-align:center}}.search-results__no-results-image{border-radius:4px;flex-shrink:0;height:180px;overflow:hidden;width:180px}@media only screen and (max-width:879px){.search-results__no-results-image{height:150px;width:150px}}.search-results__no-results-image img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.search-results__no-results-text{display:flex;flex:1;flex-direction:column;gap:12px}.search-results__no-results-title{color:#000;font-family:Martel Sans;font-size:16px;font-weight:600;line-height:1.4;margin:0}.search-results__no-results-description{color:#939393;font-family:Martel Sans;font-size:14px;line-height:1.5;margin:0}.search-results__create-interest-button{background-color:#f5f0ea!important;border:none;color:#000;cursor:pointer;font-family:Martel Sans;font-size:13px;font-weight:400;padding:16px;text-align:center}@media only screen and (max-width:879px){.search-results__create-interest-button{display:block}}.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
+ .interests__add-button{display:flex;flex-direction:row;gap:10px;width:100%}@media only screen and (max-width:879px){.interests__add-button{flex-direction:column}}.interests__section-wrapper{display:flex;flex-direction:column;width:100%}.interests__select-option{display:flex;flex-direction:column;margin-bottom:15px}.interests__title{font-family:El Messiri;font-size:16px;margin-bottom:10px}@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}.navbar{box-shadow:2px 2px 10px #dfdede;display:flex;padding-bottom:10px;padding-top:20px;position:relative}@media only screen and (max-width:879px){.navbar{padding-top:12px}}.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-left:16px;padding-right:16px}.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;gap:10px;justify-content:flex-start;width:100%}@media only screen and (max-width:879px){.navbar__wrapper .navbar__menu-icon-wrapper{margin-right:10px}.navbar__wrapper .navbar__logo{margin-left:0;margin-right:auto}.navbar__wrapper .navbar__icons-wrapper{align-items:center;display:flex;gap:20px;margin-left:auto}.navbar__wrapper .navbar__icons{align-items:center;display:flex;gap:20px;margin:0}.navbar__wrapper .navbar__icon{margin:0}}.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__search-container{width:100%}.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:20px}.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:150px}}.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}.navbar__icon.navbar__cart-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__loyalty-icon{height:18px;position:absolute;right:-14px;top:-6px;width:18px}.navbar__cart-icon{position:relative}.navbar__cart-count{bottom:50%;font-size:13px;height:20px;left:60%;position:absolute;width:20px}.navbar__account-initials,.navbar__cart-count{align-items:center;background-color:#f2eeeb;border-radius:50%;color:#000;display:flex;justify-content:center}.navbar__account-initials{font-size:11px;font-weight:500;height:24px;text-transform:uppercase;width:24px}.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%}.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}}.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}@keyframes shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}.shimmer{animation:shimmer 1.2s ease-in-out infinite;background:linear-gradient(90deg,#f4f4f4 0,#dfdede 20%,#f4f4f4 40%,#f4f4f4);background-size:800px 104px}@media only screen and (max-width:1052px){.shimmer{background-size:600px 104px}}.search-results{background:#fff;border:1px solid #dfdede;border-radius:2px;box-shadow:0 2px 8px rgba(0,0,0,.08);display:flex;position:absolute;width:770px;z-index:50}@media only screen and (max-width:1052px){.search-results{border:none;box-shadow:none;flex-direction:column;left:0;right:0;top:100%;width:100%}}.search-results__section:first-child{border-right:1px solid #dfdede;flex:1;min-width:240px}.search-results__section:last-child{display:flex;flex:2;flex-direction:column}.search-results__section-header{align-items:center;display:flex;justify-content:space-between}.search-results__header{color:#000;font-family:Martel Sans;font-size:14px;font-weight:600;margin-bottom:0;padding:16px 20px;text-transform:uppercase}@media only screen and (max-width:1052px){.search-results__header{font-size:13px;padding:12px 16px}}.search-results__view-all-link{display:none}@media only screen and (max-width:879px){.search-results__view-all-link{color:#000;display:block;font-family:Martel Sans;font-size:14px;margin-right:20px}}.search-results__list{display:flex;flex-direction:column}.search-results__item{color:grey;font-family:Martel Sans;font-size:14px;padding:8px 20px;text-decoration:none}.search-results__product-list{display:flex;flex-direction:column;overflow-y:auto}.product-card{color:inherit;display:flex;padding:12px 20px;text-decoration:none;transition:background-color .15s ease}.product-card:hover{background-color:#f4f4f4}.product-card__image-container{border-radius:2px;flex-shrink:0;height:90px;margin-right:16px;overflow:hidden;width:90px}.product-card__image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.product-card__details{display:flex;flex:1;flex-direction:column}.product-card__name{color:#000;font-family:Martel Sans;font-size:14px;line-height:1.4;margin-bottom:24px}.product-card__brand-name{font-weight:600}.product-card__info-row{align-items:flex-end;display:flex;justify-content:space-between}@media only screen and (max-width:879px){.product-card__info-row{align-items:flex-start;flex-direction:column}}.product-card__price-group{display:flex;flex-direction:column;gap:4px}.product-card__price{font-family:Martel Sans;font-size:14px;font-weight:600;line-height:1}.product-card__price--promotion{color:#000}.product-card__price--original{color:#939393;font-weight:400;text-decoration:line-through}.product-card__price-with-promotion{display:flex;flex-direction:column;gap:2px}.product-card__retail-price{color:#939393;font-family:Martel Sans;font-size:14px;text-decoration:line-through}.product-card__condition{color:#000;font-family:Martel Sans;font-size:13px;margin-right:20px;text-align:right}.product-card__condition-label{color:#939393;margin-right:4px}.search-results__view-all-button{background-color:#f2eeeb!important;border:none;color:#000;cursor:pointer;font-family:Martel Sans;font-size:13px;font-weight:400;padding:16px;text-align:center}@media only screen and (max-width:879px){.search-results__view-all-button{display:none}}.search-results__no-results{display:flex;flex-direction:column;width:100%}.search-results__no-results-content{align-items:flex-start;display:flex;gap:20px;padding:20px}@media only screen and (max-width:879px){.search-results__no-results-content{gap:16px;padding:16px}}@media only screen and (max-width:1052px){.search-results__no-results-content{align-items:flex-start;gap:12px;padding:16px 12px}}.search-results__no-results-image{border-radius:4px;flex-shrink:0;height:180px;overflow:hidden;width:180px}@media only screen and (max-width:879px){.search-results__no-results-image{height:120px;width:120px}}@media only screen and (max-width:1052px){.search-results__no-results-image{height:100px;width:100px}}.search-results__no-results-image img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.search-results__no-results-text{display:flex;flex:1;flex-direction:column;gap:12px;text-align:left}@media only screen and (max-width:1052px){.search-results__no-results-text{gap:8px}}.search-results__no-results-title{color:#000;font-family:Martel Sans;font-size:16px;font-weight:600;line-height:1.4;margin:0}@media only screen and (max-width:879px){.search-results__no-results-title{font-size:14px}}@media only screen and (max-width:1052px){.search-results__no-results-title{font-size:14px;line-height:1.3}}.search-results__no-results-description{color:#939393;font-family:Martel Sans;font-size:14px;line-height:1.5;margin:0}@media only screen and (max-width:879px){.search-results__no-results-description{font-size:13px}}@media only screen and (max-width:1052px){.search-results__no-results-description{font-size:12px;line-height:1.4}}.search-results__create-interest-button{background-color:#f2eeeb!important;border:none;color:#000;cursor:pointer;font-family:Martel Sans;font-size:13px;font-weight:400;padding:16px;text-align:center;width:100%}@media only screen and (max-width:879px){.search-results__create-interest-button{display:block}}@media only screen and (max-width:1052px){.search-results__create-interest-button{font-size:13px;margin-top:8px;padding:14px 16px}}.brand-skeleton{display:flex;flex-direction:column;width:100%}.brand-skeleton__item{background-color:#f4f4f4;border-radius:4px;height:32px;margin:8px 20px}.brand-skeleton__item:first-child{margin-top:0}@media only screen and (max-width:1052px){.brand-skeleton__item{height:28px;margin:6px 16px}}.product-skeleton{display:flex;gap:16px;padding:12px 20px}@media only screen and (max-width:1052px){.product-skeleton{gap:12px;padding:10px 16px}}.product-skeleton__image{background-color:#f4f4f4;border-radius:2px;flex-shrink:0;height:90px;width:90px}@media only screen and (max-width:1052px){.product-skeleton__image{height:70px;width:70px}}.product-skeleton__content{display:flex;flex:1;flex-direction:column;gap:12px}@media only screen and (max-width:1052px){.product-skeleton__content{gap:8px}}.product-skeleton__title{background-color:#f4f4f4;border-radius:4px;height:16px;width:100%}@media only screen and (max-width:1052px){.product-skeleton__title{height:14px}}.product-skeleton__subtitle{background-color:#f4f4f4;border-radius:4px;height:14px;width:80%}@media only screen and (max-width:1052px){.product-skeleton__subtitle{height:12px;width:70%}}.product-skeleton__price{background-color:#f4f4f4;border-radius:4px;height:14px;margin-top:auto;width:60%}@media only screen and (max-width:1052px){.product-skeleton__price{height:12px;width:50%}}.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
@@ -15804,7 +15804,7 @@
15804
15804
  };
15805
15805
 
15806
15806
  var SearchResults = function SearchResults(_ref) {
15807
- var _searchResults$brands, _searchResults$produc, _initialSearchData$tr, _initialSearchData$la, _limitBrands, _limitBrands2, _initialSearchData$la2, _searchResults$produc2;
15807
+ var _searchResults$brands, _searchResults$produc, _initialSearchData$tr, _initialSearchData$la;
15808
15808
 
15809
15809
  var searchValue = _ref.searchValue,
15810
15810
  searchResults = _ref.searchResults,
@@ -15821,7 +15821,9 @@
15821
15821
  onBrandSearchResultClick = _ref.onBrandSearchResultClick,
15822
15822
  onCreateInterests = _ref.onCreateInterests,
15823
15823
  noResultsImage = _ref.noResultsImage,
15824
- showNoResults = _ref.showNoResults;
15824
+ showNoResults = _ref.showNoResults,
15825
+ _ref$isLoading = _ref.isLoading,
15826
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading;
15825
15827
 
15826
15828
  var _useState = React.useState(false),
15827
15829
  _useState2 = _slicedToArray(_useState, 2),
@@ -15860,6 +15862,39 @@
15860
15862
  return "".concat(currencySymbol).concat(formatter.format(price));
15861
15863
  };
15862
15864
 
15865
+ var renderBrandSkeleton = function renderBrandSkeleton() {
15866
+ return /*#__PURE__*/React__default.createElement("div", {
15867
+ className: "brand-skeleton"
15868
+ }, /*#__PURE__*/React__default.createElement("div", {
15869
+ className: "brand-skeleton__item shimmer"
15870
+ }), /*#__PURE__*/React__default.createElement("div", {
15871
+ className: "brand-skeleton__item shimmer"
15872
+ }), /*#__PURE__*/React__default.createElement("div", {
15873
+ className: "brand-skeleton__item shimmer"
15874
+ }), /*#__PURE__*/React__default.createElement("div", {
15875
+ className: "brand-skeleton__item shimmer"
15876
+ }));
15877
+ };
15878
+
15879
+ var renderProductSkeleton = function renderProductSkeleton() {
15880
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, _toConsumableArray(Array(3)).map(function (_, index) {
15881
+ return /*#__PURE__*/React__default.createElement("div", {
15882
+ key: index,
15883
+ className: "product-skeleton"
15884
+ }, /*#__PURE__*/React__default.createElement("div", {
15885
+ className: "product-skeleton__image shimmer"
15886
+ }), /*#__PURE__*/React__default.createElement("div", {
15887
+ className: "product-skeleton__content"
15888
+ }, /*#__PURE__*/React__default.createElement("div", {
15889
+ className: "product-skeleton__title shimmer"
15890
+ }), /*#__PURE__*/React__default.createElement("div", {
15891
+ className: "product-skeleton__subtitle shimmer"
15892
+ }), /*#__PURE__*/React__default.createElement("div", {
15893
+ className: "product-skeleton__price shimmer"
15894
+ })));
15895
+ }));
15896
+ };
15897
+
15863
15898
  var renderProductCard = function renderProductCard(product) {
15864
15899
  var selectedPrice = product.prices ? product.prices.find(function (p) {
15865
15900
  return p.currency === currency;
@@ -15929,6 +15964,70 @@
15929
15964
  }
15930
15965
 
15931
15966
  return brands;
15967
+ };
15968
+
15969
+ var renderBrandsList = function renderBrandsList() {
15970
+ var _limitBrands2;
15971
+
15972
+ if (isLoading) {
15973
+ return renderBrandSkeleton();
15974
+ }
15975
+
15976
+ if (shouldShowInitialData) {
15977
+ var _limitBrands;
15978
+
15979
+ return (_limitBrands = limitBrands(initialSearchData === null || initialSearchData === void 0 ? void 0 : initialSearchData.trending_brands)) === null || _limitBrands === void 0 ? void 0 : _limitBrands.map(function (brand) {
15980
+ return /*#__PURE__*/React__default.createElement("a", {
15981
+ key: brand.id,
15982
+ href: getBrandLink(brand),
15983
+ className: "search-results__item",
15984
+ onClick: function onClick() {
15985
+ if (typeof onBrandSearchResultClick === 'function') {
15986
+ onBrandSearchResultClick({
15987
+ brand_name: brand.name,
15988
+ brand_link: getBrandLink(brand),
15989
+ search_string: searchValue,
15990
+ is_trending: true
15991
+ });
15992
+ }
15993
+ }
15994
+ }, brand.name);
15995
+ });
15996
+ }
15997
+
15998
+ return (_limitBrands2 = limitBrands(searchResults === null || searchResults === void 0 ? void 0 : searchResults.brands)) === null || _limitBrands2 === void 0 ? void 0 : _limitBrands2.map(function (brand) {
15999
+ return /*#__PURE__*/React__default.createElement("a", {
16000
+ key: brand.link,
16001
+ href: brand.link,
16002
+ className: "search-results__item",
16003
+ onClick: function onClick() {
16004
+ if (typeof onBrandSearchResultClick === 'function') {
16005
+ onBrandSearchResultClick({
16006
+ brand_name: brand.name,
16007
+ brand_link: brand.link,
16008
+ search_string: searchValue,
16009
+ is_trending: false
16010
+ });
16011
+ }
16012
+ }
16013
+ }, brand.name);
16014
+ });
16015
+ };
16016
+
16017
+ var renderProductsList = function renderProductsList() {
16018
+ var _searchResults$produc2;
16019
+
16020
+ if (isLoading) {
16021
+ return renderProductSkeleton();
16022
+ }
16023
+
16024
+ if (shouldShowInitialData) {
16025
+ var _initialSearchData$la2;
16026
+
16027
+ return initialSearchData === null || initialSearchData === void 0 ? void 0 : (_initialSearchData$la2 = initialSearchData.latest_products) === null || _initialSearchData$la2 === void 0 ? void 0 : _initialSearchData$la2.map(renderProductCard);
16028
+ }
16029
+
16030
+ return searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$produc2 = searchResults.products) === null || _searchResults$produc2 === void 0 ? void 0 : _searchResults$produc2.map(renderProductCard);
15932
16031
  }; // Show no results state
15933
16032
 
15934
16033
 
@@ -15969,39 +16068,7 @@
15969
16068
  className: "search-results__header"
15970
16069
  }, shouldShowInitialData ? 'TRENDING SEARCHES' : 'BRANDS'), /*#__PURE__*/React__default.createElement("div", {
15971
16070
  className: "search-results__list"
15972
- }, shouldShowInitialData ? (_limitBrands = limitBrands(initialSearchData === null || initialSearchData === void 0 ? void 0 : initialSearchData.trending_brands)) === null || _limitBrands === void 0 ? void 0 : _limitBrands.map(function (brand) {
15973
- return /*#__PURE__*/React__default.createElement("a", {
15974
- key: brand.id,
15975
- href: getBrandLink(brand),
15976
- className: "search-results__item",
15977
- onClick: function onClick() {
15978
- if (typeof onBrandSearchResultClick === 'function') {
15979
- onBrandSearchResultClick({
15980
- brand_name: brand.name,
15981
- brand_link: getBrandLink(brand),
15982
- search_string: searchValue,
15983
- is_trending: true
15984
- });
15985
- }
15986
- }
15987
- }, brand.name);
15988
- }) : (_limitBrands2 = limitBrands(searchResults === null || searchResults === void 0 ? void 0 : searchResults.brands)) === null || _limitBrands2 === void 0 ? void 0 : _limitBrands2.map(function (brand) {
15989
- return /*#__PURE__*/React__default.createElement("a", {
15990
- key: brand.link,
15991
- href: brand.link,
15992
- className: "search-results__item",
15993
- onClick: function onClick() {
15994
- if (typeof onBrandSearchResultClick === 'function') {
15995
- onBrandSearchResultClick({
15996
- brand_name: brand.name,
15997
- brand_link: brand.link,
15998
- search_string: searchValue,
15999
- is_trending: false
16000
- });
16001
- }
16002
- }
16003
- }, brand.name);
16004
- }))), /*#__PURE__*/React__default.createElement("div", {
16071
+ }, renderBrandsList())), /*#__PURE__*/React__default.createElement("div", {
16005
16072
  className: "search-results__section"
16006
16073
  }, /*#__PURE__*/React__default.createElement("div", {
16007
16074
  className: "search-results__section-header"
@@ -16015,7 +16082,7 @@
16015
16082
  }
16016
16083
  }, "View all items")), /*#__PURE__*/React__default.createElement("div", {
16017
16084
  className: "search-results__product-list"
16018
- }, shouldShowInitialData ? initialSearchData === null || initialSearchData === void 0 ? void 0 : (_initialSearchData$la2 = initialSearchData.latest_products) === null || _initialSearchData$la2 === void 0 ? void 0 : _initialSearchData$la2.map(renderProductCard) : searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$produc2 = searchResults.products) === null || _searchResults$produc2 === void 0 ? void 0 : _searchResults$produc2.map(renderProductCard)), /*#__PURE__*/React__default.createElement("button", {
16085
+ }, renderProductsList()), /*#__PURE__*/React__default.createElement("button", {
16019
16086
  type: "button",
16020
16087
  className: "search-results__view-all-button",
16021
16088
  onClick: function onClick() {
@@ -16138,7 +16205,12 @@
16138
16205
  if (currentSearchRequestToken.current === newSearchToken) {
16139
16206
  var _brandsResponse$data$, _productsResponse$dat, _productsResponse$dat2;
16140
16207
 
16141
- // Extract brands from aggregations
16208
+ // Set loading to false when search completes
16209
+ if (typeof onSearchLoading === 'function') {
16210
+ onSearchLoading(false);
16211
+ } // Extract brands from aggregations
16212
+
16213
+
16142
16214
  var brandsData = ((_brandsResponse$data$ = brandsResponse.data.data.luxity_products_aggregations) === null || _brandsResponse$data$ === void 0 ? void 0 : _brandsResponse$data$.luxity_brand) || []; // Extract products from filter
16143
16215
 
16144
16216
  var productsData = ((_productsResponse$dat = productsResponse.data.data.luxity_products_filter) === null || _productsResponse$dat === void 0 ? void 0 : _productsResponse$dat.data) || [];
@@ -16201,6 +16273,11 @@
16201
16273
  }
16202
16274
  }).catch(function (error) {
16203
16275
  if (!axios.isCancel(error)) {
16276
+ // Set loading to false when search fails
16277
+ if (typeof onSearchLoading === 'function') {
16278
+ onSearchLoading(false);
16279
+ }
16280
+
16204
16281
  setSearchResults({
16205
16282
  brands: [],
16206
16283
  products: []
@@ -16348,7 +16425,7 @@
16348
16425
  onSearchPreview = _ref.onSearchPreview,
16349
16426
  onProductSearchResultClick = _ref.onProductSearchResultClick,
16350
16427
  onBrandSearchResultClick = _ref.onBrandSearchResultClick,
16351
- onSearchLoading = _ref.onSearchLoading,
16428
+ _onSearchLoading = _ref.onSearchLoading,
16352
16429
  currency = _ref.currency,
16353
16430
  currencySymbol = _ref.currencySymbol,
16354
16431
  currencyOptions = _ref.currencyOptions,
@@ -16378,53 +16455,64 @@
16378
16455
 
16379
16456
  var _useState5 = React.useState(false),
16380
16457
  _useState6 = _slicedToArray(_useState5, 2),
16381
- isSearchFocused = _useState6[0],
16382
- setIsSearchFocused = _useState6[1];
16458
+ searchLoading = _useState6[0],
16459
+ setSearchLoading = _useState6[1];
16460
+
16461
+ var _useState7 = React.useState(false),
16462
+ _useState8 = _slicedToArray(_useState7, 2),
16463
+ isSearchFocused = _useState8[0],
16464
+ setIsSearchFocused = _useState8[1];
16383
16465
 
16384
- var _useState7 = React.useState({
16466
+ var _useState9 = React.useState({
16385
16467
  trending_brands: [],
16386
16468
  latest_products: []
16387
16469
  }),
16388
- _useState8 = _slicedToArray(_useState7, 2),
16389
- initialSearchView = _useState8[0],
16390
- setInitialSearchView = _useState8[1];
16391
-
16392
- var _useState9 = React.useState({}),
16393
16470
  _useState10 = _slicedToArray(_useState9, 2),
16394
- dropdownData = _useState10[0],
16395
- setDropdownData = _useState10[1];
16471
+ initialSearchView = _useState10[0],
16472
+ setInitialSearchView = _useState10[1];
16396
16473
 
16397
- var _useState11 = React.useState(false),
16474
+ var _useState11 = React.useState({}),
16398
16475
  _useState12 = _slicedToArray(_useState11, 2),
16399
- hasError = _useState12[0],
16400
- setHasError = _useState12[1];
16476
+ dropdownData = _useState12[0],
16477
+ setDropdownData = _useState12[1];
16401
16478
 
16402
- var _useState13 = React.useState({
16403
- brands: [],
16404
- products: []
16405
- }),
16479
+ var _useState13 = React.useState(false),
16406
16480
  _useState14 = _slicedToArray(_useState13, 2),
16407
- searchResults = _useState14[0],
16408
- setSearchResults = _useState14[1];
16481
+ hasError = _useState14[0],
16482
+ setHasError = _useState14[1];
16409
16483
 
16410
16484
  var _useState15 = React.useState({
16411
16485
  brands: [],
16412
16486
  products: []
16413
16487
  }),
16414
16488
  _useState16 = _slicedToArray(_useState15, 2),
16415
- cachedResults = _useState16[0],
16416
- setCachedResults = _useState16[1];
16489
+ searchResults = _useState16[0],
16490
+ setSearchResults = _useState16[1];
16417
16491
 
16418
- var _useState17 = React.useState(false),
16492
+ var _useState17 = React.useState({
16493
+ brands: [],
16494
+ products: []
16495
+ }),
16419
16496
  _useState18 = _slicedToArray(_useState17, 2),
16420
- showNoResults = _useState18[0],
16421
- setShowNoResults = _useState18[1];
16497
+ cachedResults = _useState18[0],
16498
+ setCachedResults = _useState18[1];
16499
+
16500
+ var _useState19 = React.useState(false),
16501
+ _useState20 = _slicedToArray(_useState19, 2),
16502
+ showNoResults = _useState20[0],
16503
+ setShowNoResults = _useState20[1];
16422
16504
 
16423
16505
  var searchResultsRef = React.useRef(null);
16424
16506
 
16425
16507
  var _useSearch = useSearch({
16426
16508
  endpoint: endpoint,
16427
- onSearchLoading: onSearchLoading,
16509
+ onSearchLoading: function onSearchLoading(isLoading) {
16510
+ setSearchLoading(isLoading);
16511
+
16512
+ if (typeof _onSearchLoading === 'function') {
16513
+ _onSearchLoading(isLoading);
16514
+ }
16515
+ },
16428
16516
  currency: currency,
16429
16517
  onSearchPreview: onSearchPreview,
16430
16518
  onNoResults: setShowNoResults
@@ -16579,7 +16667,8 @@
16579
16667
  onBrandSearchResultClick: onBrandSearchResultClick,
16580
16668
  onCreateInterests: onCreateInterests,
16581
16669
  noResultsImage: noResultsImage,
16582
- showNoResults: showNoResults
16670
+ showNoResults: showNoResults,
16671
+ isLoading: searchLoading
16583
16672
  }), /*#__PURE__*/React__default.createElement("nav", {
16584
16673
  className: "navbar__nav-links navbar__nav-links--wrap"
16585
16674
  }, renderDropdownLinks(), !!stores.length && /*#__PURE__*/React__default.createElement("li", {
@@ -17276,7 +17365,7 @@
17276
17365
  onSearchPreview = _ref.onSearchPreview,
17277
17366
  onProductSearchResultClick = _ref.onProductSearchResultClick,
17278
17367
  onBrandSearchResultClick = _ref.onBrandSearchResultClick,
17279
- onSearchLoading = _ref.onSearchLoading,
17368
+ _onSearchLoading = _ref.onSearchLoading,
17280
17369
  onLogoutClick = _ref.onLogoutClick,
17281
17370
  onInterestClick = _ref.onInterestClick,
17282
17371
  onAddressClick = _ref.onAddressClick,
@@ -17306,9 +17395,20 @@
17306
17395
  showNoResults = _useState2[0],
17307
17396
  setShowNoResults = _useState2[1];
17308
17397
 
17398
+ var _useState3 = React.useState(false),
17399
+ _useState4 = _slicedToArray(_useState3, 2),
17400
+ searchLoading = _useState4[0],
17401
+ setSearchLoading = _useState4[1];
17402
+
17309
17403
  var _useSearch = useSearch({
17310
17404
  endpoint: endpoint,
17311
- onSearchLoading: onSearchLoading,
17405
+ onSearchLoading: function onSearchLoading(isLoading) {
17406
+ setSearchLoading(isLoading);
17407
+
17408
+ if (typeof _onSearchLoading === 'function') {
17409
+ _onSearchLoading(isLoading);
17410
+ }
17411
+ },
17312
17412
  currency: currency,
17313
17413
  onSearchPreview: onSearchPreview,
17314
17414
  onNoResults: setShowNoResults
@@ -17317,49 +17417,49 @@
17317
17417
  createDebouncedSearch = _useSearch.createDebouncedSearch,
17318
17418
  createImmediateSearch = _useSearch.createImmediateSearch;
17319
17419
 
17320
- var _useState3 = React.useState(''),
17321
- _useState4 = _slicedToArray(_useState3, 2),
17322
- searchValue = _useState4[0],
17323
- setSearchValue = _useState4[1];
17324
-
17325
- var _useState5 = React.useState(false),
17420
+ var _useState5 = React.useState(''),
17326
17421
  _useState6 = _slicedToArray(_useState5, 2),
17327
- showSearchBar = _useState6[0],
17328
- setShowSearchbar = _useState6[1];
17422
+ searchValue = _useState6[0],
17423
+ setSearchValue = _useState6[1];
17329
17424
 
17330
17425
  var _useState7 = React.useState(false),
17331
17426
  _useState8 = _slicedToArray(_useState7, 2),
17332
- showSideNav = _useState8[0],
17333
- setShowSideNav = _useState8[1];
17427
+ showSearchBar = _useState8[0],
17428
+ setShowSearchbar = _useState8[1];
17334
17429
 
17335
- var _useState9 = React.useState({
17336
- brands: [],
17337
- products: []
17338
- }),
17430
+ var _useState9 = React.useState(false),
17339
17431
  _useState10 = _slicedToArray(_useState9, 2),
17340
- searchResults = _useState10[0],
17341
- setSearchResults = _useState10[1];
17432
+ showSideNav = _useState10[0],
17433
+ setShowSideNav = _useState10[1];
17342
17434
 
17343
17435
  var _useState11 = React.useState({
17344
17436
  brands: [],
17345
17437
  products: []
17346
17438
  }),
17347
17439
  _useState12 = _slicedToArray(_useState11, 2),
17348
- cachedResults = _useState12[0],
17349
- setCachedResults = _useState12[1];
17440
+ searchResults = _useState12[0],
17441
+ setSearchResults = _useState12[1];
17350
17442
 
17351
- var _useState13 = React.useState(false),
17443
+ var _useState13 = React.useState({
17444
+ brands: [],
17445
+ products: []
17446
+ }),
17352
17447
  _useState14 = _slicedToArray(_useState13, 2),
17353
- isSearchFocused = _useState14[0],
17354
- setIsSearchFocused = _useState14[1];
17448
+ cachedResults = _useState14[0],
17449
+ setCachedResults = _useState14[1];
17355
17450
 
17356
- var _useState15 = React.useState({
17451
+ var _useState15 = React.useState(false),
17452
+ _useState16 = _slicedToArray(_useState15, 2),
17453
+ isSearchFocused = _useState16[0],
17454
+ setIsSearchFocused = _useState16[1];
17455
+
17456
+ var _useState17 = React.useState({
17357
17457
  trending_brands: [],
17358
17458
  latest_products: []
17359
17459
  }),
17360
- _useState16 = _slicedToArray(_useState15, 2),
17361
- initialSearchView = _useState16[0],
17362
- setInitialSearchView = _useState16[1];
17460
+ _useState18 = _slicedToArray(_useState17, 2),
17461
+ initialSearchView = _useState18[0],
17462
+ setInitialSearchView = _useState18[1];
17363
17463
 
17364
17464
  var searchResultsRef = React.useRef(null);
17365
17465
  var searchInputRef = React.useRef(null);
@@ -17600,7 +17700,8 @@
17600
17700
  onBrandSearchResultClick: onBrandSearchResultClick,
17601
17701
  onCreateInterests: onCreateInterests,
17602
17702
  noResultsImage: noResultsImage,
17603
- showNoResults: showNoResults
17703
+ showNoResults: showNoResults,
17704
+ isLoading: searchLoading
17604
17705
  }))), shop && /*#__PURE__*/React__default.createElement(LuxitySideNav, {
17605
17706
  accordionIcon: accordionIcon,
17606
17707
  logoSrc: logoSrc,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bonlineza/luxity-lib",
3
- "version": "2.38.2",
3
+ "version": "2.39.0",
4
4
  "scripts": {
5
5
  "start": "start-storybook -p 9001 -c .storybook -s ./public",
6
6
  "clean": "rimraf ./build/*.*",
package/TestComponent.js DELETED
@@ -1,15 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react')) :
3
- typeof define === 'function' && define.amd ? define(['react'], factory) :
4
- (global = global || self, global.TestComponent = factory(global.React));
5
- }(this, (function (React) { 'use strict';
6
-
7
- React = React && Object.prototype.hasOwnProperty.call(React, 'default') ? React['default'] : React;
8
-
9
- var TestComponent = function TestComponent() {
10
- return /*#__PURE__*/React.createElement("div", null, "TestComponent");
11
- };
12
-
13
- return TestComponent;
14
-
15
- })));
@@ -1,18 +0,0 @@
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;
@@ -1,34 +0,0 @@
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/postcss.config.js DELETED
@@ -1,6 +0,0 @@
1
- module.exports = {
2
- plugins: {
3
- tailwindcss: {},
4
- autoprefixer: {},
5
- },
6
- };