@bonlineza/luxity-lib 2.32.6 → 2.32.8
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 +186 -0
- package/LuxityDesktopHeader.js +185 -34
- package/LuxityMobileHeader.js +180 -29
- package/LuxitySideNav.js +7 -7
- package/build/bundle.css +1 -1
- package/build/bundle.js +231 -56
- package/package.json +3 -1
- package/postcss.config.js +6 -0
- package/build/.gitignore +0 -3
- package/build/.npmignore +0 -0
|
@@ -0,0 +1,186 @@
|
|
|
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.LuxityAppSideNav = 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 LuxityAppSideNav = function LuxityAppSideNav(_ref) {
|
|
10
|
+
var closeIcon = _ref.closeIcon,
|
|
11
|
+
accountIcon = _ref.accountIcon,
|
|
12
|
+
orderIcon = _ref.orderIcon,
|
|
13
|
+
saleIcon = _ref.saleIcon,
|
|
14
|
+
onDashboardClick = _ref.onDashboardClick,
|
|
15
|
+
onLogoutClick = _ref.onLogoutClick,
|
|
16
|
+
bugReportLink = _ref.bugReportLink,
|
|
17
|
+
onLuxityShopClick = _ref.onLuxityShopClick,
|
|
18
|
+
onInterestClick = _ref.onInterestClick,
|
|
19
|
+
onAddressClick = _ref.onAddressClick,
|
|
20
|
+
onCouponsClick = _ref.onCouponsClick,
|
|
21
|
+
onEditProfileClick = _ref.onEditProfileClick,
|
|
22
|
+
onCurrentOrdersClick = _ref.onCurrentOrdersClick,
|
|
23
|
+
onPastOrdersClick = _ref.onPastOrdersClick,
|
|
24
|
+
onPastSalesClick = _ref.onPastSalesClick,
|
|
25
|
+
onPaidOutClick = _ref.onPaidOutClick,
|
|
26
|
+
showSideNav = _ref.showSideNav,
|
|
27
|
+
onMenuClick = _ref.onMenuClick;
|
|
28
|
+
|
|
29
|
+
var onCloseSideNav = function onCloseSideNav(e) {
|
|
30
|
+
onMenuClick();
|
|
31
|
+
|
|
32
|
+
if (e.key === 'Enter') {
|
|
33
|
+
e.preventDefault();
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
38
|
+
className: "side-nav"
|
|
39
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
40
|
+
role: "button",
|
|
41
|
+
tabIndex: 0,
|
|
42
|
+
className: "side-nav__overlay ".concat(showSideNav ? 'side-nav__overlay--visible' : 'side-nav__overlay--hidden', " "),
|
|
43
|
+
onClick: onCloseSideNav,
|
|
44
|
+
onKeyDown: onCloseSideNav
|
|
45
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
46
|
+
className: "side-nav__content ".concat(showSideNav ? 'side-nav__content--open' : 'side-nav__content--closed')
|
|
47
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
48
|
+
type: "button",
|
|
49
|
+
onClick: onMenuClick,
|
|
50
|
+
className: "side-nav__icon-container"
|
|
51
|
+
}, /*#__PURE__*/React.createElement("img", {
|
|
52
|
+
src: closeIcon,
|
|
53
|
+
alt: "close-icon",
|
|
54
|
+
className: "side-nav__close-icon"
|
|
55
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
56
|
+
className: "side-nav__menu-items-wrapper"
|
|
57
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
58
|
+
className: "side-nav__menu-item"
|
|
59
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
60
|
+
type: "button",
|
|
61
|
+
className: "side-nav__menu-title-wrapper"
|
|
62
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
63
|
+
className: "side-nav__menu-title"
|
|
64
|
+
}, /*#__PURE__*/React.createElement("img", {
|
|
65
|
+
src: accountIcon,
|
|
66
|
+
alt: "close-icon",
|
|
67
|
+
className: "side-nav__menu-icon"
|
|
68
|
+
}), "My Account"))), /*#__PURE__*/React.createElement("div", {
|
|
69
|
+
className: "side-nav__menu-item"
|
|
70
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
71
|
+
type: "button",
|
|
72
|
+
className: "side-nav__menu-title-wrapper",
|
|
73
|
+
onClick: onInterestClick
|
|
74
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
75
|
+
className: "side-nav__menu-title"
|
|
76
|
+
}, "Interests"))), /*#__PURE__*/React.createElement("div", {
|
|
77
|
+
className: "side-nav__menu-item"
|
|
78
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
79
|
+
type: "button",
|
|
80
|
+
className: "side-nav__menu-title-wrapper",
|
|
81
|
+
onClick: onAddressClick
|
|
82
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
83
|
+
className: "side-nav__menu-title"
|
|
84
|
+
}, "Addresses"))), /*#__PURE__*/React.createElement("div", {
|
|
85
|
+
className: "side-nav__menu-item"
|
|
86
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
87
|
+
type: "button",
|
|
88
|
+
className: "side-nav__menu-title-wrapper",
|
|
89
|
+
onClick: onCouponsClick
|
|
90
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
91
|
+
className: "side-nav__menu-title"
|
|
92
|
+
}, "Coupons"))), /*#__PURE__*/React.createElement("div", {
|
|
93
|
+
className: "side-nav__menu-item"
|
|
94
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
95
|
+
type: "button",
|
|
96
|
+
className: "side-nav__menu-title-wrapper",
|
|
97
|
+
onClick: onEditProfileClick
|
|
98
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
99
|
+
className: "side-nav__menu-title"
|
|
100
|
+
}, "Edit Profile"))), /*#__PURE__*/React.createElement("div", {
|
|
101
|
+
className: "side-nav__menu-divider"
|
|
102
|
+
}, " "), /*#__PURE__*/React.createElement("div", {
|
|
103
|
+
className: "side-nav__menu-item"
|
|
104
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
105
|
+
type: "button",
|
|
106
|
+
className: "side-nav__menu-title-wrapper"
|
|
107
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
108
|
+
className: "side-nav__menu-title"
|
|
109
|
+
}, /*#__PURE__*/React.createElement("img", {
|
|
110
|
+
src: orderIcon,
|
|
111
|
+
alt: "close-icon",
|
|
112
|
+
className: "side-nav__menu-icon"
|
|
113
|
+
}), "My Orders"))), /*#__PURE__*/React.createElement("div", {
|
|
114
|
+
className: "side-nav__menu-item"
|
|
115
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
116
|
+
type: "button",
|
|
117
|
+
className: "side-nav__menu-title-wrapper",
|
|
118
|
+
onClick: onCurrentOrdersClick
|
|
119
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
120
|
+
className: "side-nav__menu-title"
|
|
121
|
+
}, "Current Orders"))), /*#__PURE__*/React.createElement("div", {
|
|
122
|
+
className: "side-nav__menu-item"
|
|
123
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
124
|
+
type: "button",
|
|
125
|
+
className: "side-nav__menu-title-wrapper",
|
|
126
|
+
onClick: onPastOrdersClick
|
|
127
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
128
|
+
className: "side-nav__menu-title"
|
|
129
|
+
}, "Past Orders"))), /*#__PURE__*/React.createElement("div", {
|
|
130
|
+
className: "side-nav__menu-divider"
|
|
131
|
+
}, " "), /*#__PURE__*/React.createElement("div", {
|
|
132
|
+
className: "side-nav__menu-item"
|
|
133
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
134
|
+
type: "button",
|
|
135
|
+
className: "side-nav__menu-title-wrapper"
|
|
136
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
137
|
+
className: "side-nav__menu-title"
|
|
138
|
+
}, /*#__PURE__*/React.createElement("img", {
|
|
139
|
+
src: saleIcon,
|
|
140
|
+
alt: "close-icon",
|
|
141
|
+
className: "side-nav__menu-icon"
|
|
142
|
+
}), "My Sales"))), /*#__PURE__*/React.createElement("div", {
|
|
143
|
+
className: "side-nav__menu-item"
|
|
144
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
145
|
+
type: "button",
|
|
146
|
+
className: "side-nav__menu-title-wrapper",
|
|
147
|
+
onClick: onPastSalesClick
|
|
148
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
149
|
+
className: "side-nav__menu-title"
|
|
150
|
+
}, "Sales & Consignments"))), /*#__PURE__*/React.createElement("div", {
|
|
151
|
+
className: "side-nav__menu-item"
|
|
152
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
153
|
+
type: "button",
|
|
154
|
+
className: "side-nav__menu-title-wrapper",
|
|
155
|
+
onClick: onPaidOutClick
|
|
156
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
157
|
+
className: "side-nav__menu-title"
|
|
158
|
+
}, "Paid Out"))), /*#__PURE__*/React.createElement("div", {
|
|
159
|
+
className: "side-nav__menu-item"
|
|
160
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
161
|
+
type: "button",
|
|
162
|
+
className: "side-nav__block-button",
|
|
163
|
+
onClick: onLuxityShopClick
|
|
164
|
+
}, "LUXITY SHOP")), /*#__PURE__*/React.createElement("div", {
|
|
165
|
+
className: "side-nav__menu-item"
|
|
166
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
167
|
+
type: "button",
|
|
168
|
+
className: "side-nav__sub-link",
|
|
169
|
+
onClick: onDashboardClick
|
|
170
|
+
}, "Dashboard")), /*#__PURE__*/React.createElement("div", {
|
|
171
|
+
className: "side-nav__menu-item"
|
|
172
|
+
}, /*#__PURE__*/React.createElement("a", {
|
|
173
|
+
href: bugReportLink,
|
|
174
|
+
className: "side-nav__sub-link"
|
|
175
|
+
}, "Help")), /*#__PURE__*/React.createElement("div", {
|
|
176
|
+
className: "side-nav__menu-item"
|
|
177
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
178
|
+
type: "button",
|
|
179
|
+
className: "side-nav__sub-link",
|
|
180
|
+
onClick: onLogoutClick
|
|
181
|
+
}, "Logout")))));
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
return LuxityAppSideNav;
|
|
185
|
+
|
|
186
|
+
})));
|
package/LuxityDesktopHeader.js
CHANGED
|
@@ -107,6 +107,133 @@
|
|
|
107
107
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
+
var cssUnit = {
|
|
111
|
+
cm: true,
|
|
112
|
+
mm: true,
|
|
113
|
+
in: true,
|
|
114
|
+
px: true,
|
|
115
|
+
pt: true,
|
|
116
|
+
pc: true,
|
|
117
|
+
em: true,
|
|
118
|
+
ex: true,
|
|
119
|
+
ch: true,
|
|
120
|
+
rem: true,
|
|
121
|
+
vw: true,
|
|
122
|
+
vh: true,
|
|
123
|
+
vmin: true,
|
|
124
|
+
vmax: true,
|
|
125
|
+
"%": true,
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* If size is a number, append px to the value as default unit.
|
|
129
|
+
* If size is a string, validate against list of valid units.
|
|
130
|
+
* If unit is valid, return size as is.
|
|
131
|
+
* If unit is invalid, console warn issue, replace with px as the unit.
|
|
132
|
+
*
|
|
133
|
+
* @param {(number | string)} size
|
|
134
|
+
* @return {LengthObject} LengthObject
|
|
135
|
+
*/
|
|
136
|
+
function parseLengthAndUnit(size) {
|
|
137
|
+
if (typeof size === "number") {
|
|
138
|
+
return {
|
|
139
|
+
value: size,
|
|
140
|
+
unit: "px",
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
var value;
|
|
144
|
+
var valueString = (size.match(/^[0-9.]*/) || "").toString();
|
|
145
|
+
if (valueString.includes(".")) {
|
|
146
|
+
value = parseFloat(valueString);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
value = parseInt(valueString, 10);
|
|
150
|
+
}
|
|
151
|
+
var unit = (size.match(/[^0-9]*$/) || "").toString();
|
|
152
|
+
if (cssUnit[unit]) {
|
|
153
|
+
return {
|
|
154
|
+
value: value,
|
|
155
|
+
unit: unit,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
console.warn("React Spinners: ".concat(size, " is not a valid css value. Defaulting to ").concat(value, "px."));
|
|
159
|
+
return {
|
|
160
|
+
value: value,
|
|
161
|
+
unit: "px",
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Take value as an input and return valid css value
|
|
166
|
+
*
|
|
167
|
+
* @param {(number | string)} value
|
|
168
|
+
* @return {string} valid css value
|
|
169
|
+
*/
|
|
170
|
+
function cssValue(value) {
|
|
171
|
+
var lengthWithunit = parseLengthAndUnit(value);
|
|
172
|
+
return "".concat(lengthWithunit.value).concat(lengthWithunit.unit);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
var createAnimation = function (loaderName, frames, suffix) {
|
|
176
|
+
var animationName = "react-spinners-".concat(loaderName, "-").concat(suffix);
|
|
177
|
+
if (typeof window == "undefined" || !window.document) {
|
|
178
|
+
return animationName;
|
|
179
|
+
}
|
|
180
|
+
var styleEl = document.createElement("style");
|
|
181
|
+
document.head.appendChild(styleEl);
|
|
182
|
+
var styleSheet = styleEl.sheet;
|
|
183
|
+
var keyFrames = "\n @keyframes ".concat(animationName, " {\n ").concat(frames, "\n }\n ");
|
|
184
|
+
if (styleSheet) {
|
|
185
|
+
styleSheet.insertRule(keyFrames, 0);
|
|
186
|
+
}
|
|
187
|
+
return animationName;
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
var __assign = (undefined && undefined.__assign) || function () {
|
|
191
|
+
__assign = Object.assign || function(t) {
|
|
192
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
193
|
+
s = arguments[i];
|
|
194
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
195
|
+
t[p] = s[p];
|
|
196
|
+
}
|
|
197
|
+
return t;
|
|
198
|
+
};
|
|
199
|
+
return __assign.apply(this, arguments);
|
|
200
|
+
};
|
|
201
|
+
var __rest = (undefined && undefined.__rest) || function (s, e) {
|
|
202
|
+
var t = {};
|
|
203
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
204
|
+
t[p] = s[p];
|
|
205
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
206
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
207
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
208
|
+
t[p[i]] = s[p[i]];
|
|
209
|
+
}
|
|
210
|
+
return t;
|
|
211
|
+
};
|
|
212
|
+
var beat = createAnimation("BeatLoader", "50% {transform: scale(0.75);opacity: 0.2} 100% {transform: scale(1);opacity: 1}", "beat");
|
|
213
|
+
function BeatLoader(_a) {
|
|
214
|
+
var _b = _a.loading, loading = _b === void 0 ? true : _b, _c = _a.color, color = _c === void 0 ? "#000000" : _c, _d = _a.speedMultiplier, speedMultiplier = _d === void 0 ? 1 : _d, _e = _a.cssOverride, cssOverride = _e === void 0 ? {} : _e, _f = _a.size, size = _f === void 0 ? 15 : _f, _g = _a.margin, margin = _g === void 0 ? 2 : _g, additionalprops = __rest(_a, ["loading", "color", "speedMultiplier", "cssOverride", "size", "margin"]);
|
|
215
|
+
var wrapper = __assign({ display: "inherit" }, cssOverride);
|
|
216
|
+
var style = function (i) {
|
|
217
|
+
return {
|
|
218
|
+
display: "inline-block",
|
|
219
|
+
backgroundColor: color,
|
|
220
|
+
width: cssValue(size),
|
|
221
|
+
height: cssValue(size),
|
|
222
|
+
margin: cssValue(margin),
|
|
223
|
+
borderRadius: "100%",
|
|
224
|
+
animation: "".concat(beat, " ").concat(0.7 / speedMultiplier, "s ").concat(i % 2 ? "0s" : "".concat(0.35 / speedMultiplier, "s"), " infinite linear"),
|
|
225
|
+
animationFillMode: "both",
|
|
226
|
+
};
|
|
227
|
+
};
|
|
228
|
+
if (!loading) {
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
231
|
+
return (React.createElement("span", __assign({ style: wrapper }, additionalprops),
|
|
232
|
+
React.createElement("span", { style: style(1) }),
|
|
233
|
+
React.createElement("span", { style: style(2) }),
|
|
234
|
+
React.createElement("span", { style: style(3) })));
|
|
235
|
+
}
|
|
236
|
+
|
|
110
237
|
var getBrands = function getBrands() {
|
|
111
238
|
return {
|
|
112
239
|
query: "{\n latest_arrivals: luxity_brands(has_products: true, limit: 1000, page: 1, sort_by: \"name|asc\") {data {id name slug}}\n bags: luxity_brands(has_products: true, limit: 1000, page: 1, category_type: BAGS, sort_by: \"name|asc\") {data {id name slug}}\n shoes: luxity_brands(has_products: true, limit: 1000, page: 1, category_type: SHOES, sort_by: \"name|asc\") {data {id name slug}}\n apparel: luxity_brands(has_products: true, limit: 1000, page: 1, category_type: APPAREL, sort_by: \"name|asc\") {data {id name slug}}\n accessories: luxity_brands(has_products: true, limit: 1000, page: 1, category_type: ACCESSORIES, sort_by: \"name|asc\") {data {id name slug}}\n watches: luxity_brands(has_products: true, limit: 1000, page: 1, category_type: WATCHES, sort_by: \"name|asc\") {data {id name slug}}\n accessories_categories: luxity_accessories_categories_list { id name slug }\n apparel_styles: luxity_apparel_styles_list { name slug }\n } "
|
|
@@ -259,22 +386,21 @@
|
|
|
259
386
|
|
|
260
387
|
var SearchResults = function SearchResults(_ref) {
|
|
261
388
|
var searchValue = _ref.searchValue,
|
|
262
|
-
searchLoading = _ref.searchLoading,
|
|
263
389
|
searchResults = _ref.searchResults,
|
|
264
390
|
onViewAll = _ref.onViewAll,
|
|
265
391
|
searchResultsRef = _ref.searchResultsRef,
|
|
266
392
|
onSearchSubmit = _ref.onSearchSubmit,
|
|
267
393
|
setSearchValue = _ref.setSearchValue;
|
|
268
394
|
|
|
269
|
-
if (searchValue.trim()
|
|
395
|
+
if (searchValue.trim().length >= 3) {
|
|
396
|
+
if (searchResults.brands.length === 0 && searchResults.products.length === 0) {
|
|
397
|
+
return null;
|
|
398
|
+
}
|
|
399
|
+
|
|
270
400
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
271
401
|
className: "z-50 absolute md:top-14 font-body bg-white w-full lg:w-1/2 flex flex-col md:flex-row md:divide-x divide-black lg:mt-1 shadow-md",
|
|
272
402
|
ref: searchResultsRef
|
|
273
|
-
},
|
|
274
|
-
className: "w-full py-20 flex items-center justify-center"
|
|
275
|
-
}, "Searching ...") : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, searchResults.brands.length === 0 && searchResults.products.length === 0 ? /*#__PURE__*/React__default.createElement("div", {
|
|
276
|
-
className: "w-full py-20 flex items-center justify-center"
|
|
277
|
-
}, "No products found") : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
|
|
403
|
+
}, /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
|
|
278
404
|
className: "w-full lg:w-1/3"
|
|
279
405
|
}, /*#__PURE__*/React__default.createElement("p", {
|
|
280
406
|
className: "font-bold p-2 px-4"
|
|
@@ -305,7 +431,7 @@
|
|
|
305
431
|
setSearchValue('');
|
|
306
432
|
},
|
|
307
433
|
className: "bottom-0 mt-5 py-3 w-full font-body text-center text-white uppercase bg-black hover:bg-gray-950 border border-black transition-all ease-in-out duration-300 cursor-pointer"
|
|
308
|
-
}, "View all"))))
|
|
434
|
+
}, "View all"))));
|
|
309
435
|
}
|
|
310
436
|
|
|
311
437
|
return null;
|
|
@@ -372,7 +498,7 @@
|
|
|
372
498
|
hasError = _useState8[0],
|
|
373
499
|
setHasError = _useState8[1];
|
|
374
500
|
|
|
375
|
-
var _useState9 = React.useState(
|
|
501
|
+
var _useState9 = React.useState(false),
|
|
376
502
|
_useState10 = _slicedToArray(_useState9, 2),
|
|
377
503
|
searchLoading = _useState10[0],
|
|
378
504
|
setSearchLoading = _useState10[1];
|
|
@@ -386,6 +512,50 @@
|
|
|
386
512
|
setSearchResults = _useState12[1];
|
|
387
513
|
|
|
388
514
|
var searchResultsRef = React.useRef(null);
|
|
515
|
+
|
|
516
|
+
var debounce = function debounce(func, wait) {
|
|
517
|
+
var timeout;
|
|
518
|
+
return function executedFunction() {
|
|
519
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
520
|
+
args[_key] = arguments[_key];
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
var later = function later() {
|
|
524
|
+
clearTimeout(timeout);
|
|
525
|
+
func.apply(void 0, args);
|
|
526
|
+
};
|
|
527
|
+
|
|
528
|
+
clearTimeout(timeout);
|
|
529
|
+
timeout = setTimeout(later, wait);
|
|
530
|
+
};
|
|
531
|
+
};
|
|
532
|
+
|
|
533
|
+
var debouncedSearch = React.useCallback(debounce(function (nextValue) {
|
|
534
|
+
setSearchLoading(true);
|
|
535
|
+
axios.post(endpoint, searchProducts(nextValue, 6)).then(function (response) {
|
|
536
|
+
setSearchResults(response.data.data.luxity_products_serach_results);
|
|
537
|
+
var ids = response.data.data.luxity_products_serach_results.luxity_product_ids;
|
|
538
|
+
onProductIdsReceived(ids);
|
|
539
|
+
setSearchLoading(false);
|
|
540
|
+
}).catch(function () {
|
|
541
|
+
setSearchLoading(false);
|
|
542
|
+
});
|
|
543
|
+
}, 500), [endpoint]);
|
|
544
|
+
|
|
545
|
+
var handleChange = function handleChange(event) {
|
|
546
|
+
var value = event.target.value;
|
|
547
|
+
setSearchValue(value);
|
|
548
|
+
|
|
549
|
+
if (value.trim().length >= 3) {
|
|
550
|
+
debouncedSearch(value);
|
|
551
|
+
} else {
|
|
552
|
+
setSearchResults({
|
|
553
|
+
brands: [],
|
|
554
|
+
products: []
|
|
555
|
+
});
|
|
556
|
+
}
|
|
557
|
+
};
|
|
558
|
+
|
|
389
559
|
React.useEffect(function () {
|
|
390
560
|
var handleClickOutside = function handleClickOutside(event) {
|
|
391
561
|
if (searchResultsRef.current && !searchResultsRef.current.contains(event.target)) {
|
|
@@ -437,30 +607,6 @@
|
|
|
437
607
|
return setHasError(true);
|
|
438
608
|
});
|
|
439
609
|
}, [endpoint]);
|
|
440
|
-
|
|
441
|
-
var handleChange = function handleChange(event) {
|
|
442
|
-
var value = event.target.value;
|
|
443
|
-
setSearchValue(value);
|
|
444
|
-
onSearch(value);
|
|
445
|
-
|
|
446
|
-
if (value.trim() !== '') {
|
|
447
|
-
setSearchLoading(true);
|
|
448
|
-
axios.post(endpoint, searchProducts(value, 6)).then(function (response) {
|
|
449
|
-
setSearchResults(response.data.data.luxity_products_serach_results);
|
|
450
|
-
var ids = response.data.data.luxity_products_serach_results.luxity_product_ids;
|
|
451
|
-
onProductIdsReceived(ids);
|
|
452
|
-
setSearchLoading(false);
|
|
453
|
-
}).catch(function () {
|
|
454
|
-
setSearchLoading(false);
|
|
455
|
-
});
|
|
456
|
-
} else {
|
|
457
|
-
setSearchResults({
|
|
458
|
-
brands: [],
|
|
459
|
-
products: []
|
|
460
|
-
});
|
|
461
|
-
}
|
|
462
|
-
};
|
|
463
|
-
|
|
464
610
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
465
611
|
className: "navbar"
|
|
466
612
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -492,9 +638,14 @@
|
|
|
492
638
|
onChange: handleChange,
|
|
493
639
|
onKeyDown: handleKeyDown,
|
|
494
640
|
onClick: onSearch
|
|
641
|
+
}), searchLoading && /*#__PURE__*/React__default.createElement(BeatLoader, {
|
|
642
|
+
color: "#000000",
|
|
643
|
+
loading: searchLoading,
|
|
644
|
+
size: 5,
|
|
645
|
+
"aria-label": "Loading Spinner",
|
|
646
|
+
"data-testid": "loader"
|
|
495
647
|
})), /*#__PURE__*/React__default.createElement(SearchResults, {
|
|
496
648
|
searchValue: searchValue,
|
|
497
|
-
searchLoading: searchLoading,
|
|
498
649
|
searchResults: searchResults,
|
|
499
650
|
onViewAll: function onViewAll() {
|
|
500
651
|
onSearchSubmit(searchValue);
|