@bonlineza/luxity-lib 2.38.2 → 2.39.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LuxityDesktopHeader.js +169 -64
- package/LuxityFooter.js +1 -0
- package/LuxityMobileHeader.js +170 -65
- package/build/bundle.css +1 -1
- package/build/bundle.js +194 -92
- package/package.json +1 -1
- package/TestComponent.js +0 -15
- package/build/CountryCodeSelect/index.js +0 -18
- package/build/ReactSelectWrapper/index.js +0 -34
- package/postcss.config.js +0 -6
package/LuxityDesktopHeader.js
CHANGED
|
@@ -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
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
//
|
|
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
|
-
|
|
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
|
-
|
|
1079
|
-
|
|
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
|
|
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
|
-
|
|
1092
|
-
|
|
1184
|
+
initialSearchView = _useState10[0],
|
|
1185
|
+
setInitialSearchView = _useState10[1];
|
|
1093
1186
|
|
|
1094
|
-
var _useState11 = React.useState(
|
|
1187
|
+
var _useState11 = React.useState({}),
|
|
1095
1188
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
1096
|
-
|
|
1097
|
-
|
|
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
|
-
|
|
1105
|
-
|
|
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
|
-
|
|
1113
|
-
|
|
1202
|
+
searchResults = _useState16[0],
|
|
1203
|
+
setSearchResults = _useState16[1];
|
|
1114
1204
|
|
|
1115
|
-
var _useState17 = React.useState(
|
|
1205
|
+
var _useState17 = React.useState({
|
|
1206
|
+
brands: [],
|
|
1207
|
+
products: []
|
|
1208
|
+
}),
|
|
1116
1209
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
1117
|
-
|
|
1118
|
-
|
|
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", {
|
package/LuxityFooter.js
CHANGED
package/LuxityMobileHeader.js
CHANGED
|
@@ -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
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
//
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
1513
|
-
|
|
1611
|
+
searchValue = _useState6[0],
|
|
1612
|
+
setSearchValue = _useState6[1];
|
|
1514
1613
|
|
|
1515
1614
|
var _useState7 = React.useState(false),
|
|
1516
1615
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
1517
|
-
|
|
1518
|
-
|
|
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
|
-
|
|
1526
|
-
|
|
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
|
-
|
|
1534
|
-
|
|
1629
|
+
searchResults = _useState12[0],
|
|
1630
|
+
setSearchResults = _useState12[1];
|
|
1535
1631
|
|
|
1536
|
-
var _useState13 = React.useState(
|
|
1632
|
+
var _useState13 = React.useState({
|
|
1633
|
+
brands: [],
|
|
1634
|
+
products: []
|
|
1635
|
+
}),
|
|
1537
1636
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
1538
|
-
|
|
1539
|
-
|
|
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
|
|
1645
|
+
var _useState17 = React.useState({
|
|
1542
1646
|
trending_brands: [],
|
|
1543
1647
|
latest_products: []
|
|
1544
1648
|
}),
|
|
1545
|
-
|
|
1546
|
-
initialSearchView =
|
|
1547
|
-
setInitialSearchView =
|
|
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}.footer__newsletter-section{align-items:center;background-color:#000;color:#fff;display:flex;justify-content:space-between;padding:2.265rem 0}@media only screen and (max-width:879px){.footer__newsletter-section{flex-direction:column}}.footer__newsletter-wrapper{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1280px;padding-left:32px;padding-right:32px;width:100%}@media only screen and (max-width:879px){.footer__newsletter-wrapper{flex-direction:column}.footer__link-container{flex-basis:50%}}.footer__newsletter-icon{height:30px;position:absolute;right:0;top:0;width:32px}.footer__newsletter-form{flex-basis:50%;max-width:250px;position:relative}@media only screen and (max-width:879px){.footer__newsletter-form{display:block;margin-top:20px;max-width:100%;width:100%}}.footer__newsletter-title{font-family:Martel Sans,sans-serif;font-size:14px;font-weight:700;letter-spacing:3px;margin-bottom:1.125rem;text-transform:uppercase}.footer__newsletter-text{font-size:14px}.footer__form-input{background-color:#000;border:none;border-bottom:1px solid #fff;color:#fff;height:30px;outline:none;width:100%}.footer__form-input::-moz-placeholder{color:#fff;font-weight:400}.footer__form-input::placeholder{color:#fff;font-weight:400}.footer__form-errors{color:#fff;margin-top:5px}.footer__main-section{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:50px;margin-top:80px}.footer__link-title{font-family:El Messiri;font-size:16px;font-weight:700;margin-bottom:20px;text-transform:uppercase}@media only screen and (max-width:879px){.footer__link-title{margin-bottom:10px}}.footer__link-child{margin-top:25px}.footer__links{display:flex;flex-direction:column}.footer__link{color:#939393;cursor:pointer;font-family:Martel Sans;font-size:14px;line-height:20px;margin-bottom:7px;text-align:left;text-decoration:none}.footer__link:hover{color:#000;text-decoration:underline}@media only screen and (max-width:879px){.footer__link{margin-bottom:10px}}.footer__link-wrapper{align-items:center;display:flex;gap:5px}.footer__link-icon{height:30px;margin-bottom:18px}.footer__text{color:#939393;font-family:Martel Sans;font-size:14px;line-height:20px;margin-bottom:15px;text-align:left;text-decoration:none}.footer__store-hours{margin-top:35px}.footer__copyrights-section{border-top:1px solid;display:flex;justify-content:space-between;padding-bottom:20px;padding-top:20px}.footer__logo{height:30px;width:135px}.footer__payment-icons{align-items:center;display:flex;gap:8px}.footer__wrapper{margin:0 auto;max-width:1280px;padding-left:32px;padding-right:32px;width:100%}@media only screen and (max-width:879px){.footer__wrapper{padding:32px 0 0 24px}}.footer__wrapper--desktop{display:block}@media only screen and (max-width:879px){.footer__wrapper--desktop{display:none}}.footer__wrapper--mobile{display:none}@media only screen and (max-width:879px){.footer__wrapper--mobile{display:block;padding-top:30px}}.footer__copyright{font-size:10px;line-height:22px}.footer__copyright--mobile{display:none}@media only screen and (max-width:879px){.footer__copyright--mobile{display:block;padding:30px 10px 30px 0;text-align:center}}.footer__section-row{display:flex;gap:50%}@media only screen and (max-width:879px){.footer__section-row{gap:unset}}.side-nav{font-family:Martel Sans}.side-nav__errors{align-items:center;color:red;display:flex;font-size:16px;justify-content:center}.side-nav__overlay{background-color:rgba(78,73,73,.51);height:100%;opacity:0;position:fixed;top:0;transition:opacity .5s ease-out 0s,visibility .5s ease-out 0s;width:100%;z-index:99999}.side-nav__overlay--visible{opacity:1;visibility:visible}.side-nav__overlay--hidden{opacity:1;visibility:hidden}.side-nav__content{background-color:#fff;bottom:0;overflow-y:scroll;padding:1.5rem;position:fixed;top:0;transition:left .5s ease-in-out;width:80%;z-index:99999}.side-nav__content--hidden{display:none}.side-nav__content--open{left:0}.side-nav__content--closed{left:-100%}.side-nav__menu-title-wrapper{align-items:center;background-color:transparent;border:none;display:flex;justify-content:space-between;outline:none;width:100%}.side-nav__icon-container{float:right;margin-bottom:10px}.side-nav__menu-title{font-size:14px;font-weight:700;line-height:20px;text-transform:uppercase}.side-nav__accordion-icon{height:auto;width:15px}.side-nav__menu-item{margin-bottom:25px}.side-nav__close-icon{height:20px;margin-left:auto;width:20px}.side-nav__back-button-wrapper{align-items:center;display:flex;margin-bottom:25px}.side-nav__back-icon{height:20px;width:20px}.side-nav__back-button,.side-nav__sub-menu-title{font-weight:700;text-transform:uppercase}.side-nav__sub-menu-title{font-size:14px;margin-bottom:10px}.side-nav__elements{display:flex;flex-direction:column}.side-nav__element{color:#555;cursor:pointer;line-height:20px;margin-bottom:10px}.side-nav__element,.side-nav__sub-link{font-size:14px;font-weight:400;text-transform:capitalize}.side-nav__block-button{background-color:#000;color:#fff;font-weight:700;padding:10px 0;width:100%}.side-nav{font-family:Martel Sans}.side-nav__errors{align-items:center;color:red;display:flex;font-size:16px;justify-content:center}.side-nav__overlay{background-color:rgba(78,73,73,.51);height:100%;opacity:0;position:fixed;top:0;transition:opacity .5s ease-out 0s,visibility .5s ease-out 0s;width:100%;z-index:99999}.side-nav__overlay--visible{opacity:1;visibility:visible}.side-nav__overlay--hidden{opacity:1;visibility:hidden}.side-nav__content{background-color:#fff;bottom:0;overflow-y:scroll;padding:1.5rem;position:fixed;top:0;transition:left .5s ease-in-out;width:80%;z-index:99999}.side-nav__content--hidden{display:none}.side-nav__content--open{left:0}.side-nav__content--closed{left:-100%}.side-nav__menu-title-wrapper{align-items:center;background-color:transparent;border:none;display:flex;outline:none;width:100%}.side-nav__icon-container{float:right;margin-bottom:10px}.side-nav__menu-title{align-items:center;display:flex;font-size:14px;font-weight:700;justify-content:center;line-height:20px;text-transform:uppercase}.side-nav__menu-icon{display:flex;height:25px;margin-right:10px;width:25px}.side-nav__menu-divider{margin-bottom:40px}.side-nav__accordion-icon{height:auto;width:15px}.side-nav__menu-item{margin-bottom:25px}.side-nav__close-icon{height:20px;margin-left:auto;width:20px}.side-nav__back-button-wrapper{align-items:center;display:flex;margin-bottom:25px}.side-nav__back-icon{height:20px;width:20px}.side-nav__back-button,.side-nav__sub-menu-title{font-weight:700;text-transform:uppercase}.side-nav__sub-menu-title{font-size:14px;margin-bottom:10px}.side-nav__elements{display:flex;flex-direction:column}.side-nav__element{color:#555;cursor:pointer;line-height:20px;margin-bottom:10px}.side-nav__element,.side-nav__sub-link{font-size:14px;font-weight:400;text-transform:capitalize}.side-nav__block-button{background-color:#000;color:#fff;font-weight:700;padding:10px 0;width:100%}.stores-dropdown{align-items:flex-start;display:flex;font-family:Martel Sans;gap:20px;margin-left:auto;margin-right:auto;max-width:1280px;overflow-x:auto;padding:20px 15px}.stores-dropdown__image{height:200px;-o-object-fit:cover;object-fit:cover;width:100%}.stores-dropdown__store-details{flex-basis:20%}.stores-dropdown__title{font-family:El Messiri}.stores-dropdown__main-title,.stores-dropdown__title{font-size:16px;font-weight:400;letter-spacing:3px;margin-top:20px}.stores-dropdown__main-title{font-weight:700;margin-bottom:10px}.stores-dropdown__open-days{font-size:12px;font-weight:700;line-height:20px}.stores-dropdown__open-hours{font-size:12px;font-weight:400;line-height:20px}.stores-dropdown__queries-title{font-family:El Messiri;font-size:16px;font-weight:400;letter-spacing:3px}.stores-dropdown__contact-details{font-size:16px;font-weight:700}.stores-dropdown__view-more{cursor:pointer;font-size:14px;font-weight:400;margin-top:10px;text-transform:capitalize}@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
|
@@ -15136,6 +15136,7 @@
|
|
|
15136
15136
|
_formControl.current.formState = getProxyFormState(formState, control);
|
|
15137
15137
|
return _formControl.current;
|
|
15138
15138
|
}
|
|
15139
|
+
//# sourceMappingURL=index.esm.mjs.map
|
|
15139
15140
|
|
|
15140
15141
|
var _excluded$9 = ["ref"];
|
|
15141
15142
|
|
|
@@ -15804,7 +15805,7 @@
|
|
|
15804
15805
|
};
|
|
15805
15806
|
|
|
15806
15807
|
var SearchResults = function SearchResults(_ref) {
|
|
15807
|
-
var _searchResults$brands, _searchResults$produc, _initialSearchData$tr, _initialSearchData$la
|
|
15808
|
+
var _searchResults$brands, _searchResults$produc, _initialSearchData$tr, _initialSearchData$la;
|
|
15808
15809
|
|
|
15809
15810
|
var searchValue = _ref.searchValue,
|
|
15810
15811
|
searchResults = _ref.searchResults,
|
|
@@ -15821,7 +15822,9 @@
|
|
|
15821
15822
|
onBrandSearchResultClick = _ref.onBrandSearchResultClick,
|
|
15822
15823
|
onCreateInterests = _ref.onCreateInterests,
|
|
15823
15824
|
noResultsImage = _ref.noResultsImage,
|
|
15824
|
-
showNoResults = _ref.showNoResults
|
|
15825
|
+
showNoResults = _ref.showNoResults,
|
|
15826
|
+
_ref$isLoading = _ref.isLoading,
|
|
15827
|
+
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading;
|
|
15825
15828
|
|
|
15826
15829
|
var _useState = React.useState(false),
|
|
15827
15830
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -15860,6 +15863,39 @@
|
|
|
15860
15863
|
return "".concat(currencySymbol).concat(formatter.format(price));
|
|
15861
15864
|
};
|
|
15862
15865
|
|
|
15866
|
+
var renderBrandSkeleton = function renderBrandSkeleton() {
|
|
15867
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
15868
|
+
className: "brand-skeleton"
|
|
15869
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
15870
|
+
className: "brand-skeleton__item shimmer"
|
|
15871
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
15872
|
+
className: "brand-skeleton__item shimmer"
|
|
15873
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
15874
|
+
className: "brand-skeleton__item shimmer"
|
|
15875
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
15876
|
+
className: "brand-skeleton__item shimmer"
|
|
15877
|
+
}));
|
|
15878
|
+
};
|
|
15879
|
+
|
|
15880
|
+
var renderProductSkeleton = function renderProductSkeleton() {
|
|
15881
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, _toConsumableArray(Array(3)).map(function (_, index) {
|
|
15882
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
15883
|
+
key: index,
|
|
15884
|
+
className: "product-skeleton"
|
|
15885
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
15886
|
+
className: "product-skeleton__image shimmer"
|
|
15887
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
15888
|
+
className: "product-skeleton__content"
|
|
15889
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
15890
|
+
className: "product-skeleton__title shimmer"
|
|
15891
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
15892
|
+
className: "product-skeleton__subtitle shimmer"
|
|
15893
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
15894
|
+
className: "product-skeleton__price shimmer"
|
|
15895
|
+
})));
|
|
15896
|
+
}));
|
|
15897
|
+
};
|
|
15898
|
+
|
|
15863
15899
|
var renderProductCard = function renderProductCard(product) {
|
|
15864
15900
|
var selectedPrice = product.prices ? product.prices.find(function (p) {
|
|
15865
15901
|
return p.currency === currency;
|
|
@@ -15929,6 +15965,70 @@
|
|
|
15929
15965
|
}
|
|
15930
15966
|
|
|
15931
15967
|
return brands;
|
|
15968
|
+
};
|
|
15969
|
+
|
|
15970
|
+
var renderBrandsList = function renderBrandsList() {
|
|
15971
|
+
var _limitBrands2;
|
|
15972
|
+
|
|
15973
|
+
if (isLoading) {
|
|
15974
|
+
return renderBrandSkeleton();
|
|
15975
|
+
}
|
|
15976
|
+
|
|
15977
|
+
if (shouldShowInitialData) {
|
|
15978
|
+
var _limitBrands;
|
|
15979
|
+
|
|
15980
|
+
return (_limitBrands = limitBrands(initialSearchData === null || initialSearchData === void 0 ? void 0 : initialSearchData.trending_brands)) === null || _limitBrands === void 0 ? void 0 : _limitBrands.map(function (brand) {
|
|
15981
|
+
return /*#__PURE__*/React__default.createElement("a", {
|
|
15982
|
+
key: brand.id,
|
|
15983
|
+
href: getBrandLink(brand),
|
|
15984
|
+
className: "search-results__item",
|
|
15985
|
+
onClick: function onClick() {
|
|
15986
|
+
if (typeof onBrandSearchResultClick === 'function') {
|
|
15987
|
+
onBrandSearchResultClick({
|
|
15988
|
+
brand_name: brand.name,
|
|
15989
|
+
brand_link: getBrandLink(brand),
|
|
15990
|
+
search_string: searchValue,
|
|
15991
|
+
is_trending: true
|
|
15992
|
+
});
|
|
15993
|
+
}
|
|
15994
|
+
}
|
|
15995
|
+
}, brand.name);
|
|
15996
|
+
});
|
|
15997
|
+
}
|
|
15998
|
+
|
|
15999
|
+
return (_limitBrands2 = limitBrands(searchResults === null || searchResults === void 0 ? void 0 : searchResults.brands)) === null || _limitBrands2 === void 0 ? void 0 : _limitBrands2.map(function (brand) {
|
|
16000
|
+
return /*#__PURE__*/React__default.createElement("a", {
|
|
16001
|
+
key: brand.link,
|
|
16002
|
+
href: brand.link,
|
|
16003
|
+
className: "search-results__item",
|
|
16004
|
+
onClick: function onClick() {
|
|
16005
|
+
if (typeof onBrandSearchResultClick === 'function') {
|
|
16006
|
+
onBrandSearchResultClick({
|
|
16007
|
+
brand_name: brand.name,
|
|
16008
|
+
brand_link: brand.link,
|
|
16009
|
+
search_string: searchValue,
|
|
16010
|
+
is_trending: false
|
|
16011
|
+
});
|
|
16012
|
+
}
|
|
16013
|
+
}
|
|
16014
|
+
}, brand.name);
|
|
16015
|
+
});
|
|
16016
|
+
};
|
|
16017
|
+
|
|
16018
|
+
var renderProductsList = function renderProductsList() {
|
|
16019
|
+
var _searchResults$produc2;
|
|
16020
|
+
|
|
16021
|
+
if (isLoading) {
|
|
16022
|
+
return renderProductSkeleton();
|
|
16023
|
+
}
|
|
16024
|
+
|
|
16025
|
+
if (shouldShowInitialData) {
|
|
16026
|
+
var _initialSearchData$la2;
|
|
16027
|
+
|
|
16028
|
+
return initialSearchData === null || initialSearchData === void 0 ? void 0 : (_initialSearchData$la2 = initialSearchData.latest_products) === null || _initialSearchData$la2 === void 0 ? void 0 : _initialSearchData$la2.map(renderProductCard);
|
|
16029
|
+
}
|
|
16030
|
+
|
|
16031
|
+
return searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$produc2 = searchResults.products) === null || _searchResults$produc2 === void 0 ? void 0 : _searchResults$produc2.map(renderProductCard);
|
|
15932
16032
|
}; // Show no results state
|
|
15933
16033
|
|
|
15934
16034
|
|
|
@@ -15969,39 +16069,7 @@
|
|
|
15969
16069
|
className: "search-results__header"
|
|
15970
16070
|
}, shouldShowInitialData ? 'TRENDING SEARCHES' : 'BRANDS'), /*#__PURE__*/React__default.createElement("div", {
|
|
15971
16071
|
className: "search-results__list"
|
|
15972
|
-
},
|
|
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", {
|
|
16072
|
+
}, renderBrandsList())), /*#__PURE__*/React__default.createElement("div", {
|
|
16005
16073
|
className: "search-results__section"
|
|
16006
16074
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
16007
16075
|
className: "search-results__section-header"
|
|
@@ -16015,7 +16083,7 @@
|
|
|
16015
16083
|
}
|
|
16016
16084
|
}, "View all items")), /*#__PURE__*/React__default.createElement("div", {
|
|
16017
16085
|
className: "search-results__product-list"
|
|
16018
|
-
},
|
|
16086
|
+
}, renderProductsList()), /*#__PURE__*/React__default.createElement("button", {
|
|
16019
16087
|
type: "button",
|
|
16020
16088
|
className: "search-results__view-all-button",
|
|
16021
16089
|
onClick: function onClick() {
|
|
@@ -16138,7 +16206,12 @@
|
|
|
16138
16206
|
if (currentSearchRequestToken.current === newSearchToken) {
|
|
16139
16207
|
var _brandsResponse$data$, _productsResponse$dat, _productsResponse$dat2;
|
|
16140
16208
|
|
|
16141
|
-
//
|
|
16209
|
+
// Set loading to false when search completes
|
|
16210
|
+
if (typeof onSearchLoading === 'function') {
|
|
16211
|
+
onSearchLoading(false);
|
|
16212
|
+
} // Extract brands from aggregations
|
|
16213
|
+
|
|
16214
|
+
|
|
16142
16215
|
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
16216
|
|
|
16144
16217
|
var productsData = ((_productsResponse$dat = productsResponse.data.data.luxity_products_filter) === null || _productsResponse$dat === void 0 ? void 0 : _productsResponse$dat.data) || [];
|
|
@@ -16201,6 +16274,11 @@
|
|
|
16201
16274
|
}
|
|
16202
16275
|
}).catch(function (error) {
|
|
16203
16276
|
if (!axios.isCancel(error)) {
|
|
16277
|
+
// Set loading to false when search fails
|
|
16278
|
+
if (typeof onSearchLoading === 'function') {
|
|
16279
|
+
onSearchLoading(false);
|
|
16280
|
+
}
|
|
16281
|
+
|
|
16204
16282
|
setSearchResults({
|
|
16205
16283
|
brands: [],
|
|
16206
16284
|
products: []
|
|
@@ -16348,7 +16426,7 @@
|
|
|
16348
16426
|
onSearchPreview = _ref.onSearchPreview,
|
|
16349
16427
|
onProductSearchResultClick = _ref.onProductSearchResultClick,
|
|
16350
16428
|
onBrandSearchResultClick = _ref.onBrandSearchResultClick,
|
|
16351
|
-
|
|
16429
|
+
_onSearchLoading = _ref.onSearchLoading,
|
|
16352
16430
|
currency = _ref.currency,
|
|
16353
16431
|
currencySymbol = _ref.currencySymbol,
|
|
16354
16432
|
currencyOptions = _ref.currencyOptions,
|
|
@@ -16378,53 +16456,64 @@
|
|
|
16378
16456
|
|
|
16379
16457
|
var _useState5 = React.useState(false),
|
|
16380
16458
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
16381
|
-
|
|
16382
|
-
|
|
16459
|
+
searchLoading = _useState6[0],
|
|
16460
|
+
setSearchLoading = _useState6[1];
|
|
16461
|
+
|
|
16462
|
+
var _useState7 = React.useState(false),
|
|
16463
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
16464
|
+
isSearchFocused = _useState8[0],
|
|
16465
|
+
setIsSearchFocused = _useState8[1];
|
|
16383
16466
|
|
|
16384
|
-
var
|
|
16467
|
+
var _useState9 = React.useState({
|
|
16385
16468
|
trending_brands: [],
|
|
16386
16469
|
latest_products: []
|
|
16387
16470
|
}),
|
|
16388
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
16389
|
-
initialSearchView = _useState8[0],
|
|
16390
|
-
setInitialSearchView = _useState8[1];
|
|
16391
|
-
|
|
16392
|
-
var _useState9 = React.useState({}),
|
|
16393
16471
|
_useState10 = _slicedToArray(_useState9, 2),
|
|
16394
|
-
|
|
16395
|
-
|
|
16472
|
+
initialSearchView = _useState10[0],
|
|
16473
|
+
setInitialSearchView = _useState10[1];
|
|
16396
16474
|
|
|
16397
|
-
var _useState11 = React.useState(
|
|
16475
|
+
var _useState11 = React.useState({}),
|
|
16398
16476
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
16399
|
-
|
|
16400
|
-
|
|
16477
|
+
dropdownData = _useState12[0],
|
|
16478
|
+
setDropdownData = _useState12[1];
|
|
16401
16479
|
|
|
16402
|
-
var _useState13 = React.useState(
|
|
16403
|
-
brands: [],
|
|
16404
|
-
products: []
|
|
16405
|
-
}),
|
|
16480
|
+
var _useState13 = React.useState(false),
|
|
16406
16481
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
16407
|
-
|
|
16408
|
-
|
|
16482
|
+
hasError = _useState14[0],
|
|
16483
|
+
setHasError = _useState14[1];
|
|
16409
16484
|
|
|
16410
16485
|
var _useState15 = React.useState({
|
|
16411
16486
|
brands: [],
|
|
16412
16487
|
products: []
|
|
16413
16488
|
}),
|
|
16414
16489
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
16415
|
-
|
|
16416
|
-
|
|
16490
|
+
searchResults = _useState16[0],
|
|
16491
|
+
setSearchResults = _useState16[1];
|
|
16417
16492
|
|
|
16418
|
-
var _useState17 = React.useState(
|
|
16493
|
+
var _useState17 = React.useState({
|
|
16494
|
+
brands: [],
|
|
16495
|
+
products: []
|
|
16496
|
+
}),
|
|
16419
16497
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
16420
|
-
|
|
16421
|
-
|
|
16498
|
+
cachedResults = _useState18[0],
|
|
16499
|
+
setCachedResults = _useState18[1];
|
|
16500
|
+
|
|
16501
|
+
var _useState19 = React.useState(false),
|
|
16502
|
+
_useState20 = _slicedToArray(_useState19, 2),
|
|
16503
|
+
showNoResults = _useState20[0],
|
|
16504
|
+
setShowNoResults = _useState20[1];
|
|
16422
16505
|
|
|
16423
16506
|
var searchResultsRef = React.useRef(null);
|
|
16424
16507
|
|
|
16425
16508
|
var _useSearch = useSearch({
|
|
16426
16509
|
endpoint: endpoint,
|
|
16427
|
-
onSearchLoading: onSearchLoading
|
|
16510
|
+
onSearchLoading: function onSearchLoading(isLoading) {
|
|
16511
|
+
setSearchLoading(isLoading);
|
|
16512
|
+
|
|
16513
|
+
if (typeof _onSearchLoading === 'function') {
|
|
16514
|
+
_onSearchLoading(isLoading);
|
|
16515
|
+
}
|
|
16516
|
+
},
|
|
16428
16517
|
currency: currency,
|
|
16429
16518
|
onSearchPreview: onSearchPreview,
|
|
16430
16519
|
onNoResults: setShowNoResults
|
|
@@ -16579,7 +16668,8 @@
|
|
|
16579
16668
|
onBrandSearchResultClick: onBrandSearchResultClick,
|
|
16580
16669
|
onCreateInterests: onCreateInterests,
|
|
16581
16670
|
noResultsImage: noResultsImage,
|
|
16582
|
-
showNoResults: showNoResults
|
|
16671
|
+
showNoResults: showNoResults,
|
|
16672
|
+
isLoading: searchLoading
|
|
16583
16673
|
}), /*#__PURE__*/React__default.createElement("nav", {
|
|
16584
16674
|
className: "navbar__nav-links navbar__nav-links--wrap"
|
|
16585
16675
|
}, renderDropdownLinks(), !!stores.length && /*#__PURE__*/React__default.createElement("li", {
|
|
@@ -17276,7 +17366,7 @@
|
|
|
17276
17366
|
onSearchPreview = _ref.onSearchPreview,
|
|
17277
17367
|
onProductSearchResultClick = _ref.onProductSearchResultClick,
|
|
17278
17368
|
onBrandSearchResultClick = _ref.onBrandSearchResultClick,
|
|
17279
|
-
|
|
17369
|
+
_onSearchLoading = _ref.onSearchLoading,
|
|
17280
17370
|
onLogoutClick = _ref.onLogoutClick,
|
|
17281
17371
|
onInterestClick = _ref.onInterestClick,
|
|
17282
17372
|
onAddressClick = _ref.onAddressClick,
|
|
@@ -17306,9 +17396,20 @@
|
|
|
17306
17396
|
showNoResults = _useState2[0],
|
|
17307
17397
|
setShowNoResults = _useState2[1];
|
|
17308
17398
|
|
|
17399
|
+
var _useState3 = React.useState(false),
|
|
17400
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
17401
|
+
searchLoading = _useState4[0],
|
|
17402
|
+
setSearchLoading = _useState4[1];
|
|
17403
|
+
|
|
17309
17404
|
var _useSearch = useSearch({
|
|
17310
17405
|
endpoint: endpoint,
|
|
17311
|
-
onSearchLoading: onSearchLoading
|
|
17406
|
+
onSearchLoading: function onSearchLoading(isLoading) {
|
|
17407
|
+
setSearchLoading(isLoading);
|
|
17408
|
+
|
|
17409
|
+
if (typeof _onSearchLoading === 'function') {
|
|
17410
|
+
_onSearchLoading(isLoading);
|
|
17411
|
+
}
|
|
17412
|
+
},
|
|
17312
17413
|
currency: currency,
|
|
17313
17414
|
onSearchPreview: onSearchPreview,
|
|
17314
17415
|
onNoResults: setShowNoResults
|
|
@@ -17317,49 +17418,49 @@
|
|
|
17317
17418
|
createDebouncedSearch = _useSearch.createDebouncedSearch,
|
|
17318
17419
|
createImmediateSearch = _useSearch.createImmediateSearch;
|
|
17319
17420
|
|
|
17320
|
-
var
|
|
17321
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
17322
|
-
searchValue = _useState4[0],
|
|
17323
|
-
setSearchValue = _useState4[1];
|
|
17324
|
-
|
|
17325
|
-
var _useState5 = React.useState(false),
|
|
17421
|
+
var _useState5 = React.useState(''),
|
|
17326
17422
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
17327
|
-
|
|
17328
|
-
|
|
17423
|
+
searchValue = _useState6[0],
|
|
17424
|
+
setSearchValue = _useState6[1];
|
|
17329
17425
|
|
|
17330
17426
|
var _useState7 = React.useState(false),
|
|
17331
17427
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
17332
|
-
|
|
17333
|
-
|
|
17428
|
+
showSearchBar = _useState8[0],
|
|
17429
|
+
setShowSearchbar = _useState8[1];
|
|
17334
17430
|
|
|
17335
|
-
var _useState9 = React.useState(
|
|
17336
|
-
brands: [],
|
|
17337
|
-
products: []
|
|
17338
|
-
}),
|
|
17431
|
+
var _useState9 = React.useState(false),
|
|
17339
17432
|
_useState10 = _slicedToArray(_useState9, 2),
|
|
17340
|
-
|
|
17341
|
-
|
|
17433
|
+
showSideNav = _useState10[0],
|
|
17434
|
+
setShowSideNav = _useState10[1];
|
|
17342
17435
|
|
|
17343
17436
|
var _useState11 = React.useState({
|
|
17344
17437
|
brands: [],
|
|
17345
17438
|
products: []
|
|
17346
17439
|
}),
|
|
17347
17440
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
17348
|
-
|
|
17349
|
-
|
|
17441
|
+
searchResults = _useState12[0],
|
|
17442
|
+
setSearchResults = _useState12[1];
|
|
17350
17443
|
|
|
17351
|
-
var _useState13 = React.useState(
|
|
17444
|
+
var _useState13 = React.useState({
|
|
17445
|
+
brands: [],
|
|
17446
|
+
products: []
|
|
17447
|
+
}),
|
|
17352
17448
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
17353
|
-
|
|
17354
|
-
|
|
17449
|
+
cachedResults = _useState14[0],
|
|
17450
|
+
setCachedResults = _useState14[1];
|
|
17355
17451
|
|
|
17356
|
-
var _useState15 = React.useState(
|
|
17452
|
+
var _useState15 = React.useState(false),
|
|
17453
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
17454
|
+
isSearchFocused = _useState16[0],
|
|
17455
|
+
setIsSearchFocused = _useState16[1];
|
|
17456
|
+
|
|
17457
|
+
var _useState17 = React.useState({
|
|
17357
17458
|
trending_brands: [],
|
|
17358
17459
|
latest_products: []
|
|
17359
17460
|
}),
|
|
17360
|
-
|
|
17361
|
-
initialSearchView =
|
|
17362
|
-
setInitialSearchView =
|
|
17461
|
+
_useState18 = _slicedToArray(_useState17, 2),
|
|
17462
|
+
initialSearchView = _useState18[0],
|
|
17463
|
+
setInitialSearchView = _useState18[1];
|
|
17363
17464
|
|
|
17364
17465
|
var searchResultsRef = React.useRef(null);
|
|
17365
17466
|
var searchInputRef = React.useRef(null);
|
|
@@ -17600,7 +17701,8 @@
|
|
|
17600
17701
|
onBrandSearchResultClick: onBrandSearchResultClick,
|
|
17601
17702
|
onCreateInterests: onCreateInterests,
|
|
17602
17703
|
noResultsImage: noResultsImage,
|
|
17603
|
-
showNoResults: showNoResults
|
|
17704
|
+
showNoResults: showNoResults,
|
|
17705
|
+
isLoading: searchLoading
|
|
17604
17706
|
}))), shop && /*#__PURE__*/React__default.createElement(LuxitySideNav, {
|
|
17605
17707
|
accordionIcon: accordionIcon,
|
|
17606
17708
|
logoSrc: logoSrc,
|
package/package.json
CHANGED
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;
|