@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/LuxityAppSideNav.js +1 -1
- package/LuxityDesktopHeader.js +84 -144
- package/LuxityFooter.js +4 -4
- package/LuxityMobileHeader.js +124 -239
- package/LuxitySideNav.js +106 -228
- package/build/bundle.css +1 -1
- package/build/bundle.js +206 -361
- package/package.json +3 -2
- 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/LuxityAppSideNav.js
CHANGED
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
src: accountIcon,
|
|
67
67
|
alt: "close-icon",
|
|
68
68
|
className: "side-nav__menu-icon"
|
|
69
|
-
}), "Account"))), /*#__PURE__*/React.createElement("div", {
|
|
69
|
+
}), "Account"))), onInterestClick && /*#__PURE__*/React.createElement("div", {
|
|
70
70
|
className: "side-nav__menu-item"
|
|
71
71
|
}, /*#__PURE__*/React.createElement("button", {
|
|
72
72
|
type: "button",
|
package/LuxityDesktopHeader.js
CHANGED
|
@@ -189,11 +189,11 @@
|
|
|
189
189
|
onClick: onMenuItemClick
|
|
190
190
|
}, "All ", categoryTitle)), !!brandElements.length && brandElements.map(function (brand) {
|
|
191
191
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
192
|
-
className: "dropdown__brand-element"
|
|
192
|
+
className: "dropdown__brand-element",
|
|
193
|
+
key: brand.name
|
|
193
194
|
}, /*#__PURE__*/React__default.createElement(LinkComponent, {
|
|
194
195
|
href: "".concat(productsUrl, "/").concat(categorySlug, "/").concat(brand === null || brand === void 0 ? void 0 : brand.slug),
|
|
195
196
|
className: "dropdown__element",
|
|
196
|
-
key: brand.name,
|
|
197
197
|
onClick: onMenuItemClick
|
|
198
198
|
}, brand === null || brand === void 0 ? void 0 : brand.name));
|
|
199
199
|
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -297,37 +297,6 @@
|
|
|
297
297
|
}, contactNumber)));
|
|
298
298
|
};
|
|
299
299
|
|
|
300
|
-
var categories = {
|
|
301
|
-
shoes: {
|
|
302
|
-
name: 'Shoes',
|
|
303
|
-
slug: 'shoes'
|
|
304
|
-
},
|
|
305
|
-
bags: {
|
|
306
|
-
name: 'Bags',
|
|
307
|
-
slug: 'bags'
|
|
308
|
-
},
|
|
309
|
-
clothing: {
|
|
310
|
-
name: 'Clothing',
|
|
311
|
-
slug: 'apparel'
|
|
312
|
-
},
|
|
313
|
-
watches: {
|
|
314
|
-
name: 'Watches',
|
|
315
|
-
slug: 'watches'
|
|
316
|
-
},
|
|
317
|
-
accessories: {
|
|
318
|
-
name: 'Accessories',
|
|
319
|
-
slug: 'accessories'
|
|
320
|
-
}
|
|
321
|
-
};
|
|
322
|
-
|
|
323
|
-
var removeCategoryByName = function removeCategoryByName(categories, name) {
|
|
324
|
-
var _categories$filter;
|
|
325
|
-
|
|
326
|
-
return (_categories$filter = categories === null || categories === void 0 ? void 0 : categories.filter(function (category) {
|
|
327
|
-
return category.name !== name;
|
|
328
|
-
})) !== null && _categories$filter !== void 0 ? _categories$filter : [];
|
|
329
|
-
};
|
|
330
|
-
|
|
331
300
|
var SearchResults = function SearchResults(_ref) {
|
|
332
301
|
var _searchResults$brands, _searchResults$produc, _searchResults$brands2, _searchResults$produc2, _initialSearchData$tr, _initialSearchData$la, _limitBrands, _limitBrands2, _initialSearchData$la2, _searchResults$produc3;
|
|
333
302
|
|
|
@@ -846,13 +815,16 @@
|
|
|
846
815
|
}, [setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults]);
|
|
847
816
|
};
|
|
848
817
|
var useSearchInputFocus = function useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults) {
|
|
818
|
+
var handleSearchClick = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;
|
|
849
819
|
return React.useCallback(function () {
|
|
850
820
|
setIsSearchFocused(true);
|
|
851
821
|
|
|
852
|
-
if (
|
|
822
|
+
if (typeof handleSearchClick === 'function') {
|
|
823
|
+
handleSearchClick();
|
|
824
|
+
} else if (searchValue.trim().length >= 3) {
|
|
853
825
|
setSearchResults(cachedResults);
|
|
854
826
|
}
|
|
855
|
-
}, [searchValue, setIsSearchFocused, cachedResults, setSearchResults]);
|
|
827
|
+
}, [searchValue, setIsSearchFocused, cachedResults, setSearchResults, handleSearchClick]);
|
|
856
828
|
};
|
|
857
829
|
var useSearchInputKeyDown = function useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused) {
|
|
858
830
|
var setSearchValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
@@ -872,6 +844,14 @@
|
|
|
872
844
|
}, [searchValue, immediateSearch, setIsSearchFocused, setSearchValue]);
|
|
873
845
|
};
|
|
874
846
|
|
|
847
|
+
var removeCategoryByName = function removeCategoryByName(categories, name) {
|
|
848
|
+
var _categories$filter;
|
|
849
|
+
|
|
850
|
+
return (_categories$filter = categories === null || categories === void 0 ? void 0 : categories.filter(function (category) {
|
|
851
|
+
return category.name.toLowerCase() !== name.toLowerCase();
|
|
852
|
+
})) !== null && _categories$filter !== void 0 ? _categories$filter : [];
|
|
853
|
+
};
|
|
854
|
+
|
|
875
855
|
var LuxityDesktopHeader = function LuxityDesktopHeader(_ref) {
|
|
876
856
|
var accountIcon = _ref.accountIcon,
|
|
877
857
|
cartIcon = _ref.cartIcon,
|
|
@@ -879,12 +859,6 @@
|
|
|
879
859
|
cartCount = _ref.cartCount,
|
|
880
860
|
logoSrc = _ref.logoSrc,
|
|
881
861
|
categoryElements = _ref.categoryElements,
|
|
882
|
-
newBrandsImage = _ref.newBrandsImage,
|
|
883
|
-
bagsImage = _ref.bagsImage,
|
|
884
|
-
shoesImage = _ref.shoesImage,
|
|
885
|
-
clothingImage = _ref.clothingImage,
|
|
886
|
-
accessoriesImage = _ref.accessoriesImage,
|
|
887
|
-
watchesImage = _ref.watchesImage,
|
|
888
862
|
stores = _ref.stores,
|
|
889
863
|
contactNumber = _ref.contactNumber,
|
|
890
864
|
productsUrl = _ref.productsUrl,
|
|
@@ -898,9 +872,9 @@
|
|
|
898
872
|
ourStoryLink = _ref.ourStoryLink,
|
|
899
873
|
onLogoClick = _ref.onLogoClick,
|
|
900
874
|
endpoint = _ref.endpoint,
|
|
901
|
-
menuData = _ref.menuData,
|
|
902
875
|
initialSearchData = _ref.initialSearchData,
|
|
903
876
|
onSearchSubmit = _ref.onSearchSubmit,
|
|
877
|
+
onSearchClick = _ref.onSearchClick,
|
|
904
878
|
onProductIdsReceived = _ref.onProductIdsReceived,
|
|
905
879
|
currency = _ref.currency,
|
|
906
880
|
currencySymbol = _ref.currencySymbol,
|
|
@@ -912,7 +886,8 @@
|
|
|
912
886
|
name = _ref.name,
|
|
913
887
|
isVip = _ref.isVip,
|
|
914
888
|
shop = _ref.shop,
|
|
915
|
-
app = _ref.app
|
|
889
|
+
app = _ref.app,
|
|
890
|
+
categoryConfig = _ref.categoryConfig;
|
|
916
891
|
|
|
917
892
|
var _useSearch = useSearch({
|
|
918
893
|
endpoint: endpoint,
|
|
@@ -939,26 +914,17 @@
|
|
|
939
914
|
setIsSearchFocused = _useState6[1];
|
|
940
915
|
|
|
941
916
|
var _useState7 = React.useState({
|
|
942
|
-
latestArrivals: [],
|
|
943
|
-
bags: [],
|
|
944
|
-
shoes: [],
|
|
945
|
-
clothing: [],
|
|
946
|
-
accessories: [],
|
|
947
|
-
watches: [],
|
|
948
|
-
accessoriesCategories: [],
|
|
949
|
-
apparelStyles: []
|
|
950
|
-
}),
|
|
951
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
952
|
-
dropdownData = _useState8[0],
|
|
953
|
-
setDropdownData = _useState8[1];
|
|
954
|
-
|
|
955
|
-
var _useState9 = React.useState({
|
|
956
917
|
trending_brands: [],
|
|
957
918
|
latest_products: []
|
|
958
919
|
}),
|
|
920
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
921
|
+
initialSearchView = _useState8[0],
|
|
922
|
+
setInitialSearchView = _useState8[1];
|
|
923
|
+
|
|
924
|
+
var _useState9 = React.useState({}),
|
|
959
925
|
_useState10 = _slicedToArray(_useState9, 2),
|
|
960
|
-
|
|
961
|
-
|
|
926
|
+
dropdownData = _useState10[0],
|
|
927
|
+
setDropdownData = _useState10[1];
|
|
962
928
|
|
|
963
929
|
var _useState11 = React.useState(false),
|
|
964
930
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
@@ -989,7 +955,17 @@
|
|
|
989
955
|
var immediateSearch = createImmediateSearch(setSearchValue, setSearchResults, onSearchSubmit);
|
|
990
956
|
var handleChange = useSearchInputChange(setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults);
|
|
991
957
|
useSearchClickOutside(searchResultsRef, searchResults, setCachedResults, setIsSearchFocused, setSearchResults);
|
|
992
|
-
|
|
958
|
+
|
|
959
|
+
var handleSearchClick = function handleSearchClick() {
|
|
960
|
+
if (typeof onSearchClick === 'function') {
|
|
961
|
+
onSearchClick();
|
|
962
|
+
return;
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
handleSearchFocus();
|
|
966
|
+
};
|
|
967
|
+
|
|
968
|
+
var handleSearchFocus = useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults, onSearchClick);
|
|
993
969
|
var handleKeyDown = useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused);
|
|
994
970
|
|
|
995
971
|
function addCategoryToElements(elements, categoryName) {
|
|
@@ -1002,29 +978,58 @@
|
|
|
1002
978
|
|
|
1003
979
|
React.useMemo(function () {
|
|
1004
980
|
setLoading(true);
|
|
1005
|
-
axios.get("".concat(menuData)).then(function (_ref2) {
|
|
981
|
+
axios.get("".concat(categoryConfig.menuData)).then(function (_ref2) {
|
|
1006
982
|
var data = _ref2.data;
|
|
1007
983
|
setLoading(false);
|
|
1008
|
-
setDropdownData(
|
|
1009
|
-
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
1010
|
-
latestArrivals: data.latest_arrivals,
|
|
1011
|
-
bags: data.bags,
|
|
1012
|
-
shoes: data.shoes,
|
|
1013
|
-
apparel: data.apparel,
|
|
1014
|
-
accessories: data.accessories,
|
|
1015
|
-
watches: data.watches,
|
|
1016
|
-
accessoriesCategories: data.accessories_categories,
|
|
1017
|
-
apparelStyles: data.apparel_styles
|
|
1018
|
-
});
|
|
1019
|
-
});
|
|
984
|
+
setDropdownData(data);
|
|
1020
985
|
}).catch(function () {
|
|
1021
986
|
return setHasError(true);
|
|
1022
987
|
});
|
|
1023
|
-
}, [menuData]);
|
|
988
|
+
}, [categoryConfig.menuData]);
|
|
1024
989
|
React.useMemo(function () {
|
|
990
|
+
if (!initialSearchData) {
|
|
991
|
+
return;
|
|
992
|
+
}
|
|
993
|
+
|
|
1025
994
|
fetchInitialSearchData(initialSearchData, setInitialSearchView);
|
|
1026
995
|
}, [initialSearchData, fetchInitialSearchData]);
|
|
1027
996
|
|
|
997
|
+
var renderDropdownLinks = function renderDropdownLinks() {
|
|
998
|
+
return categoryConfig.categories.map(function (category) {
|
|
999
|
+
var title = category.title,
|
|
1000
|
+
imageSrc = category.imageSrc,
|
|
1001
|
+
categorySlug = category.categorySlug,
|
|
1002
|
+
categoryName = category.categoryName,
|
|
1003
|
+
elementsKey = category.elementsKey,
|
|
1004
|
+
subCategoryElementsKey = category.subCategoryElementsKey,
|
|
1005
|
+
styleElementsKey = category.styleElementsKey;
|
|
1006
|
+
var categoryElementsProcessed = categoryElements;
|
|
1007
|
+
|
|
1008
|
+
if (subCategoryElementsKey && dropdownData[subCategoryElementsKey]) {
|
|
1009
|
+
// show subcategory elements
|
|
1010
|
+
categoryElementsProcessed = removeCategoryByName(dropdownData[subCategoryElementsKey], categoryName);
|
|
1011
|
+
} else if (styleElementsKey && dropdownData[styleElementsKey]) {
|
|
1012
|
+
categoryElementsProcessed = addCategoryToElements(dropdownData[styleElementsKey], categorySlug);
|
|
1013
|
+
} else {
|
|
1014
|
+
categoryElementsProcessed = addCategoryToElements(categoryElementsProcessed, categorySlug);
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
return /*#__PURE__*/React__default.createElement(DropdownLink, {
|
|
1018
|
+
key: categorySlug,
|
|
1019
|
+
title: title,
|
|
1020
|
+
imageSrc: imageSrc,
|
|
1021
|
+
categoryElements: categoryElementsProcessed,
|
|
1022
|
+
brandElements: dropdownData[elementsKey] || [],
|
|
1023
|
+
productsUrl: productsUrl,
|
|
1024
|
+
categorySlug: categorySlug,
|
|
1025
|
+
categoryTitle: categoryName,
|
|
1026
|
+
isLoading: loading,
|
|
1027
|
+
hasError: hasError,
|
|
1028
|
+
LinkComponent: LinkComponent
|
|
1029
|
+
});
|
|
1030
|
+
});
|
|
1031
|
+
};
|
|
1032
|
+
|
|
1028
1033
|
var getMarginRight = function getMarginRight(userIsVip, userName) {
|
|
1029
1034
|
if (userIsVip) return '15px';
|
|
1030
1035
|
if (userName) return '5px';
|
|
@@ -1062,7 +1067,7 @@
|
|
|
1062
1067
|
value: searchValue,
|
|
1063
1068
|
onChange: handleChange,
|
|
1064
1069
|
onKeyDown: handleKeyDown,
|
|
1065
|
-
onClick:
|
|
1070
|
+
onClick: handleSearchClick,
|
|
1066
1071
|
onFocus: handleSearchFocus
|
|
1067
1072
|
})), /*#__PURE__*/React__default.createElement(SearchResults, {
|
|
1068
1073
|
searchValue: searchValue,
|
|
@@ -1086,74 +1091,9 @@
|
|
|
1086
1091
|
currencySymbol: currencySymbol
|
|
1087
1092
|
}), /*#__PURE__*/React__default.createElement("nav", {
|
|
1088
1093
|
className: "navbar__nav-links navbar__nav-links--wrap"
|
|
1089
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
categoryElements: categoryElements,
|
|
1093
|
-
brandElements: dropdownData.latestArrivals,
|
|
1094
|
-
productsUrl: productsUrl,
|
|
1095
|
-
categorySlug: "brands",
|
|
1096
|
-
categoryTitle: "Brands",
|
|
1097
|
-
isLoading: loading,
|
|
1098
|
-
hasError: hasError,
|
|
1099
|
-
LinkComponent: LinkComponent
|
|
1100
|
-
}), /*#__PURE__*/React__default.createElement(DropdownLink, {
|
|
1101
|
-
title: "Bags",
|
|
1102
|
-
imageSrc: bagsImage,
|
|
1103
|
-
categoryElements: addCategoryToElements(categoryElements, categories.bags.slug),
|
|
1104
|
-
brandElements: dropdownData.bags,
|
|
1105
|
-
productsUrl: productsUrl,
|
|
1106
|
-
categorySlug: categories.bags.slug,
|
|
1107
|
-
categoryTitle: categories.bags.name,
|
|
1108
|
-
isLoading: loading,
|
|
1109
|
-
hasError: hasError,
|
|
1110
|
-
LinkComponent: LinkComponent
|
|
1111
|
-
}), /*#__PURE__*/React__default.createElement(DropdownLink, {
|
|
1112
|
-
title: "Shoes",
|
|
1113
|
-
imageSrc: shoesImage,
|
|
1114
|
-
categoryElements: addCategoryToElements(categoryElements, categories.shoes.slug),
|
|
1115
|
-
brandElements: dropdownData.shoes,
|
|
1116
|
-
productsUrl: productsUrl,
|
|
1117
|
-
categorySlug: categories.shoes.slug,
|
|
1118
|
-
categoryTitle: categories.shoes.name,
|
|
1119
|
-
isLoading: loading,
|
|
1120
|
-
hasError: hasError,
|
|
1121
|
-
LinkComponent: LinkComponent
|
|
1122
|
-
}), /*#__PURE__*/React__default.createElement(DropdownLink, {
|
|
1123
|
-
title: "Clothing",
|
|
1124
|
-
imageSrc: clothingImage,
|
|
1125
|
-
categoryElements: addCategoryToElements(dropdownData.apparelStyles, categories.clothing.slug),
|
|
1126
|
-
brandElements: dropdownData.apparel,
|
|
1127
|
-
productsUrl: productsUrl,
|
|
1128
|
-
categorySlug: categories.clothing.slug,
|
|
1129
|
-
categoryTitle: categories.clothing.name,
|
|
1130
|
-
isLoading: loading,
|
|
1131
|
-
hasError: hasError,
|
|
1132
|
-
LinkComponent: LinkComponent
|
|
1133
|
-
}), /*#__PURE__*/React__default.createElement(DropdownLink, {
|
|
1134
|
-
title: "Accessories",
|
|
1135
|
-
imageSrc: accessoriesImage,
|
|
1136
|
-
categoryElements: removeCategoryByName(dropdownData.accessoriesCategories, 'ACCESSORIES'),
|
|
1137
|
-
brandElements: dropdownData.accessories,
|
|
1138
|
-
productsUrl: productsUrl,
|
|
1139
|
-
categorySlug: categories.accessories.slug,
|
|
1140
|
-
categoryTitle: categories.accessories.name,
|
|
1141
|
-
isLoading: loading,
|
|
1142
|
-
hasError: hasError,
|
|
1143
|
-
LinkComponent: LinkComponent
|
|
1144
|
-
}), /*#__PURE__*/React__default.createElement(DropdownLink, {
|
|
1145
|
-
title: "Watches",
|
|
1146
|
-
imageSrc: watchesImage,
|
|
1147
|
-
categoryElements: addCategoryToElements(categoryElements, categories.watches.slug),
|
|
1148
|
-
brandElements: dropdownData.watches,
|
|
1149
|
-
productsUrl: productsUrl,
|
|
1150
|
-
categorySlug: categories.watches.slug,
|
|
1151
|
-
categoryTitle: categories.watches.name,
|
|
1152
|
-
isLoading: loading,
|
|
1153
|
-
hasError: hasError,
|
|
1154
|
-
LinkComponent: LinkComponent
|
|
1155
|
-
}), /*#__PURE__*/React__default.createElement("li", {
|
|
1156
|
-
className: "navbar__link"
|
|
1094
|
+
}, renderDropdownLinks(), !!stores.length && /*#__PURE__*/React__default.createElement("li", {
|
|
1095
|
+
className: "navbar__link",
|
|
1096
|
+
key: "Stores"
|
|
1157
1097
|
}, /*#__PURE__*/React__default.createElement(LinkComponent, {
|
|
1158
1098
|
href: contactUsLink,
|
|
1159
1099
|
className: "navbar__link-item navbar__link-item--desktop"
|
|
@@ -1196,7 +1136,7 @@
|
|
|
1196
1136
|
onClick: onAccountClick
|
|
1197
1137
|
}, /*#__PURE__*/React__default.createElement("span", {
|
|
1198
1138
|
className: "text-sm"
|
|
1199
|
-
}, name))), /*#__PURE__*/React__default.createElement("button", {
|
|
1139
|
+
}, name))), onInterestClick && /*#__PURE__*/React__default.createElement("button", {
|
|
1200
1140
|
type: "button",
|
|
1201
1141
|
className: "".concat(app ? 'navbar__icon--app' : 'navbar__icon'),
|
|
1202
1142
|
onClick: onInterestClick
|
package/LuxityFooter.js
CHANGED
|
@@ -2102,13 +2102,13 @@
|
|
|
2102
2102
|
setError = _useForm.setError;
|
|
2103
2103
|
|
|
2104
2104
|
var renderLinks = function renderLinks(links, title) {
|
|
2105
|
-
return /*#__PURE__*/React__default.createElement("div", {
|
|
2105
|
+
return !!links.length && /*#__PURE__*/React__default.createElement("div", {
|
|
2106
2106
|
className: "footer__link-container"
|
|
2107
2107
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
2108
2108
|
className: "footer__link-title"
|
|
2109
2109
|
}, title), /*#__PURE__*/React__default.createElement("div", {
|
|
2110
2110
|
className: "footer__links"
|
|
2111
|
-
},
|
|
2111
|
+
}, links.map(function (link) {
|
|
2112
2112
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
2113
2113
|
className: "footer__link-wrapper",
|
|
2114
2114
|
key: link.label
|
|
@@ -2291,13 +2291,13 @@
|
|
|
2291
2291
|
}), /*#__PURE__*/React__default.createElement(AccordionSection, {
|
|
2292
2292
|
title: "POPULAR",
|
|
2293
2293
|
links: popularLinks
|
|
2294
|
-
}), /*#__PURE__*/React__default.createElement(AccordionSection, {
|
|
2294
|
+
}), !!sellLinks.length && /*#__PURE__*/React__default.createElement(AccordionSection, {
|
|
2295
2295
|
title: "SELL",
|
|
2296
2296
|
links: sellLinks
|
|
2297
2297
|
}), /*#__PURE__*/React__default.createElement(AccordionSection, {
|
|
2298
2298
|
title: "COMPANY",
|
|
2299
2299
|
links: companyLinks
|
|
2300
|
-
}), /*#__PURE__*/React__default.createElement(AccordionSection, {
|
|
2300
|
+
}), !!storeLinks.length && /*#__PURE__*/React__default.createElement(AccordionSection, {
|
|
2301
2301
|
title: "CONNECT",
|
|
2302
2302
|
links: storeLinks
|
|
2303
2303
|
}), /*#__PURE__*/React__default.createElement("div", {
|