@bonlineza/luxity-lib 2.35.9 → 2.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/bundle.js CHANGED
@@ -15562,13 +15562,13 @@
15562
15562
  setError = _useForm.setError;
15563
15563
 
15564
15564
  var renderLinks = function renderLinks(links, title) {
15565
- return /*#__PURE__*/React__default.createElement("div", {
15565
+ return !!links.length && /*#__PURE__*/React__default.createElement("div", {
15566
15566
  className: "footer__link-container"
15567
15567
  }, /*#__PURE__*/React__default.createElement("div", {
15568
15568
  className: "footer__link-title"
15569
15569
  }, title), /*#__PURE__*/React__default.createElement("div", {
15570
15570
  className: "footer__links"
15571
- }, !!links.length && links.map(function (link) {
15571
+ }, links.map(function (link) {
15572
15572
  return /*#__PURE__*/React__default.createElement("div", {
15573
15573
  className: "footer__link-wrapper",
15574
15574
  key: link.label
@@ -15751,13 +15751,13 @@
15751
15751
  }), /*#__PURE__*/React__default.createElement(AccordionSection, {
15752
15752
  title: "POPULAR",
15753
15753
  links: popularLinks
15754
- }), /*#__PURE__*/React__default.createElement(AccordionSection, {
15754
+ }), !!sellLinks.length && /*#__PURE__*/React__default.createElement(AccordionSection, {
15755
15755
  title: "SELL",
15756
15756
  links: sellLinks
15757
15757
  }), /*#__PURE__*/React__default.createElement(AccordionSection, {
15758
15758
  title: "COMPANY",
15759
15759
  links: companyLinks
15760
- }), /*#__PURE__*/React__default.createElement(AccordionSection, {
15760
+ }), !!storeLinks.length && /*#__PURE__*/React__default.createElement(AccordionSection, {
15761
15761
  title: "CONNECT",
15762
15762
  links: storeLinks
15763
15763
  }), /*#__PURE__*/React__default.createElement("div", {
@@ -15821,11 +15821,11 @@
15821
15821
  onClick: onMenuItemClick
15822
15822
  }, "All ", categoryTitle)), !!brandElements.length && brandElements.map(function (brand) {
15823
15823
  return /*#__PURE__*/React__default.createElement("div", {
15824
- className: "dropdown__brand-element"
15824
+ className: "dropdown__brand-element",
15825
+ key: brand.name
15825
15826
  }, /*#__PURE__*/React__default.createElement(LinkComponent, {
15826
15827
  href: "".concat(productsUrl, "/").concat(categorySlug, "/").concat(brand === null || brand === void 0 ? void 0 : brand.slug),
15827
15828
  className: "dropdown__element",
15828
- key: brand.name,
15829
15829
  onClick: onMenuItemClick
15830
15830
  }, brand === null || brand === void 0 ? void 0 : brand.name));
15831
15831
  }))), /*#__PURE__*/React__default.createElement("div", {
@@ -15929,37 +15929,6 @@
15929
15929
  }, contactNumber)));
15930
15930
  };
15931
15931
 
15932
- var categories$1 = {
15933
- shoes: {
15934
- name: 'Shoes',
15935
- slug: 'shoes'
15936
- },
15937
- bags: {
15938
- name: 'Bags',
15939
- slug: 'bags'
15940
- },
15941
- clothing: {
15942
- name: 'Clothing',
15943
- slug: 'apparel'
15944
- },
15945
- watches: {
15946
- name: 'Watches',
15947
- slug: 'watches'
15948
- },
15949
- accessories: {
15950
- name: 'Accessories',
15951
- slug: 'accessories'
15952
- }
15953
- };
15954
-
15955
- var removeCategoryByName = function removeCategoryByName(categories, name) {
15956
- var _categories$filter;
15957
-
15958
- return (_categories$filter = categories === null || categories === void 0 ? void 0 : categories.filter(function (category) {
15959
- return category.name !== name;
15960
- })) !== null && _categories$filter !== void 0 ? _categories$filter : [];
15961
- };
15962
-
15963
15932
  var SearchResults = function SearchResults(_ref) {
15964
15933
  var _searchResults$brands, _searchResults$produc, _searchResults$brands2, _searchResults$produc2, _initialSearchData$tr, _initialSearchData$la, _limitBrands, _limitBrands2, _initialSearchData$la2, _searchResults$produc3;
15965
15934
 
@@ -16275,13 +16244,16 @@
16275
16244
  }, [setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults]);
16276
16245
  };
16277
16246
  var useSearchInputFocus = function useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults) {
16247
+ var handleSearchClick = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;
16278
16248
  return React.useCallback(function () {
16279
16249
  setIsSearchFocused(true);
16280
16250
 
16281
- if (searchValue.trim().length >= 3) {
16251
+ if (typeof handleSearchClick === 'function') {
16252
+ handleSearchClick();
16253
+ } else if (searchValue.trim().length >= 3) {
16282
16254
  setSearchResults(cachedResults);
16283
16255
  }
16284
- }, [searchValue, setIsSearchFocused, cachedResults, setSearchResults]);
16256
+ }, [searchValue, setIsSearchFocused, cachedResults, setSearchResults, handleSearchClick]);
16285
16257
  };
16286
16258
  var useSearchInputKeyDown = function useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused) {
16287
16259
  var setSearchValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
@@ -16301,6 +16273,14 @@
16301
16273
  }, [searchValue, immediateSearch, setIsSearchFocused, setSearchValue]);
16302
16274
  };
16303
16275
 
16276
+ var removeCategoryByName = function removeCategoryByName(categories, name) {
16277
+ var _categories$filter;
16278
+
16279
+ return (_categories$filter = categories === null || categories === void 0 ? void 0 : categories.filter(function (category) {
16280
+ return category.name.toLowerCase() !== name.toLowerCase();
16281
+ })) !== null && _categories$filter !== void 0 ? _categories$filter : [];
16282
+ };
16283
+
16304
16284
  var LuxityDesktopHeader = function LuxityDesktopHeader(_ref) {
16305
16285
  var accountIcon = _ref.accountIcon,
16306
16286
  cartIcon = _ref.cartIcon,
@@ -16308,12 +16288,6 @@
16308
16288
  cartCount = _ref.cartCount,
16309
16289
  logoSrc = _ref.logoSrc,
16310
16290
  categoryElements = _ref.categoryElements,
16311
- newBrandsImage = _ref.newBrandsImage,
16312
- bagsImage = _ref.bagsImage,
16313
- shoesImage = _ref.shoesImage,
16314
- clothingImage = _ref.clothingImage,
16315
- accessoriesImage = _ref.accessoriesImage,
16316
- watchesImage = _ref.watchesImage,
16317
16291
  stores = _ref.stores,
16318
16292
  contactNumber = _ref.contactNumber,
16319
16293
  productsUrl = _ref.productsUrl,
@@ -16327,9 +16301,9 @@
16327
16301
  ourStoryLink = _ref.ourStoryLink,
16328
16302
  onLogoClick = _ref.onLogoClick,
16329
16303
  endpoint = _ref.endpoint,
16330
- menuData = _ref.menuData,
16331
16304
  initialSearchData = _ref.initialSearchData,
16332
16305
  onSearchSubmit = _ref.onSearchSubmit,
16306
+ onSearchClick = _ref.onSearchClick,
16333
16307
  onProductIdsReceived = _ref.onProductIdsReceived,
16334
16308
  currency = _ref.currency,
16335
16309
  currencySymbol = _ref.currencySymbol,
@@ -16341,7 +16315,8 @@
16341
16315
  name = _ref.name,
16342
16316
  isVip = _ref.isVip,
16343
16317
  shop = _ref.shop,
16344
- app = _ref.app;
16318
+ app = _ref.app,
16319
+ categoryConfig = _ref.categoryConfig;
16345
16320
 
16346
16321
  var _useSearch = useSearch({
16347
16322
  endpoint: endpoint,
@@ -16368,26 +16343,17 @@
16368
16343
  setIsSearchFocused = _useState6[1];
16369
16344
 
16370
16345
  var _useState7 = React.useState({
16371
- latestArrivals: [],
16372
- bags: [],
16373
- shoes: [],
16374
- clothing: [],
16375
- accessories: [],
16376
- watches: [],
16377
- accessoriesCategories: [],
16378
- apparelStyles: []
16379
- }),
16380
- _useState8 = _slicedToArray(_useState7, 2),
16381
- dropdownData = _useState8[0],
16382
- setDropdownData = _useState8[1];
16383
-
16384
- var _useState9 = React.useState({
16385
16346
  trending_brands: [],
16386
16347
  latest_products: []
16387
16348
  }),
16349
+ _useState8 = _slicedToArray(_useState7, 2),
16350
+ initialSearchView = _useState8[0],
16351
+ setInitialSearchView = _useState8[1];
16352
+
16353
+ var _useState9 = React.useState({}),
16388
16354
  _useState10 = _slicedToArray(_useState9, 2),
16389
- initialSearchView = _useState10[0],
16390
- setInitialSearchView = _useState10[1];
16355
+ dropdownData = _useState10[0],
16356
+ setDropdownData = _useState10[1];
16391
16357
 
16392
16358
  var _useState11 = React.useState(false),
16393
16359
  _useState12 = _slicedToArray(_useState11, 2),
@@ -16418,7 +16384,17 @@
16418
16384
  var immediateSearch = createImmediateSearch(setSearchValue, setSearchResults, onSearchSubmit);
16419
16385
  var handleChange = useSearchInputChange(setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults);
16420
16386
  useSearchClickOutside(searchResultsRef, searchResults, setCachedResults, setIsSearchFocused, setSearchResults);
16421
- var handleSearchFocus = useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults);
16387
+
16388
+ var handleSearchClick = function handleSearchClick() {
16389
+ if (typeof onSearchClick === 'function') {
16390
+ onSearchClick();
16391
+ return;
16392
+ }
16393
+
16394
+ handleSearchFocus();
16395
+ };
16396
+
16397
+ var handleSearchFocus = useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults, onSearchClick);
16422
16398
  var handleKeyDown = useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused);
16423
16399
 
16424
16400
  function addCategoryToElements(elements, categoryName) {
@@ -16431,29 +16407,58 @@
16431
16407
 
16432
16408
  React.useMemo(function () {
16433
16409
  setLoading(true);
16434
- axios.get("".concat(menuData)).then(function (_ref2) {
16410
+ axios.get("".concat(categoryConfig.menuData)).then(function (_ref2) {
16435
16411
  var data = _ref2.data;
16436
16412
  setLoading(false);
16437
- setDropdownData(function (prev) {
16438
- return _objectSpread2(_objectSpread2({}, prev), {}, {
16439
- latestArrivals: data.latest_arrivals,
16440
- bags: data.bags,
16441
- shoes: data.shoes,
16442
- apparel: data.apparel,
16443
- accessories: data.accessories,
16444
- watches: data.watches,
16445
- accessoriesCategories: data.accessories_categories,
16446
- apparelStyles: data.apparel_styles
16447
- });
16448
- });
16413
+ setDropdownData(data);
16449
16414
  }).catch(function () {
16450
16415
  return setHasError(true);
16451
16416
  });
16452
- }, [menuData]);
16417
+ }, [categoryConfig.menuData]);
16453
16418
  React.useMemo(function () {
16419
+ if (!initialSearchData) {
16420
+ return;
16421
+ }
16422
+
16454
16423
  fetchInitialSearchData(initialSearchData, setInitialSearchView);
16455
16424
  }, [initialSearchData, fetchInitialSearchData]);
16456
16425
 
16426
+ var renderDropdownLinks = function renderDropdownLinks() {
16427
+ return categoryConfig.categories.map(function (category) {
16428
+ var title = category.title,
16429
+ imageSrc = category.imageSrc,
16430
+ categorySlug = category.categorySlug,
16431
+ categoryName = category.categoryName,
16432
+ elementsKey = category.elementsKey,
16433
+ subCategoryElementsKey = category.subCategoryElementsKey,
16434
+ styleElementsKey = category.styleElementsKey;
16435
+ var categoryElementsProcessed = categoryElements;
16436
+
16437
+ if (subCategoryElementsKey && dropdownData[subCategoryElementsKey]) {
16438
+ // show subcategory elements
16439
+ categoryElementsProcessed = removeCategoryByName(dropdownData[subCategoryElementsKey], categoryName);
16440
+ } else if (styleElementsKey && dropdownData[styleElementsKey]) {
16441
+ categoryElementsProcessed = addCategoryToElements(dropdownData[styleElementsKey], categorySlug);
16442
+ } else {
16443
+ categoryElementsProcessed = addCategoryToElements(categoryElementsProcessed, categorySlug);
16444
+ }
16445
+
16446
+ return /*#__PURE__*/React__default.createElement(DropdownLink$1, {
16447
+ key: categorySlug,
16448
+ title: title,
16449
+ imageSrc: imageSrc,
16450
+ categoryElements: categoryElementsProcessed,
16451
+ brandElements: dropdownData[elementsKey] || [],
16452
+ productsUrl: productsUrl,
16453
+ categorySlug: categorySlug,
16454
+ categoryTitle: categoryName,
16455
+ isLoading: loading,
16456
+ hasError: hasError,
16457
+ LinkComponent: LinkComponent
16458
+ });
16459
+ });
16460
+ };
16461
+
16457
16462
  var getMarginRight = function getMarginRight(userIsVip, userName) {
16458
16463
  if (userIsVip) return '15px';
16459
16464
  if (userName) return '5px';
@@ -16491,7 +16496,7 @@
16491
16496
  value: searchValue,
16492
16497
  onChange: handleChange,
16493
16498
  onKeyDown: handleKeyDown,
16494
- onClick: handleSearchFocus,
16499
+ onClick: handleSearchClick,
16495
16500
  onFocus: handleSearchFocus
16496
16501
  })), /*#__PURE__*/React__default.createElement(SearchResults, {
16497
16502
  searchValue: searchValue,
@@ -16515,74 +16520,9 @@
16515
16520
  currencySymbol: currencySymbol
16516
16521
  }), /*#__PURE__*/React__default.createElement("nav", {
16517
16522
  className: "navbar__nav-links navbar__nav-links--wrap"
16518
- }, /*#__PURE__*/React__default.createElement(DropdownLink$1, {
16519
- title: "New",
16520
- imageSrc: newBrandsImage,
16521
- categoryElements: categoryElements,
16522
- brandElements: dropdownData.latestArrivals,
16523
- productsUrl: productsUrl,
16524
- categorySlug: "brands",
16525
- categoryTitle: "Brands",
16526
- isLoading: loading,
16527
- hasError: hasError,
16528
- LinkComponent: LinkComponent
16529
- }), /*#__PURE__*/React__default.createElement(DropdownLink$1, {
16530
- title: "Bags",
16531
- imageSrc: bagsImage,
16532
- categoryElements: addCategoryToElements(categoryElements, categories$1.bags.slug),
16533
- brandElements: dropdownData.bags,
16534
- productsUrl: productsUrl,
16535
- categorySlug: categories$1.bags.slug,
16536
- categoryTitle: categories$1.bags.name,
16537
- isLoading: loading,
16538
- hasError: hasError,
16539
- LinkComponent: LinkComponent
16540
- }), /*#__PURE__*/React__default.createElement(DropdownLink$1, {
16541
- title: "Shoes",
16542
- imageSrc: shoesImage,
16543
- categoryElements: addCategoryToElements(categoryElements, categories$1.shoes.slug),
16544
- brandElements: dropdownData.shoes,
16545
- productsUrl: productsUrl,
16546
- categorySlug: categories$1.shoes.slug,
16547
- categoryTitle: categories$1.shoes.name,
16548
- isLoading: loading,
16549
- hasError: hasError,
16550
- LinkComponent: LinkComponent
16551
- }), /*#__PURE__*/React__default.createElement(DropdownLink$1, {
16552
- title: "Clothing",
16553
- imageSrc: clothingImage,
16554
- categoryElements: addCategoryToElements(dropdownData.apparelStyles, categories$1.clothing.slug),
16555
- brandElements: dropdownData.apparel,
16556
- productsUrl: productsUrl,
16557
- categorySlug: categories$1.clothing.slug,
16558
- categoryTitle: categories$1.clothing.name,
16559
- isLoading: loading,
16560
- hasError: hasError,
16561
- LinkComponent: LinkComponent
16562
- }), /*#__PURE__*/React__default.createElement(DropdownLink$1, {
16563
- title: "Accessories",
16564
- imageSrc: accessoriesImage,
16565
- categoryElements: removeCategoryByName(dropdownData.accessoriesCategories, 'ACCESSORIES'),
16566
- brandElements: dropdownData.accessories,
16567
- productsUrl: productsUrl,
16568
- categorySlug: categories$1.accessories.slug,
16569
- categoryTitle: categories$1.accessories.name,
16570
- isLoading: loading,
16571
- hasError: hasError,
16572
- LinkComponent: LinkComponent
16573
- }), /*#__PURE__*/React__default.createElement(DropdownLink$1, {
16574
- title: "Watches",
16575
- imageSrc: watchesImage,
16576
- categoryElements: addCategoryToElements(categoryElements, categories$1.watches.slug),
16577
- brandElements: dropdownData.watches,
16578
- productsUrl: productsUrl,
16579
- categorySlug: categories$1.watches.slug,
16580
- categoryTitle: categories$1.watches.name,
16581
- isLoading: loading,
16582
- hasError: hasError,
16583
- LinkComponent: LinkComponent
16584
- }), /*#__PURE__*/React__default.createElement("li", {
16585
- className: "navbar__link"
16523
+ }, renderDropdownLinks(), !!stores.length && /*#__PURE__*/React__default.createElement("li", {
16524
+ className: "navbar__link",
16525
+ key: "Stores"
16586
16526
  }, /*#__PURE__*/React__default.createElement(LinkComponent, {
16587
16527
  href: contactUsLink,
16588
16528
  className: "navbar__link-item navbar__link-item--desktop"
@@ -16625,7 +16565,7 @@
16625
16565
  onClick: onAccountClick
16626
16566
  }, /*#__PURE__*/React__default.createElement("span", {
16627
16567
  className: "text-sm"
16628
- }, name))), /*#__PURE__*/React__default.createElement("button", {
16568
+ }, name))), onInterestClick && /*#__PURE__*/React__default.createElement("button", {
16629
16569
  type: "button",
16630
16570
  className: "".concat(app ? 'navbar__icon--app' : 'navbar__icon'),
16631
16571
  onClick: onInterestClick
@@ -16778,6 +16718,7 @@
16778
16718
  className: "side-nav__element"
16779
16719
  }, "All Brands"), !!brandsList.length && brandsList.map(function (brand) {
16780
16720
  return /*#__PURE__*/React__default.createElement(LinkComponent, {
16721
+ key: brand.slug,
16781
16722
  href: "".concat(productUrl, "/").concat(categorySlug === 'new' ? 'brands' : categorySlug, "/").concat(brand.slug),
16782
16723
  onClick: handleLinkClick,
16783
16724
  className: "side-nav__element"
@@ -16800,13 +16741,13 @@
16800
16741
  categoryElements = _ref.categoryElements,
16801
16742
  showSideNav = _ref.showSideNav,
16802
16743
  onMenuClick = _ref.onMenuClick,
16803
- menuData = _ref.menuData,
16804
16744
  currency = _ref.currency,
16805
16745
  currencyOptions = _ref.currencyOptions,
16806
16746
  onCurrencyChange = _ref.onCurrencyChange,
16807
16747
  isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
16808
16748
  tooltipContent = _ref.tooltipContent,
16809
- LinkComponent = _ref.LinkComponent;
16749
+ LinkComponent = _ref.LinkComponent,
16750
+ categoryConfig = _ref.categoryConfig;
16810
16751
 
16811
16752
  var _useState = React.useState(false),
16812
16753
  _useState2 = _slicedToArray(_useState, 2),
@@ -16823,16 +16764,7 @@
16823
16764
  loading = _useState6[0],
16824
16765
  setLoading = _useState6[1];
16825
16766
 
16826
- var _useState7 = React.useState({
16827
- latestArrivals: [],
16828
- bags: [],
16829
- shoes: [],
16830
- apparel: [],
16831
- accessories: [],
16832
- watches: [],
16833
- accessoriesCategories: [],
16834
- apparelStyles: []
16835
- }),
16767
+ var _useState7 = React.useState({}),
16836
16768
  _useState8 = _slicedToArray(_useState7, 2),
16837
16769
  dropdownData = _useState8[0],
16838
16770
  setDropdownData = _useState8[1];
@@ -16879,25 +16811,93 @@
16879
16811
 
16880
16812
  React.useMemo(function () {
16881
16813
  setLoading(true);
16882
- axios.get("".concat(menuData)).then(function (_ref2) {
16814
+ axios.get("".concat(categoryConfig.menuData)).then(function (_ref2) {
16883
16815
  var data = _ref2.data;
16884
16816
  setLoading(false);
16885
- setDropdownData(function (prev) {
16886
- return _objectSpread2(_objectSpread2({}, prev), {}, {
16887
- latestArrivals: data.latest_arrivals,
16888
- bags: data.bags,
16889
- shoes: data.shoes,
16890
- apparel: data.apparel,
16891
- accessories: data.accessories,
16892
- watches: data.watches,
16893
- accessoriesCategories: data.accessories_categories,
16894
- apparelStyles: data.apparel_styles
16895
- });
16896
- });
16817
+ setDropdownData(data);
16897
16818
  }).catch(function () {
16898
16819
  return setHasError(true);
16899
16820
  });
16900
- }, [menuData]);
16821
+ }, [categoryConfig.menuData]);
16822
+
16823
+ var renderMenuItems = function renderMenuItems() {
16824
+ return categoryConfig.categories.map(function (category) {
16825
+ var title = category.title,
16826
+ categorySlug = category.categorySlug;
16827
+ var slug = categorySlug;
16828
+
16829
+ if (categorySlug === 'brands') {
16830
+ slug = 'new';
16831
+ }
16832
+
16833
+ return /*#__PURE__*/React__default.createElement("div", {
16834
+ className: "side-nav__menu-item",
16835
+ key: slug
16836
+ }, /*#__PURE__*/React__default.createElement("button", {
16837
+ type: "button",
16838
+ className: "side-nav__menu-title-wrapper",
16839
+ onClick: function onClick() {
16840
+ return onSubMenuClick(slug);
16841
+ }
16842
+ }, /*#__PURE__*/React__default.createElement("span", {
16843
+ className: "side-nav__menu-title"
16844
+ }, title), /*#__PURE__*/React__default.createElement("img", {
16845
+ src: accordionIcon,
16846
+ alt: "accordion-icon",
16847
+ className: "side-nav__accordion-icon"
16848
+ })));
16849
+ });
16850
+ };
16851
+
16852
+ var renderDropdownLinks = function renderDropdownLinks() {
16853
+ return categoryConfig.categories.map(function (category) {
16854
+ var categorySlug = category.categorySlug,
16855
+ categoryName = category.categoryName,
16856
+ elementsKey = category.elementsKey,
16857
+ subCategoryElementsKey = category.subCategoryElementsKey,
16858
+ styleElementsKey = category.styleElementsKey;
16859
+ var categoryElementsProcessed = categoryElements;
16860
+
16861
+ if (subCategoryElementsKey && dropdownData[subCategoryElementsKey]) {
16862
+ // show subcategory elements
16863
+ categoryElementsProcessed = removeCategoryByName(dropdownData[subCategoryElementsKey], categoryName);
16864
+ } else if (styleElementsKey && dropdownData[styleElementsKey]) {
16865
+ categoryElementsProcessed = addCategoryToElements(dropdownData[styleElementsKey], categorySlug);
16866
+ } else {
16867
+ categoryElementsProcessed = addCategoryToElements(categoryElementsProcessed, categorySlug);
16868
+ }
16869
+
16870
+ var subMenuTitle = 'Brands';
16871
+
16872
+ if (categorySlug !== 'brands') {
16873
+ subMenuTitle = "".concat(categoryName, " Brands");
16874
+ }
16875
+
16876
+ var subMenu = categorySlug;
16877
+
16878
+ if (subMenu === 'brands') {
16879
+ subMenu = 'new';
16880
+ }
16881
+
16882
+ return /*#__PURE__*/React__default.createElement(BrandsDropDown, {
16883
+ key: categorySlug,
16884
+ subMenuOpen: subMenuOpen && displayedSubMenu === subMenu,
16885
+ onBackClick: onBackClick,
16886
+ backIcon: backIcon,
16887
+ subMenuCategoryTitle: "Department",
16888
+ productUrl: productUrl,
16889
+ categoryElements: categoryElementsProcessed,
16890
+ subMenuBrandsTitle: subMenuTitle,
16891
+ brandsList: dropdownData[elementsKey],
16892
+ categorySlug: displayedSubMenu,
16893
+ isLoading: loading,
16894
+ hasError: hasError,
16895
+ onCloseSideNav: onCloseSideNav,
16896
+ LinkComponent: LinkComponent
16897
+ });
16898
+ });
16899
+ };
16900
+
16901
16901
  return /*#__PURE__*/React__default.createElement("div", {
16902
16902
  className: "side-nav"
16903
16903
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -16918,92 +16918,9 @@
16918
16918
  className: "side-nav__close-icon"
16919
16919
  })), /*#__PURE__*/React__default.createElement("div", {
16920
16920
  className: "side-nav__menu-items-wrapper"
16921
- }, /*#__PURE__*/React__default.createElement("div", {
16922
- className: "side-nav__menu-item"
16923
- }, /*#__PURE__*/React__default.createElement("button", {
16924
- type: "button",
16925
- className: "side-nav__menu-title-wrapper",
16926
- onClick: function onClick() {
16927
- return onSubMenuClick('new');
16928
- }
16929
- }, /*#__PURE__*/React__default.createElement("span", {
16930
- className: "side-nav__menu-title"
16931
- }, "New"), /*#__PURE__*/React__default.createElement("img", {
16932
- src: accordionIcon,
16933
- alt: "accordion-icon",
16934
- className: "side-nav__accordion-icon"
16935
- }))), /*#__PURE__*/React__default.createElement("div", {
16936
- className: "side-nav__menu-item"
16937
- }, /*#__PURE__*/React__default.createElement("button", {
16938
- type: "button",
16939
- className: "side-nav__menu-title-wrapper",
16940
- onClick: function onClick() {
16941
- return onSubMenuClick('bags');
16942
- }
16943
- }, /*#__PURE__*/React__default.createElement("span", {
16944
- className: "side-nav__menu-title"
16945
- }, "Bags"), /*#__PURE__*/React__default.createElement("img", {
16946
- src: accordionIcon,
16947
- alt: "accordion-icon",
16948
- className: "side-nav__accordion-icon"
16949
- }))), /*#__PURE__*/React__default.createElement("div", {
16950
- className: "side-nav__menu-item"
16951
- }, /*#__PURE__*/React__default.createElement("button", {
16952
- type: "button",
16953
- className: "side-nav__menu-title-wrapper",
16954
- onClick: function onClick() {
16955
- return onSubMenuClick('shoes');
16956
- }
16957
- }, /*#__PURE__*/React__default.createElement("span", {
16958
- className: "side-nav__menu-title"
16959
- }, "Shoes"), /*#__PURE__*/React__default.createElement("img", {
16960
- src: accordionIcon,
16961
- alt: "accordion-icon",
16962
- className: "side-nav__accordion-icon"
16963
- }))), /*#__PURE__*/React__default.createElement("div", {
16964
- className: "side-nav__menu-item"
16965
- }, /*#__PURE__*/React__default.createElement("button", {
16966
- type: "button",
16967
- className: "side-nav__menu-title-wrapper",
16968
- onClick: function onClick() {
16969
- return onSubMenuClick('apparel');
16970
- }
16971
- }, /*#__PURE__*/React__default.createElement("span", {
16972
- className: "side-nav__menu-title"
16973
- }, "Clothing"), /*#__PURE__*/React__default.createElement("img", {
16974
- src: accordionIcon,
16975
- alt: "accordion-icon",
16976
- className: "side-nav__accordion-icon"
16977
- }))), /*#__PURE__*/React__default.createElement("div", {
16978
- className: "side-nav__menu-item"
16979
- }, /*#__PURE__*/React__default.createElement("button", {
16980
- type: "button",
16981
- className: "side-nav__menu-title-wrapper",
16982
- onClick: function onClick() {
16983
- return onSubMenuClick('accessories');
16984
- }
16985
- }, /*#__PURE__*/React__default.createElement("span", {
16986
- className: "side-nav__menu-title"
16987
- }, "Accessories"), /*#__PURE__*/React__default.createElement("img", {
16988
- src: accordionIcon,
16989
- alt: "accordion-icon",
16990
- className: "side-nav__accordion-icon"
16991
- }))), /*#__PURE__*/React__default.createElement("div", {
16992
- className: "side-nav__menu-item"
16993
- }, /*#__PURE__*/React__default.createElement("button", {
16994
- type: "button",
16995
- className: "side-nav__menu-title-wrapper",
16996
- onClick: function onClick() {
16997
- return onSubMenuClick('watches');
16998
- }
16999
- }, /*#__PURE__*/React__default.createElement("span", {
17000
- className: "side-nav__menu-title"
17001
- }, "Watches"), /*#__PURE__*/React__default.createElement("img", {
17002
- src: accordionIcon,
17003
- alt: "accordion-icon",
17004
- className: "side-nav__accordion-icon"
17005
- }))), /*#__PURE__*/React__default.createElement("div", {
17006
- className: "side-nav__menu-item"
16921
+ }, renderMenuItems(), !!stores.length && /*#__PURE__*/React__default.createElement("div", {
16922
+ className: "side-nav__menu-item",
16923
+ key: "stores"
17007
16924
  }, /*#__PURE__*/React__default.createElement("button", {
17008
16925
  type: "button",
17009
16926
  className: "side-nav__menu-title-wrapper",
@@ -17015,134 +16932,58 @@
17015
16932
  alt: "accordion-icon",
17016
16933
  className: "side-nav__accordion-icon"
17017
16934
  }))), /*#__PURE__*/React__default.createElement("div", {
17018
- className: "side-nav__menu-item"
16935
+ className: "side-nav__menu-item",
16936
+ key: "sell-to-us"
17019
16937
  }, /*#__PURE__*/React__default.createElement("button", {
17020
16938
  type: "button",
17021
16939
  className: "side-nav__block-button",
17022
16940
  onClick: onSellToUsClick
17023
16941
  }, "Sell To Us")), /*#__PURE__*/React__default.createElement("div", {
17024
- className: "side-nav__menu-item"
16942
+ className: "side-nav__menu-item",
16943
+ key: "our-story"
17025
16944
  }, /*#__PURE__*/React__default.createElement("button", {
17026
16945
  type: "button",
17027
16946
  className: "side-nav__sub-link",
17028
16947
  onClick: onOurStoryClick
17029
- }, "Our Story")), /*#__PURE__*/React__default.createElement("div", {
17030
- className: "side-nav__menu-item"
16948
+ }, "Our Story")), typeof onBlogClick === 'function' && /*#__PURE__*/React__default.createElement("div", {
16949
+ className: "side-nav__menu-item",
16950
+ key: "blog"
17031
16951
  }, /*#__PURE__*/React__default.createElement("button", {
17032
16952
  type: "button",
17033
16953
  className: "side-nav__sub-link",
17034
16954
  onClick: onBlogClick
17035
16955
  }, "Blog")), /*#__PURE__*/React__default.createElement("div", {
17036
- className: "side-nav__menu-item"
16956
+ className: "side-nav__menu-item",
16957
+ key: "contact-us"
17037
16958
  }, /*#__PURE__*/React__default.createElement("button", {
17038
16959
  type: "button",
17039
16960
  className: "side-nav__sub-link",
17040
16961
  onClick: onContactUsClick
17041
16962
  }, "Contact Us")), /*#__PURE__*/React__default.createElement("div", {
17042
- className: "side-nav__menu-item"
16963
+ className: "side-nav__menu-item",
16964
+ key: "my-account"
17043
16965
  }, /*#__PURE__*/React__default.createElement("button", {
17044
16966
  type: "button",
17045
16967
  className: "side-nav__sub-link",
17046
16968
  onClick: onAccountClick
17047
16969
  }, "My Account")), /*#__PURE__*/React__default.createElement("div", {
17048
- className: "side-nav__menu-item"
16970
+ className: "side-nav__menu-item",
16971
+ key: "my-cart"
17049
16972
  }, /*#__PURE__*/React__default.createElement("button", {
17050
16973
  type: "button",
17051
16974
  className: "side-nav__sub-link",
17052
16975
  onClick: onCartClick
17053
16976
  }, "My Cart")), /*#__PURE__*/React__default.createElement(CurrencySelect, {
16977
+ key: "currency",
17054
16978
  currency: currency,
17055
16979
  currencyOptions: currencyOptions,
17056
16980
  onCurrencyChange: onCurrencyChange,
17057
16981
  isCurrencySelectionDisabled: isCurrencySelectionDisabled,
17058
16982
  tooltipContent: tooltipContent
17059
- }))), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
17060
- subMenuOpen: subMenuOpen && displayedSubMenu === 'new',
17061
- onBackClick: onBackClick,
17062
- backIcon: backIcon,
17063
- subMenuCategoryTitle: "Department",
17064
- productUrl: productUrl,
17065
- categoryElements: categoryElements,
17066
- subMenuBrandsTitle: "Brands",
17067
- brandsList: dropdownData.latestArrivals,
17068
- categorySlug: displayedSubMenu,
17069
- isLoading: loading,
17070
- hasError: hasError,
17071
- onCloseSideNav: onCloseSideNav,
17072
- LinkComponent: LinkComponent
17073
- }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
17074
- subMenuOpen: subMenuOpen && displayedSubMenu === 'bags',
17075
- onBackClick: onBackClick,
17076
- backIcon: backIcon,
17077
- subMenuCategoryTitle: "Department",
17078
- productUrl: productUrl,
17079
- categoryElements: addCategoryToElements(categoryElements, categories$1.bags.slug),
17080
- subMenuBrandsTitle: "Bag Brands",
17081
- brandsList: dropdownData.bags,
17082
- categorySlug: displayedSubMenu,
17083
- isLoading: loading,
17084
- hasError: hasError,
17085
- onCloseSideNav: onCloseSideNav,
17086
- LinkComponent: LinkComponent
17087
- }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
17088
- subMenuOpen: subMenuOpen && displayedSubMenu === 'shoes',
17089
- onBackClick: onBackClick,
17090
- backIcon: backIcon,
17091
- subMenuCategoryTitle: "Department",
17092
- productUrl: productUrl,
17093
- categoryElements: addCategoryToElements(categoryElements, categories$1.shoes.slug),
17094
- subMenuBrandsTitle: "Shoe Brands",
17095
- brandsList: dropdownData.shoes,
17096
- categorySlug: displayedSubMenu,
17097
- isLoading: loading,
17098
- hasError: hasError,
17099
- onCloseSideNav: onCloseSideNav,
17100
- LinkComponent: LinkComponent
17101
- }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
17102
- subMenuOpen: subMenuOpen && displayedSubMenu === 'apparel',
17103
- onBackClick: onBackClick,
17104
- backIcon: backIcon,
17105
- subMenuCategoryTitle: "Department",
17106
- productUrl: productUrl,
17107
- categoryElements: addCategoryToElements(dropdownData.apparelStyles, categories$1.clothing.slug),
17108
- subMenuBrandsTitle: "Clothing Brands",
17109
- brandsList: dropdownData.apparel,
17110
- categorySlug: displayedSubMenu,
17111
- isLoading: loading,
17112
- hasError: hasError,
17113
- onCloseSideNav: onCloseSideNav,
17114
- LinkComponent: LinkComponent
17115
- }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
17116
- subMenuOpen: subMenuOpen && displayedSubMenu === 'accessories',
17117
- onBackClick: onBackClick,
17118
- backIcon: backIcon,
17119
- subMenuCategoryTitle: "Categories",
17120
- productUrl: productUrl,
17121
- categoryElements: removeCategoryByName(dropdownData.accessoriesCategories, 'ACCESSORIES'),
17122
- subMenuBrandsTitle: "Accessory Brands",
17123
- brandsList: dropdownData.accessories,
17124
- categorySlug: displayedSubMenu,
17125
- isLoading: loading,
17126
- hasError: hasError,
17127
- onCloseSideNav: onCloseSideNav,
17128
- LinkComponent: LinkComponent
17129
- }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
17130
- subMenuOpen: subMenuOpen && displayedSubMenu === 'watches',
17131
- onBackClick: onBackClick,
17132
- backIcon: backIcon,
17133
- subMenuCategoryTitle: "Department",
17134
- productUrl: productUrl,
17135
- categoryElements: addCategoryToElements(categoryElements, categories$1.watches.slug),
17136
- subMenuBrandsTitle: "Watches Brands",
17137
- brandsList: dropdownData.watches,
17138
- categorySlug: displayedSubMenu,
17139
- isLoading: loading,
17140
- hasError: hasError,
17141
- onCloseSideNav: onCloseSideNav,
17142
- LinkComponent: LinkComponent
17143
- }), displayedSubMenu === 'stores' && /*#__PURE__*/React__default.createElement("div", {
16983
+ }))), renderDropdownLinks(), displayedSubMenu === 'stores' && /*#__PURE__*/React__default.createElement("div", {
17144
16984
  className: "side-nav__content"
17145
16985
  }, /*#__PURE__*/React__default.createElement(StoresDropdown$1, {
16986
+ key: "stores",
17146
16987
  backIcon: backIcon,
17147
16988
  onBackClick: onBackClick,
17148
16989
  stores: stores,
@@ -17210,7 +17051,7 @@
17210
17051
  src: accountIcon,
17211
17052
  alt: "close-icon",
17212
17053
  className: "side-nav__menu-icon"
17213
- }), "Account"))), /*#__PURE__*/React__default.createElement("div", {
17054
+ }), "Account"))), onInterestClick && /*#__PURE__*/React__default.createElement("div", {
17214
17055
  className: "side-nav__menu-item"
17215
17056
  }, /*#__PURE__*/React__default.createElement("button", {
17216
17057
  type: "button",
@@ -17354,13 +17195,13 @@
17354
17195
  onDashboardClick = _ref.onDashboardClick,
17355
17196
  onContactUsClick = _ref.onContactUsClick,
17356
17197
  onOurStoryClick = _ref.onOurStoryClick,
17357
- onBlogClick = _ref.onBlogClick,
17198
+ _ref$onBlogClick = _ref.onBlogClick,
17199
+ onBlogClick = _ref$onBlogClick === void 0 ? undefined : _ref$onBlogClick,
17358
17200
  bugReportLink = _ref.bugReportLink,
17359
17201
  onSellToUsClick = _ref.onSellToUsClick,
17360
17202
  onLogoClick = _ref.onLogoClick,
17361
17203
  onLuxityShopClick = _ref.onLuxityShopClick,
17362
17204
  endpoint = _ref.endpoint,
17363
- menuData = _ref.menuData,
17364
17205
  initialSearchData = _ref.initialSearchData,
17365
17206
  onSearchSubmit = _ref.onSearchSubmit,
17366
17207
  onProductIdsReceived = _ref.onProductIdsReceived,
@@ -17382,7 +17223,8 @@
17382
17223
  tooltipContent = _ref.tooltipContent,
17383
17224
  LinkComponent = _ref.LinkComponent,
17384
17225
  shop = _ref.shop,
17385
- app = _ref.app;
17226
+ app = _ref.app,
17227
+ categoryConfig = _ref.categoryConfig;
17386
17228
 
17387
17229
  var _useSearch = useSearch({
17388
17230
  endpoint: endpoint,
@@ -17447,6 +17289,10 @@
17447
17289
  var handleChange = useSearchInputChange(setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults);
17448
17290
  var handleKeyDown = useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused, setSearchValue);
17449
17291
  React.useMemo(function () {
17292
+ if (!initialSearchData) {
17293
+ return;
17294
+ }
17295
+
17450
17296
  fetchInitialSearchData(initialSearchData, setInitialSearchView);
17451
17297
  }, [initialSearchData, fetchInitialSearchData]);
17452
17298
  useSearchClickOutside(searchResultsRef, searchResults, setCachedResults, setIsSearchFocused, setSearchResults);
@@ -17551,10 +17397,9 @@
17551
17397
  return handleClick(onOurStoryClick);
17552
17398
  };
17553
17399
 
17554
- var handleBlogClick = function handleBlogClick() {
17400
+ var handleBlogClick = onBlogClick ? function () {
17555
17401
  return handleClick(onBlogClick);
17556
- };
17557
-
17402
+ } : undefined;
17558
17403
  return /*#__PURE__*/React__default.createElement(React.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
17559
17404
  className: "navbar navbar__mobile-wrapper"
17560
17405
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -17659,13 +17504,13 @@
17659
17504
  showSideNav: showSideNav,
17660
17505
  onMenuClick: onMenuClick,
17661
17506
  endpoint: endpoint,
17662
- menuData: menuData,
17663
17507
  currency: currency,
17664
17508
  currencyOptions: currencyOptions,
17665
17509
  onCurrencyChange: onCurrencyChange,
17666
17510
  isCurrencySelectionDisabled: isCurrencySelectionDisabled,
17667
17511
  tooltipContent: tooltipContent,
17668
- LinkComponent: LinkComponent
17512
+ LinkComponent: LinkComponent,
17513
+ categoryConfig: categoryConfig
17669
17514
  }), app && /*#__PURE__*/React__default.createElement(LuxityAppSideNav, {
17670
17515
  accordionIcon: accordionIcon,
17671
17516
  closeIcon: closeIcon,