@bonlineza/luxity-lib 2.35.3 → 2.36.1-beta.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.
@@ -571,33 +571,10 @@
571
571
  var _categories$filter;
572
572
 
573
573
  return (_categories$filter = categories === null || categories === void 0 ? void 0 : categories.filter(function (category) {
574
- return category.name !== name;
574
+ return category.name.toLowerCase() !== name.toLowerCase();
575
575
  })) !== null && _categories$filter !== void 0 ? _categories$filter : [];
576
576
  };
577
577
 
578
- var categories = {
579
- shoes: {
580
- name: 'Shoes',
581
- slug: 'shoes'
582
- },
583
- bags: {
584
- name: 'Bags',
585
- slug: 'bags'
586
- },
587
- clothing: {
588
- name: 'Clothing',
589
- slug: 'apparel'
590
- },
591
- watches: {
592
- name: 'Watches',
593
- slug: 'watches'
594
- },
595
- accessories: {
596
- name: 'Accessories',
597
- slug: 'accessories'
598
- }
599
- };
600
-
601
578
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
602
579
  /* position relative is required for the Body element to be positioned correctly */
603
580
 
@@ -810,7 +787,8 @@
810
787
  onCartClick = _ref.onCartClick,
811
788
  onContactUsClick = _ref.onContactUsClick,
812
789
  onOurStoryClick = _ref.onOurStoryClick,
813
- onBlogClick = _ref.onBlogClick,
790
+ _ref$onBlogClick = _ref.onBlogClick,
791
+ onBlogClick = _ref$onBlogClick === void 0 ? undefined : _ref$onBlogClick,
814
792
  onSellToUsClick = _ref.onSellToUsClick,
815
793
  stores = _ref.stores,
816
794
  categoryElements = _ref.categoryElements,
@@ -822,7 +800,8 @@
822
800
  onCurrencyChange = _ref.onCurrencyChange,
823
801
  isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
824
802
  tooltipContent = _ref.tooltipContent,
825
- LinkComponent = _ref.LinkComponent;
803
+ LinkComponent = _ref.LinkComponent,
804
+ categoryConfig = _ref.categoryConfig;
826
805
 
827
806
  var _useState = React.useState(false),
828
807
  _useState2 = _slicedToArray(_useState, 2),
@@ -839,16 +818,7 @@
839
818
  loading = _useState6[0],
840
819
  setLoading = _useState6[1];
841
820
 
842
- var _useState7 = React.useState({
843
- latestArrivals: [],
844
- bags: [],
845
- shoes: [],
846
- apparel: [],
847
- accessories: [],
848
- watches: [],
849
- accessoriesCategories: [],
850
- apparelStyles: []
851
- }),
821
+ var _useState7 = React.useState({}),
852
822
  _useState8 = _slicedToArray(_useState7, 2),
853
823
  dropdownData = _useState8[0],
854
824
  setDropdownData = _useState8[1];
@@ -898,22 +868,88 @@
898
868
  axios.get("".concat(menuData)).then(function (_ref2) {
899
869
  var data = _ref2.data;
900
870
  setLoading(false);
901
- setDropdownData(function (prev) {
902
- return _objectSpread2(_objectSpread2({}, prev), {}, {
903
- latestArrivals: data.latest_arrivals,
904
- bags: data.bags,
905
- shoes: data.shoes,
906
- apparel: data.apparel,
907
- accessories: data.accessories,
908
- watches: data.watches,
909
- accessoriesCategories: data.accessories_categories,
910
- apparelStyles: data.apparel_styles
911
- });
912
- });
871
+ setDropdownData(data);
913
872
  }).catch(function () {
914
873
  return setHasError(true);
915
874
  });
916
875
  }, [menuData]);
876
+
877
+ var renderMenuItems = function renderMenuItems() {
878
+ return categoryConfig.categories.map(function (category) {
879
+ var title = category.title,
880
+ categorySlug = category.categorySlug;
881
+ var slug = categorySlug;
882
+
883
+ if (categorySlug === 'brands') {
884
+ slug = 'new';
885
+ }
886
+
887
+ return /*#__PURE__*/React__default.createElement("div", {
888
+ className: "side-nav__menu-item"
889
+ }, /*#__PURE__*/React__default.createElement("button", {
890
+ type: "button",
891
+ className: "side-nav__menu-title-wrapper",
892
+ onClick: function onClick() {
893
+ return onSubMenuClick(slug);
894
+ }
895
+ }, /*#__PURE__*/React__default.createElement("span", {
896
+ className: "side-nav__menu-title"
897
+ }, title), /*#__PURE__*/React__default.createElement("img", {
898
+ src: accordionIcon,
899
+ alt: "accordion-icon",
900
+ className: "side-nav__accordion-icon"
901
+ })));
902
+ });
903
+ };
904
+
905
+ var renderDropdownLinks = function renderDropdownLinks() {
906
+ return categoryConfig.categories.map(function (category) {
907
+ var categorySlug = category.categorySlug,
908
+ categoryName = category.categoryName,
909
+ elementsKey = category.elementsKey,
910
+ subCategoryElementsKey = category.subCategoryElementsKey,
911
+ styleElementsKey = category.styleElementsKey;
912
+ var categoryElementsProcessed = categoryElements;
913
+
914
+ if (subCategoryElementsKey && dropdownData[subCategoryElementsKey]) {
915
+ // show subcategory elements
916
+ categoryElementsProcessed = removeCategoryByName(dropdownData[subCategoryElementsKey], categoryName);
917
+ } else if (styleElementsKey && dropdownData[styleElementsKey]) {
918
+ categoryElementsProcessed = addCategoryToElements(dropdownData[styleElementsKey], categorySlug);
919
+ } else {
920
+ categoryElementsProcessed = addCategoryToElements(categoryElementsProcessed, categorySlug);
921
+ }
922
+
923
+ var subMenuTitle = 'Brands';
924
+
925
+ if (categorySlug !== 'brands') {
926
+ subMenuTitle = "".concat(categoryName, " Brands");
927
+ }
928
+
929
+ var subMenu = categorySlug;
930
+
931
+ if (subMenu === 'brands') {
932
+ subMenu = 'new';
933
+ }
934
+
935
+ return /*#__PURE__*/React__default.createElement(BrandsDropDown, {
936
+ subMenuOpen: subMenuOpen && displayedSubMenu === subMenu,
937
+ onBackClick: onBackClick,
938
+ backIcon: backIcon,
939
+ subMenuCategoryTitle: "Department",
940
+ productUrl: productUrl,
941
+ categoryElements: categoryElementsProcessed,
942
+ subMenuBrandsTitle: subMenuTitle,
943
+ brandsList: dropdownData[elementsKey],
944
+ categorySlug: displayedSubMenu,
945
+ isLoading: loading,
946
+ hasError: hasError,
947
+ onCloseSideNav: onCloseSideNav,
948
+ LinkComponent: LinkComponent
949
+ });
950
+ });
951
+ };
952
+
917
953
  return /*#__PURE__*/React__default.createElement("div", {
918
954
  className: "side-nav"
919
955
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -934,91 +970,7 @@
934
970
  className: "side-nav__close-icon"
935
971
  })), /*#__PURE__*/React__default.createElement("div", {
936
972
  className: "side-nav__menu-items-wrapper"
937
- }, /*#__PURE__*/React__default.createElement("div", {
938
- className: "side-nav__menu-item"
939
- }, /*#__PURE__*/React__default.createElement("button", {
940
- type: "button",
941
- className: "side-nav__menu-title-wrapper",
942
- onClick: function onClick() {
943
- return onSubMenuClick('new');
944
- }
945
- }, /*#__PURE__*/React__default.createElement("span", {
946
- className: "side-nav__menu-title"
947
- }, "New"), /*#__PURE__*/React__default.createElement("img", {
948
- src: accordionIcon,
949
- alt: "accordion-icon",
950
- className: "side-nav__accordion-icon"
951
- }))), /*#__PURE__*/React__default.createElement("div", {
952
- className: "side-nav__menu-item"
953
- }, /*#__PURE__*/React__default.createElement("button", {
954
- type: "button",
955
- className: "side-nav__menu-title-wrapper",
956
- onClick: function onClick() {
957
- return onSubMenuClick('bags');
958
- }
959
- }, /*#__PURE__*/React__default.createElement("span", {
960
- className: "side-nav__menu-title"
961
- }, "Bags"), /*#__PURE__*/React__default.createElement("img", {
962
- src: accordionIcon,
963
- alt: "accordion-icon",
964
- className: "side-nav__accordion-icon"
965
- }))), /*#__PURE__*/React__default.createElement("div", {
966
- className: "side-nav__menu-item"
967
- }, /*#__PURE__*/React__default.createElement("button", {
968
- type: "button",
969
- className: "side-nav__menu-title-wrapper",
970
- onClick: function onClick() {
971
- return onSubMenuClick('shoes');
972
- }
973
- }, /*#__PURE__*/React__default.createElement("span", {
974
- className: "side-nav__menu-title"
975
- }, "Shoes"), /*#__PURE__*/React__default.createElement("img", {
976
- src: accordionIcon,
977
- alt: "accordion-icon",
978
- className: "side-nav__accordion-icon"
979
- }))), /*#__PURE__*/React__default.createElement("div", {
980
- className: "side-nav__menu-item"
981
- }, /*#__PURE__*/React__default.createElement("button", {
982
- type: "button",
983
- className: "side-nav__menu-title-wrapper",
984
- onClick: function onClick() {
985
- return onSubMenuClick('apparel');
986
- }
987
- }, /*#__PURE__*/React__default.createElement("span", {
988
- className: "side-nav__menu-title"
989
- }, "Clothing"), /*#__PURE__*/React__default.createElement("img", {
990
- src: accordionIcon,
991
- alt: "accordion-icon",
992
- className: "side-nav__accordion-icon"
993
- }))), /*#__PURE__*/React__default.createElement("div", {
994
- className: "side-nav__menu-item"
995
- }, /*#__PURE__*/React__default.createElement("button", {
996
- type: "button",
997
- className: "side-nav__menu-title-wrapper",
998
- onClick: function onClick() {
999
- return onSubMenuClick('accessories');
1000
- }
1001
- }, /*#__PURE__*/React__default.createElement("span", {
1002
- className: "side-nav__menu-title"
1003
- }, "Accessories"), /*#__PURE__*/React__default.createElement("img", {
1004
- src: accordionIcon,
1005
- alt: "accordion-icon",
1006
- className: "side-nav__accordion-icon"
1007
- }))), /*#__PURE__*/React__default.createElement("div", {
1008
- className: "side-nav__menu-item"
1009
- }, /*#__PURE__*/React__default.createElement("button", {
1010
- type: "button",
1011
- className: "side-nav__menu-title-wrapper",
1012
- onClick: function onClick() {
1013
- return onSubMenuClick('watches');
1014
- }
1015
- }, /*#__PURE__*/React__default.createElement("span", {
1016
- className: "side-nav__menu-title"
1017
- }, "Watches"), /*#__PURE__*/React__default.createElement("img", {
1018
- src: accordionIcon,
1019
- alt: "accordion-icon",
1020
- className: "side-nav__accordion-icon"
1021
- }))), /*#__PURE__*/React__default.createElement("div", {
973
+ }, renderMenuItems(), !!stores.length && /*#__PURE__*/React__default.createElement("div", {
1022
974
  className: "side-nav__menu-item"
1023
975
  }, /*#__PURE__*/React__default.createElement("button", {
1024
976
  type: "button",
@@ -1042,7 +994,7 @@
1042
994
  type: "button",
1043
995
  className: "side-nav__sub-link",
1044
996
  onClick: onOurStoryClick
1045
- }, "Our Story")), /*#__PURE__*/React__default.createElement("div", {
997
+ }, "Our Story")), typeof onBlogClick === 'function' && /*#__PURE__*/React__default.createElement("div", {
1046
998
  className: "side-nav__menu-item"
1047
999
  }, /*#__PURE__*/React__default.createElement("button", {
1048
1000
  type: "button",
@@ -1072,91 +1024,7 @@
1072
1024
  onCurrencyChange: onCurrencyChange,
1073
1025
  isCurrencySelectionDisabled: isCurrencySelectionDisabled,
1074
1026
  tooltipContent: tooltipContent
1075
- }))), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
1076
- subMenuOpen: subMenuOpen && displayedSubMenu === 'new',
1077
- onBackClick: onBackClick,
1078
- backIcon: backIcon,
1079
- subMenuCategoryTitle: "Department",
1080
- productUrl: productUrl,
1081
- categoryElements: categoryElements,
1082
- subMenuBrandsTitle: "Brands",
1083
- brandsList: dropdownData.latestArrivals,
1084
- categorySlug: displayedSubMenu,
1085
- isLoading: loading,
1086
- hasError: hasError,
1087
- onCloseSideNav: onCloseSideNav,
1088
- LinkComponent: LinkComponent
1089
- }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
1090
- subMenuOpen: subMenuOpen && displayedSubMenu === 'bags',
1091
- onBackClick: onBackClick,
1092
- backIcon: backIcon,
1093
- subMenuCategoryTitle: "Department",
1094
- productUrl: productUrl,
1095
- categoryElements: addCategoryToElements(categoryElements, categories.bags.slug),
1096
- subMenuBrandsTitle: "Bag Brands",
1097
- brandsList: dropdownData.bags,
1098
- categorySlug: displayedSubMenu,
1099
- isLoading: loading,
1100
- hasError: hasError,
1101
- onCloseSideNav: onCloseSideNav,
1102
- LinkComponent: LinkComponent
1103
- }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
1104
- subMenuOpen: subMenuOpen && displayedSubMenu === 'shoes',
1105
- onBackClick: onBackClick,
1106
- backIcon: backIcon,
1107
- subMenuCategoryTitle: "Department",
1108
- productUrl: productUrl,
1109
- categoryElements: addCategoryToElements(categoryElements, categories.shoes.slug),
1110
- subMenuBrandsTitle: "Shoe Brands",
1111
- brandsList: dropdownData.shoes,
1112
- categorySlug: displayedSubMenu,
1113
- isLoading: loading,
1114
- hasError: hasError,
1115
- onCloseSideNav: onCloseSideNav,
1116
- LinkComponent: LinkComponent
1117
- }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
1118
- subMenuOpen: subMenuOpen && displayedSubMenu === 'apparel',
1119
- onBackClick: onBackClick,
1120
- backIcon: backIcon,
1121
- subMenuCategoryTitle: "Department",
1122
- productUrl: productUrl,
1123
- categoryElements: addCategoryToElements(dropdownData.apparelStyles, categories.clothing.slug),
1124
- subMenuBrandsTitle: "Clothing Brands",
1125
- brandsList: dropdownData.apparel,
1126
- categorySlug: displayedSubMenu,
1127
- isLoading: loading,
1128
- hasError: hasError,
1129
- onCloseSideNav: onCloseSideNav,
1130
- LinkComponent: LinkComponent
1131
- }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
1132
- subMenuOpen: subMenuOpen && displayedSubMenu === 'accessories',
1133
- onBackClick: onBackClick,
1134
- backIcon: backIcon,
1135
- subMenuCategoryTitle: "Categories",
1136
- productUrl: productUrl,
1137
- categoryElements: removeCategoryByName(dropdownData.accessoriesCategories, 'ACCESSORIES'),
1138
- subMenuBrandsTitle: "Accessory Brands",
1139
- brandsList: dropdownData.accessories,
1140
- categorySlug: displayedSubMenu,
1141
- isLoading: loading,
1142
- hasError: hasError,
1143
- onCloseSideNav: onCloseSideNav,
1144
- LinkComponent: LinkComponent
1145
- }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
1146
- subMenuOpen: subMenuOpen && displayedSubMenu === 'watches',
1147
- onBackClick: onBackClick,
1148
- backIcon: backIcon,
1149
- subMenuCategoryTitle: "Department",
1150
- productUrl: productUrl,
1151
- categoryElements: addCategoryToElements(categoryElements, categories.watches.slug),
1152
- subMenuBrandsTitle: "Watches Brands",
1153
- brandsList: dropdownData.watches,
1154
- categorySlug: displayedSubMenu,
1155
- isLoading: loading,
1156
- hasError: hasError,
1157
- onCloseSideNav: onCloseSideNav,
1158
- LinkComponent: LinkComponent
1159
- }), displayedSubMenu === 'stores' && /*#__PURE__*/React__default.createElement("div", {
1027
+ }))), renderDropdownLinks(), displayedSubMenu === 'stores' && /*#__PURE__*/React__default.createElement("div", {
1160
1028
  className: "side-nav__content"
1161
1029
  }, /*#__PURE__*/React__default.createElement(StoresDropdown, {
1162
1030
  backIcon: backIcon,
@@ -1166,6 +1034,10 @@
1166
1034
  })));
1167
1035
  };
1168
1036
 
1037
+ LuxitySideNav.defaultProps = {
1038
+ onBlogClick: undefined
1039
+ };
1040
+
1169
1041
  var searchProducts = function searchProducts(search, limit) {
1170
1042
  return {
1171
1043
  query: "\n query SearchProducts($search: String!, $limit: Int!) {\n luxity_products_serach_results(search: $search, limit: $limit) {\n brands {\n name\n link\n }\n products {\n name\n link\n }\n luxity_product_ids\n }\n }\n ",
@@ -1249,7 +1121,8 @@
1249
1121
  onDashboardClick = _ref.onDashboardClick,
1250
1122
  onContactUsClick = _ref.onContactUsClick,
1251
1123
  onOurStoryClick = _ref.onOurStoryClick,
1252
- onBlogClick = _ref.onBlogClick,
1124
+ _ref$onBlogClick = _ref.onBlogClick,
1125
+ onBlogClick = _ref$onBlogClick === void 0 ? undefined : _ref$onBlogClick,
1253
1126
  bugReportLink = _ref.bugReportLink,
1254
1127
  onSellToUsClick = _ref.onSellToUsClick,
1255
1128
  onLogoClick = _ref.onLogoClick,
@@ -1275,7 +1148,8 @@
1275
1148
  tooltipContent = _ref.tooltipContent,
1276
1149
  LinkComponent = _ref.LinkComponent,
1277
1150
  shop = _ref.shop,
1278
- app = _ref.app;
1151
+ app = _ref.app,
1152
+ categoryConfig = _ref.categoryConfig;
1279
1153
 
1280
1154
  var _useState = React.useState(''),
1281
1155
  _useState2 = _slicedToArray(_useState, 2),
@@ -1454,10 +1328,9 @@
1454
1328
  return handleClick(onOurStoryClick);
1455
1329
  };
1456
1330
 
1457
- var handleBlogClick = function handleBlogClick() {
1331
+ var handleBlogClick = onBlogClick ? function () {
1458
1332
  return handleClick(onBlogClick);
1459
- };
1460
-
1333
+ } : undefined;
1461
1334
  return /*#__PURE__*/React__default.createElement(React.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
1462
1335
  className: "navbar navbar__mobile-wrapper"
1463
1336
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -1561,7 +1434,8 @@
1561
1434
  onCurrencyChange: onCurrencyChange,
1562
1435
  isCurrencySelectionDisabled: isCurrencySelectionDisabled,
1563
1436
  tooltipContent: tooltipContent,
1564
- LinkComponent: LinkComponent
1437
+ LinkComponent: LinkComponent,
1438
+ categoryConfig: categoryConfig
1565
1439
  }), app && /*#__PURE__*/React__default.createElement(LuxityAppSideNav, {
1566
1440
  accordionIcon: accordionIcon,
1567
1441
  closeIcon: closeIcon,