@bonlineza/luxity-lib 2.36.1-beta.4 → 2.36.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Accordion.js +116 -76
- package/AddInterest.js +777 -440
- package/AddProductInterest.js +644 -485
- package/BrandSelector.js +336 -176
- package/Checkbox.js +101 -68
- package/CheckboxButton.js +124 -79
- package/CommunicationPreferenceOptionsRenderer.js +169 -159
- package/CommunicationPreferenceSection.js +178 -166
- package/CommunicationPreferences.js +427 -549
- package/ConditionSelector.js +336 -174
- package/CountryCodeSelect.js +10 -7
- package/CurrencyInputFormatter.js +56 -29
- package/CurrencySelect.js +49 -23
- package/DropdownSelector.js +92 -68
- package/GALink.js +16 -6
- package/GenderSelector.js +142 -88
- package/GraphQLDropdownSelector.js +1511 -933
- package/GraphQLMultiSelector.js +274 -141
- package/IconHeader.js +25 -11
- package/IconWrapper.js +7 -3
- package/InterestCatSelector.js +74 -34
- package/InterestItem.js +187 -103
- package/Interests.js +1466 -917
- package/InterestsSubheading.js +10 -5
- package/InvertedTextButton.js +63 -27
- package/LuxityAppSideNav.js +22 -19
- package/LuxityDesktopHeader.js +663 -549
- package/LuxityFooter.js +325 -434
- package/LuxityGraphQLDropdownSelector.js +1543 -949
- package/LuxityGraphQLMultiselector.js +321 -167
- package/LuxityMobileHeader.js +807 -681
- package/LuxityPageReady.js +136 -74
- package/LuxityProductInterestItem.js +175 -97
- package/LuxitySideNav.js +310 -382
- package/MaterialSelector.js +1550 -955
- package/ModelSelector.js +1550 -955
- package/NotificationDropDown.js +221 -122
- package/Notify.js +1 -0
- package/OutlinePrimaryButton.js +58 -26
- package/PriceRangeSelector.js +281 -168
- package/PrimaryButton.js +58 -26
- package/RadioButtons.js +140 -114
- package/RangeSlider.js +242 -152
- package/RareStepFooter.js +41 -27
- package/RareStepHeader.js +190 -139
- package/ReactSelectWrapper.js +1 -0
- package/SecondaryButton.js +58 -26
- package/ShoeSizeRangeSelector.js +260 -162
- package/ShoeSizeSelector.js +263 -158
- package/SimpleErrorBoundary.js +106 -59
- package/StyleSelector.js +336 -176
- package/TextButton.js +58 -26
- package/Tooltip.js +39 -17
- package/Tracking.js +1 -0
- package/WrapperButton.js +43 -20
- package/build/bundle.css +1 -1
- package/build/bundle.js +2973 -2457
- package/package.json +2 -3
- package/svg/Accessories.js +13 -6
- package/svg/Account.js +13 -6
- package/svg/Add.js +13 -6
- package/svg/ArrowRight.js +13 -6
- package/svg/Bags.js +13 -6
- package/svg/BurgerMenu.js +13 -6
- package/svg/Calendar.js +13 -6
- package/svg/CalendarCircled.js +13 -6
- package/svg/CheckCircled.js +13 -6
- package/svg/Close.js +13 -6
- package/svg/Clothing.js +13 -6
- package/svg/Dot.js +13 -6
- package/svg/Edit.js +13 -6
- package/svg/Eye.js +13 -6
- package/svg/FileAttach.js +13 -6
- package/svg/FileAttachCircled.js +13 -6
- package/svg/LightBulb.js +13 -6
- package/svg/Logo.js +13 -6
- package/svg/LuxityMenu.js +13 -6
- package/svg/Minus.js +13 -6
- package/svg/MobileAvatar.js +13 -6
- package/svg/MyOrder.js +13 -6
- package/svg/MyPayment.js +13 -6
- package/svg/MyProfile.js +14 -8
- package/svg/MySale.js +13 -6
- package/svg/Notification.js +13 -6
- package/svg/PointerDown.js +13 -6
- package/svg/Search.js +13 -6
- package/svg/Shoes.js +13 -6
- package/svg/SvgWrapper.js +7 -3
- package/svg/Trash.js +13 -6
- package/svg/Watches.js +13 -6
package/LuxityMobileHeader.js
CHANGED
|
@@ -8,267 +8,164 @@
|
|
|
8
8
|
axios = axios && Object.prototype.hasOwnProperty.call(axios, 'default') ? axios['default'] : axios;
|
|
9
9
|
var styled__default = 'default' in styled ? styled['default'] : styled;
|
|
10
10
|
|
|
11
|
-
function
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
function _defineProperty(e, r, t) {
|
|
20
|
-
return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
21
|
-
value: t,
|
|
22
|
-
enumerable: !0,
|
|
23
|
-
configurable: !0,
|
|
24
|
-
writable: !0
|
|
25
|
-
}) : e[r] = t, e;
|
|
26
|
-
}
|
|
27
|
-
function _extends() {
|
|
28
|
-
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
29
|
-
for (var e = 1; e < arguments.length; e++) {
|
|
30
|
-
var t = arguments[e];
|
|
31
|
-
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
|
32
|
-
}
|
|
33
|
-
return n;
|
|
34
|
-
}, _extends.apply(null, arguments);
|
|
35
|
-
}
|
|
36
|
-
function _iterableToArrayLimit(r, l) {
|
|
37
|
-
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
38
|
-
if (null != t) {
|
|
39
|
-
var e,
|
|
40
|
-
n,
|
|
41
|
-
i,
|
|
42
|
-
u,
|
|
43
|
-
a = [],
|
|
44
|
-
f = !0,
|
|
45
|
-
o = !1;
|
|
46
|
-
try {
|
|
47
|
-
if (i = (t = t.call(r)).next, 0 === l) {
|
|
48
|
-
if (Object(t) !== t) return;
|
|
49
|
-
f = !1;
|
|
50
|
-
} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
|
|
51
|
-
} catch (r) {
|
|
52
|
-
o = !0, n = r;
|
|
53
|
-
} finally {
|
|
54
|
-
try {
|
|
55
|
-
if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
|
|
56
|
-
} finally {
|
|
57
|
-
if (o) throw n;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return a;
|
|
11
|
+
function ownKeys(object, enumerableOnly) {
|
|
12
|
+
var keys = Object.keys(object);
|
|
13
|
+
|
|
14
|
+
if (Object.getOwnPropertySymbols) {
|
|
15
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
16
|
+
enumerableOnly && (symbols = symbols.filter(function (sym) {
|
|
17
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
18
|
+
})), keys.push.apply(keys, symbols);
|
|
61
19
|
}
|
|
20
|
+
|
|
21
|
+
return keys;
|
|
62
22
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
})), t.push.apply(t, o);
|
|
23
|
+
|
|
24
|
+
function _objectSpread2(target) {
|
|
25
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
26
|
+
var source = null != arguments[i] ? arguments[i] : {};
|
|
27
|
+
i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
|
|
28
|
+
_defineProperty(target, key, source[key]);
|
|
29
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
|
|
30
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
31
|
+
});
|
|
73
32
|
}
|
|
74
|
-
|
|
33
|
+
|
|
34
|
+
return target;
|
|
75
35
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
36
|
+
|
|
37
|
+
function _defineProperty(obj, key, value) {
|
|
38
|
+
if (key in obj) {
|
|
39
|
+
Object.defineProperty(obj, key, {
|
|
40
|
+
value: value,
|
|
41
|
+
enumerable: true,
|
|
42
|
+
configurable: true,
|
|
43
|
+
writable: true
|
|
83
44
|
});
|
|
45
|
+
} else {
|
|
46
|
+
obj[key] = value;
|
|
84
47
|
}
|
|
85
|
-
|
|
48
|
+
|
|
49
|
+
return obj;
|
|
86
50
|
}
|
|
87
|
-
|
|
88
|
-
|
|
51
|
+
|
|
52
|
+
function _extends() {
|
|
53
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
54
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
55
|
+
var source = arguments[i];
|
|
56
|
+
|
|
57
|
+
for (var key in source) {
|
|
58
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
59
|
+
target[key] = source[key];
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return target;
|
|
65
|
+
};
|
|
66
|
+
return _extends.apply(this, arguments);
|
|
89
67
|
}
|
|
90
|
-
|
|
91
|
-
|
|
68
|
+
|
|
69
|
+
function _taggedTemplateLiteral(strings, raw) {
|
|
70
|
+
if (!raw) {
|
|
71
|
+
raw = strings.slice(0);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return Object.freeze(Object.defineProperties(strings, {
|
|
92
75
|
raw: {
|
|
93
|
-
value: Object.freeze(
|
|
76
|
+
value: Object.freeze(raw)
|
|
94
77
|
}
|
|
95
78
|
}));
|
|
96
79
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if (void 0 !== e) {
|
|
101
|
-
var i = e.call(t, r || "default");
|
|
102
|
-
if ("object" != typeof i) return i;
|
|
103
|
-
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
104
|
-
}
|
|
105
|
-
return ("string" === r ? String : Number)(t);
|
|
106
|
-
}
|
|
107
|
-
function _toPropertyKey(t) {
|
|
108
|
-
var i = _toPrimitive(t, "string");
|
|
109
|
-
return "symbol" == typeof i ? i : i + "";
|
|
80
|
+
|
|
81
|
+
function _slicedToArray(arr, i) {
|
|
82
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
110
83
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
var t = {}.toString.call(r).slice(8, -1);
|
|
115
|
-
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
|
|
116
|
-
}
|
|
84
|
+
|
|
85
|
+
function _arrayWithHoles(arr) {
|
|
86
|
+
if (Array.isArray(arr)) return arr;
|
|
117
87
|
}
|
|
118
88
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
"%": true,
|
|
135
|
-
};
|
|
136
|
-
/**
|
|
137
|
-
* If size is a number, append px to the value as default unit.
|
|
138
|
-
* If size is a string, validate against list of valid units.
|
|
139
|
-
* If unit is valid, return size as is.
|
|
140
|
-
* If unit is invalid, console warn issue, replace with px as the unit.
|
|
141
|
-
*
|
|
142
|
-
* @param {(number | string)} size
|
|
143
|
-
* @return {LengthObject} LengthObject
|
|
144
|
-
*/
|
|
145
|
-
function parseLengthAndUnit(size) {
|
|
146
|
-
if (typeof size === "number") {
|
|
147
|
-
return {
|
|
148
|
-
value: size,
|
|
149
|
-
unit: "px",
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
var value;
|
|
153
|
-
var valueString = (size.match(/^[0-9.]*/) || "").toString();
|
|
154
|
-
if (valueString.includes(".")) {
|
|
155
|
-
value = parseFloat(valueString);
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
value = parseInt(valueString, 10);
|
|
89
|
+
function _iterableToArrayLimit(arr, i) {
|
|
90
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
91
|
+
|
|
92
|
+
if (_i == null) return;
|
|
93
|
+
var _arr = [];
|
|
94
|
+
var _n = true;
|
|
95
|
+
var _d = false;
|
|
96
|
+
|
|
97
|
+
var _s, _e;
|
|
98
|
+
|
|
99
|
+
try {
|
|
100
|
+
for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
|
|
101
|
+
_arr.push(_s.value);
|
|
102
|
+
|
|
103
|
+
if (i && _arr.length === i) break;
|
|
159
104
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
105
|
+
} catch (err) {
|
|
106
|
+
_d = true;
|
|
107
|
+
_e = err;
|
|
108
|
+
} finally {
|
|
109
|
+
try {
|
|
110
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
111
|
+
} finally {
|
|
112
|
+
if (_d) throw _e;
|
|
166
113
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
unit: "px",
|
|
171
|
-
};
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return _arr;
|
|
172
117
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
return "".concat(lengthWithunit.value).concat(lengthWithunit.unit);
|
|
118
|
+
|
|
119
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
120
|
+
if (!o) return;
|
|
121
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
122
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
123
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
124
|
+
if (n === "Map" || n === "Set") return Array.from(o);
|
|
125
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
182
126
|
}
|
|
183
127
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
if (typeof window == "undefined" || !window.document) {
|
|
187
|
-
return animationName;
|
|
188
|
-
}
|
|
189
|
-
var styleEl = document.createElement("style");
|
|
190
|
-
document.head.appendChild(styleEl);
|
|
191
|
-
var styleSheet = styleEl.sheet;
|
|
192
|
-
var keyFrames = "\n @keyframes ".concat(animationName, " {\n ").concat(frames, "\n }\n ");
|
|
193
|
-
if (styleSheet) {
|
|
194
|
-
styleSheet.insertRule(keyFrames, 0);
|
|
195
|
-
}
|
|
196
|
-
return animationName;
|
|
197
|
-
};
|
|
128
|
+
function _arrayLikeToArray(arr, len) {
|
|
129
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
198
130
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
return t;
|
|
207
|
-
};
|
|
208
|
-
return __assign.apply(this, arguments);
|
|
209
|
-
};
|
|
210
|
-
var __rest = (undefined && undefined.__rest) || function (s, e) {
|
|
211
|
-
var t = {};
|
|
212
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
213
|
-
t[p] = s[p];
|
|
214
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
215
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
216
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
217
|
-
t[p[i]] = s[p[i]];
|
|
218
|
-
}
|
|
219
|
-
return t;
|
|
220
|
-
};
|
|
221
|
-
var beat = createAnimation("BeatLoader", "50% {transform: scale(0.75);opacity: 0.2} 100% {transform: scale(1);opacity: 1}", "beat");
|
|
222
|
-
function BeatLoader(_a) {
|
|
223
|
-
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"]);
|
|
224
|
-
var wrapper = __assign({ display: "inherit" }, cssOverride);
|
|
225
|
-
var style = function (i) {
|
|
226
|
-
return {
|
|
227
|
-
display: "inline-block",
|
|
228
|
-
backgroundColor: color,
|
|
229
|
-
width: cssValue(size),
|
|
230
|
-
height: cssValue(size),
|
|
231
|
-
margin: cssValue(margin),
|
|
232
|
-
borderRadius: "100%",
|
|
233
|
-
animation: "".concat(beat, " ").concat(0.7 / speedMultiplier, "s ").concat(i % 2 ? "0s" : "".concat(0.35 / speedMultiplier, "s"), " infinite linear"),
|
|
234
|
-
animationFillMode: "both",
|
|
235
|
-
};
|
|
236
|
-
};
|
|
237
|
-
if (!loading) {
|
|
238
|
-
return null;
|
|
239
|
-
}
|
|
240
|
-
return (React.createElement("span", __assign({ style: wrapper }, additionalprops),
|
|
241
|
-
React.createElement("span", { style: style(1) }),
|
|
242
|
-
React.createElement("span", { style: style(2) }),
|
|
243
|
-
React.createElement("span", { style: style(3) })));
|
|
131
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
132
|
+
|
|
133
|
+
return arr2;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function _nonIterableRest() {
|
|
137
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
244
138
|
}
|
|
245
139
|
|
|
246
140
|
var LuxityAppSideNav = function LuxityAppSideNav(_ref) {
|
|
247
141
|
var closeIcon = _ref.closeIcon,
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
142
|
+
accountIcon = _ref.accountIcon,
|
|
143
|
+
orderIcon = _ref.orderIcon,
|
|
144
|
+
saleIcon = _ref.saleIcon,
|
|
145
|
+
onDashboardClick = _ref.onDashboardClick,
|
|
146
|
+
onLogoutClick = _ref.onLogoutClick,
|
|
147
|
+
bugReportLink = _ref.bugReportLink,
|
|
148
|
+
onLuxityShopClick = _ref.onLuxityShopClick,
|
|
149
|
+
onInterestClick = _ref.onInterestClick,
|
|
150
|
+
onAddressClick = _ref.onAddressClick,
|
|
151
|
+
onCouponsClick = _ref.onCouponsClick,
|
|
152
|
+
onEditProfileClick = _ref.onEditProfileClick,
|
|
153
|
+
onCurrentOrdersClick = _ref.onCurrentOrdersClick,
|
|
154
|
+
onPastOrdersClick = _ref.onPastOrdersClick,
|
|
155
|
+
onSubmissionsClick = _ref.onSubmissionsClick,
|
|
156
|
+
onPastSalesClick = _ref.onPastSalesClick,
|
|
157
|
+
onPaidOutClick = _ref.onPaidOutClick,
|
|
158
|
+
showSideNav = _ref.showSideNav,
|
|
159
|
+
onMenuClick = _ref.onMenuClick;
|
|
160
|
+
|
|
266
161
|
var onCloseSideNav = function onCloseSideNav(e) {
|
|
267
162
|
onMenuClick();
|
|
163
|
+
|
|
268
164
|
if (e.key === 'Enter') {
|
|
269
165
|
e.preventDefault();
|
|
270
166
|
}
|
|
271
167
|
};
|
|
168
|
+
|
|
272
169
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
273
170
|
className: "side-nav"
|
|
274
171
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -300,7 +197,7 @@
|
|
|
300
197
|
src: accountIcon,
|
|
301
198
|
alt: "close-icon",
|
|
302
199
|
className: "side-nav__menu-icon"
|
|
303
|
-
}), "Account"))), /*#__PURE__*/React__default.createElement("div", {
|
|
200
|
+
}), "Account"))), onInterestClick && /*#__PURE__*/React__default.createElement("div", {
|
|
304
201
|
className: "side-nav__menu-item"
|
|
305
202
|
}, /*#__PURE__*/React__default.createElement("button", {
|
|
306
203
|
type: "button",
|
|
@@ -426,9 +323,9 @@
|
|
|
426
323
|
|
|
427
324
|
var StoresDropdown = function StoresDropdown(_ref) {
|
|
428
325
|
var backIcon = _ref.backIcon,
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
326
|
+
onBackClick = _ref.onBackClick,
|
|
327
|
+
stores = _ref.stores,
|
|
328
|
+
onContactUsClick = _ref.onContactUsClick;
|
|
432
329
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
433
330
|
className: "side-nav__sub-menu"
|
|
434
331
|
}, /*#__PURE__*/React__default.createElement("button", {
|
|
@@ -468,19 +365,20 @@
|
|
|
468
365
|
|
|
469
366
|
var BrandsDropDown = function BrandsDropDown(_ref) {
|
|
470
367
|
var subMenuOpen = _ref.subMenuOpen,
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
368
|
+
onBackClick = _ref.onBackClick,
|
|
369
|
+
onCloseSideNav = _ref.onCloseSideNav,
|
|
370
|
+
backIcon = _ref.backIcon,
|
|
371
|
+
subMenuCategoryTitle = _ref.subMenuCategoryTitle,
|
|
372
|
+
productUrl = _ref.productUrl,
|
|
373
|
+
categoryElements = _ref.categoryElements,
|
|
374
|
+
subMenuBrandsTitle = _ref.subMenuBrandsTitle,
|
|
375
|
+
_ref$brandsList = _ref.brandsList,
|
|
376
|
+
brandsList = _ref$brandsList === void 0 ? [] : _ref$brandsList,
|
|
377
|
+
categorySlug = _ref.categorySlug,
|
|
378
|
+
isLoading = _ref.isLoading,
|
|
379
|
+
hasError = _ref.hasError,
|
|
380
|
+
LinkComponent = _ref.LinkComponent;
|
|
381
|
+
|
|
484
382
|
var handleLinkClick = function handleLinkClick(event) {
|
|
485
383
|
event.preventDefault();
|
|
486
384
|
var href = event.currentTarget.getAttribute('href');
|
|
@@ -488,6 +386,7 @@
|
|
|
488
386
|
onCloseSideNav();
|
|
489
387
|
window.location.href = href;
|
|
490
388
|
};
|
|
389
|
+
|
|
491
390
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
492
391
|
className: "side-nav__content ".concat(subMenuOpen ? '' : 'side-nav__content--hidden')
|
|
493
392
|
}, hasError ? /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -534,6 +433,7 @@
|
|
|
534
433
|
className: "side-nav__element"
|
|
535
434
|
}, "All Brands"), !!brandsList.length && brandsList.map(function (brand) {
|
|
536
435
|
return /*#__PURE__*/React__default.createElement(LinkComponent, {
|
|
436
|
+
key: brand.slug,
|
|
537
437
|
href: "".concat(productUrl, "/").concat(categorySlug === 'new' ? 'brands' : categorySlug, "/").concat(brand.slug),
|
|
538
438
|
onClick: handleLinkClick,
|
|
539
439
|
className: "side-nav__element"
|
|
@@ -543,37 +443,15 @@
|
|
|
543
443
|
|
|
544
444
|
var removeCategoryByName = function removeCategoryByName(categories, name) {
|
|
545
445
|
var _categories$filter;
|
|
446
|
+
|
|
546
447
|
return (_categories$filter = categories === null || categories === void 0 ? void 0 : categories.filter(function (category) {
|
|
547
|
-
return category.name !== name;
|
|
448
|
+
return category.name.toLowerCase() !== name.toLowerCase();
|
|
548
449
|
})) !== null && _categories$filter !== void 0 ? _categories$filter : [];
|
|
549
450
|
};
|
|
550
451
|
|
|
551
|
-
var categories = {
|
|
552
|
-
shoes: {
|
|
553
|
-
name: 'Shoes',
|
|
554
|
-
slug: 'shoes'
|
|
555
|
-
},
|
|
556
|
-
bags: {
|
|
557
|
-
name: 'Bags',
|
|
558
|
-
slug: 'bags'
|
|
559
|
-
},
|
|
560
|
-
clothing: {
|
|
561
|
-
name: 'Clothing',
|
|
562
|
-
slug: 'apparel'
|
|
563
|
-
},
|
|
564
|
-
watches: {
|
|
565
|
-
name: 'Watches',
|
|
566
|
-
slug: 'watches'
|
|
567
|
-
},
|
|
568
|
-
accessories: {
|
|
569
|
-
name: 'Accessories',
|
|
570
|
-
slug: 'accessories'
|
|
571
|
-
}
|
|
572
|
-
};
|
|
573
|
-
|
|
574
452
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
575
|
-
|
|
576
453
|
/* position relative is required for the Body element to be positioned correctly */
|
|
454
|
+
|
|
577
455
|
var relativeInlineStyle = styled.css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n"])));
|
|
578
456
|
var topMiddleBodyStyle = styled.css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: absolute;\n z-index: 1;\n bottom: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n"])));
|
|
579
457
|
var getTopMiddleArrowAfterStyle = function getTopMiddleArrowAfterStyle(props) {
|
|
@@ -587,31 +465,40 @@
|
|
|
587
465
|
};
|
|
588
466
|
|
|
589
467
|
var _templateObject$1;
|
|
468
|
+
|
|
590
469
|
var getBodyStyle = function getBodyStyle() {
|
|
591
470
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
592
471
|
var _props$toolTipPositio = props.toolTipPosition,
|
|
593
|
-
|
|
472
|
+
toolTipPosition = _props$toolTipPositio === void 0 ? '' : _props$toolTipPositio;
|
|
473
|
+
|
|
594
474
|
switch (toolTipPosition) {
|
|
595
475
|
case 'top':
|
|
596
476
|
return topMiddleBodyStyle;
|
|
477
|
+
|
|
597
478
|
case 'bottom':
|
|
598
479
|
return getBottomMiddleBodyStyle(props);
|
|
480
|
+
|
|
599
481
|
default:
|
|
600
482
|
return null;
|
|
601
483
|
}
|
|
602
484
|
};
|
|
485
|
+
|
|
603
486
|
var getAfterStyling = function getAfterStyling() {
|
|
604
487
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
605
488
|
var toolTipPosition = props.toolTipPosition;
|
|
489
|
+
|
|
606
490
|
switch (toolTipPosition) {
|
|
607
491
|
case 'top':
|
|
608
492
|
return getTopMiddleArrowAfterStyle(props);
|
|
493
|
+
|
|
609
494
|
case 'bottom':
|
|
610
495
|
return getBottomMiddleArrowAfterStyle(props);
|
|
496
|
+
|
|
611
497
|
default:
|
|
612
498
|
return '';
|
|
613
499
|
}
|
|
614
500
|
};
|
|
501
|
+
|
|
615
502
|
var Body = styled__default.span(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n ", ";\n visibility: hidden;\n opacity: 0;\n width: ", ";\n transition: visibility 0.3s linear, opacity 0.3s linear;\n background-color: ", ";\n color: white;\n text-align: center;\n border-radius: 5px;\n ", "\n &::after {\n content: ' ';\n position: absolute;\n ", "\n }\n"])), relativeInlineStyle, function (props) {
|
|
616
503
|
return props.bodyWidth;
|
|
617
504
|
}, function (props) {
|
|
@@ -691,12 +578,12 @@
|
|
|
691
578
|
|
|
692
579
|
var Tooltip = function Tooltip(_ref) {
|
|
693
580
|
var children = _ref.children,
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
581
|
+
toolTipText = _ref.toolTipText,
|
|
582
|
+
toolTipPosition = _ref.toolTipPosition,
|
|
583
|
+
bodyWidth = _ref.bodyWidth,
|
|
584
|
+
apexWidth = _ref.apexWidth,
|
|
585
|
+
containerClassName = _ref.containerClassName,
|
|
586
|
+
bodyClassName = _ref.bodyClassName;
|
|
700
587
|
return /*#__PURE__*/React__default.createElement(Container, {
|
|
701
588
|
className: containerClassName
|
|
702
589
|
}, children, /*#__PURE__*/React__default.createElement(Body, {
|
|
@@ -706,6 +593,7 @@
|
|
|
706
593
|
className: bodyClassName
|
|
707
594
|
}, toolTipText));
|
|
708
595
|
};
|
|
596
|
+
|
|
709
597
|
Tooltip.defaultProps = {
|
|
710
598
|
children: null,
|
|
711
599
|
toolTipText: '',
|
|
@@ -719,21 +607,25 @@
|
|
|
719
607
|
|
|
720
608
|
var CurrencySelect = function CurrencySelect(_ref) {
|
|
721
609
|
var currency = _ref.currency,
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
610
|
+
currencyOptions = _ref.currencyOptions,
|
|
611
|
+
onCurrencyChange = _ref.onCurrencyChange,
|
|
612
|
+
_ref$isCurrencySelect = _ref.isCurrencySelectionDisabled,
|
|
613
|
+
isCurrencySelectionDisabled = _ref$isCurrencySelect === void 0 ? false : _ref$isCurrencySelect,
|
|
614
|
+
_ref$tooltipContent = _ref.tooltipContent,
|
|
615
|
+
tooltipContent = _ref$tooltipContent === void 0 ? '' : _ref$tooltipContent;
|
|
616
|
+
|
|
728
617
|
if (!currencyOptions || currencyOptions.length === 0) {
|
|
729
618
|
return null;
|
|
730
619
|
}
|
|
620
|
+
|
|
731
621
|
var selectedOption = currencyOptions.find(function (opt) {
|
|
732
622
|
return opt.value === currency;
|
|
733
623
|
});
|
|
624
|
+
|
|
734
625
|
if (!selectedOption) {
|
|
735
626
|
return null;
|
|
736
627
|
}
|
|
628
|
+
|
|
737
629
|
return /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
738
630
|
toolTipText: isCurrencySelectionDisabled ? tooltipContent : '',
|
|
739
631
|
toolTipPosition: "bottom",
|
|
@@ -762,77 +654,79 @@
|
|
|
762
654
|
|
|
763
655
|
var LuxitySideNav = function LuxitySideNav(_ref) {
|
|
764
656
|
var accordionIcon = _ref.accordionIcon,
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
657
|
+
closeIcon = _ref.closeIcon,
|
|
658
|
+
backIcon = _ref.backIcon,
|
|
659
|
+
productUrl = _ref.productUrl,
|
|
660
|
+
onAccountClick = _ref.onAccountClick,
|
|
661
|
+
onCartClick = _ref.onCartClick,
|
|
662
|
+
onContactUsClick = _ref.onContactUsClick,
|
|
663
|
+
onOurStoryClick = _ref.onOurStoryClick,
|
|
664
|
+
onBlogClick = _ref.onBlogClick,
|
|
665
|
+
onSellToUsClick = _ref.onSellToUsClick,
|
|
666
|
+
stores = _ref.stores,
|
|
667
|
+
categoryElements = _ref.categoryElements,
|
|
668
|
+
showSideNav = _ref.showSideNav,
|
|
669
|
+
onMenuClick = _ref.onMenuClick,
|
|
670
|
+
currency = _ref.currency,
|
|
671
|
+
currencyOptions = _ref.currencyOptions,
|
|
672
|
+
onCurrencyChange = _ref.onCurrencyChange,
|
|
673
|
+
isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
|
|
674
|
+
tooltipContent = _ref.tooltipContent,
|
|
675
|
+
LinkComponent = _ref.LinkComponent,
|
|
676
|
+
categoryConfig = _ref.categoryConfig;
|
|
677
|
+
|
|
785
678
|
var _useState = React.useState(false),
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
679
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
680
|
+
subMenuOpen = _useState2[0],
|
|
681
|
+
setSubMenuOpen = _useState2[1];
|
|
682
|
+
|
|
789
683
|
var _useState3 = React.useState(''),
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
684
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
685
|
+
displayedSubMenu = _useState4[0],
|
|
686
|
+
setDisplayedSubMenu = _useState4[1];
|
|
687
|
+
|
|
793
688
|
var _useState5 = React.useState(false),
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
watches: [],
|
|
804
|
-
accessoriesCategories: [],
|
|
805
|
-
apparelStyles: []
|
|
806
|
-
}),
|
|
807
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
808
|
-
dropdownData = _useState8[0],
|
|
809
|
-
setDropdownData = _useState8[1];
|
|
689
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
690
|
+
loading = _useState6[0],
|
|
691
|
+
setLoading = _useState6[1];
|
|
692
|
+
|
|
693
|
+
var _useState7 = React.useState({}),
|
|
694
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
695
|
+
dropdownData = _useState8[0],
|
|
696
|
+
setDropdownData = _useState8[1];
|
|
697
|
+
|
|
810
698
|
var _useState9 = React.useState(false),
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
699
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
700
|
+
hasError = _useState10[0],
|
|
701
|
+
setHasError = _useState10[1];
|
|
702
|
+
|
|
814
703
|
var onSubMenuClick = function onSubMenuClick(subMenu) {
|
|
815
704
|
setSubMenuOpen(function (prev) {
|
|
816
705
|
return !prev;
|
|
817
706
|
});
|
|
818
707
|
setDisplayedSubMenu(subMenu);
|
|
819
708
|
};
|
|
709
|
+
|
|
820
710
|
var onStoresClick = function onStoresClick() {
|
|
821
711
|
setSubMenuOpen(false);
|
|
822
712
|
setDisplayedSubMenu('stores');
|
|
823
713
|
};
|
|
714
|
+
|
|
824
715
|
var onBackClick = function onBackClick() {
|
|
825
716
|
setSubMenuOpen(false);
|
|
826
717
|
setDisplayedSubMenu('');
|
|
827
718
|
};
|
|
719
|
+
|
|
828
720
|
var onCloseSideNav = function onCloseSideNav(e) {
|
|
829
721
|
onMenuClick();
|
|
830
722
|
setSubMenuOpen(false);
|
|
831
723
|
setDisplayedSubMenu('');
|
|
724
|
+
|
|
832
725
|
if (e && e.key === 'Enter') {
|
|
833
726
|
e.preventDefault();
|
|
834
727
|
}
|
|
835
728
|
};
|
|
729
|
+
|
|
836
730
|
function addCategoryToElements(elements, categoryName) {
|
|
837
731
|
return elements.map(function (element) {
|
|
838
732
|
return _objectSpread2(_objectSpread2({}, element), {}, {
|
|
@@ -840,27 +734,96 @@
|
|
|
840
734
|
});
|
|
841
735
|
});
|
|
842
736
|
}
|
|
737
|
+
|
|
843
738
|
React.useMemo(function () {
|
|
844
739
|
setLoading(true);
|
|
845
|
-
axios.get("".concat(menuData)).then(function (_ref2) {
|
|
740
|
+
axios.get("".concat(categoryConfig.menuData)).then(function (_ref2) {
|
|
846
741
|
var data = _ref2.data;
|
|
847
742
|
setLoading(false);
|
|
848
|
-
setDropdownData(
|
|
849
|
-
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
850
|
-
latestArrivals: data.latest_arrivals,
|
|
851
|
-
bags: data.bags,
|
|
852
|
-
shoes: data.shoes,
|
|
853
|
-
apparel: data.apparel,
|
|
854
|
-
accessories: data.accessories,
|
|
855
|
-
watches: data.watches,
|
|
856
|
-
accessoriesCategories: data.accessories_categories,
|
|
857
|
-
apparelStyles: data.apparel_styles
|
|
858
|
-
});
|
|
859
|
-
});
|
|
743
|
+
setDropdownData(data);
|
|
860
744
|
}).catch(function () {
|
|
861
745
|
return setHasError(true);
|
|
862
746
|
});
|
|
863
|
-
}, [menuData]);
|
|
747
|
+
}, [categoryConfig.menuData]);
|
|
748
|
+
|
|
749
|
+
var renderMenuItems = function renderMenuItems() {
|
|
750
|
+
return categoryConfig.categories.map(function (category) {
|
|
751
|
+
var title = category.title,
|
|
752
|
+
categorySlug = category.categorySlug;
|
|
753
|
+
var slug = categorySlug;
|
|
754
|
+
|
|
755
|
+
if (categorySlug === 'brands') {
|
|
756
|
+
slug = 'new';
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
760
|
+
className: "side-nav__menu-item",
|
|
761
|
+
key: slug
|
|
762
|
+
}, /*#__PURE__*/React__default.createElement("button", {
|
|
763
|
+
type: "button",
|
|
764
|
+
className: "side-nav__menu-title-wrapper",
|
|
765
|
+
onClick: function onClick() {
|
|
766
|
+
return onSubMenuClick(slug);
|
|
767
|
+
}
|
|
768
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
769
|
+
className: "side-nav__menu-title"
|
|
770
|
+
}, title), /*#__PURE__*/React__default.createElement("img", {
|
|
771
|
+
src: accordionIcon,
|
|
772
|
+
alt: "accordion-icon",
|
|
773
|
+
className: "side-nav__accordion-icon"
|
|
774
|
+
})));
|
|
775
|
+
});
|
|
776
|
+
};
|
|
777
|
+
|
|
778
|
+
var renderDropdownLinks = function renderDropdownLinks() {
|
|
779
|
+
return categoryConfig.categories.map(function (category) {
|
|
780
|
+
var categorySlug = category.categorySlug,
|
|
781
|
+
categoryName = category.categoryName,
|
|
782
|
+
elementsKey = category.elementsKey,
|
|
783
|
+
subCategoryElementsKey = category.subCategoryElementsKey,
|
|
784
|
+
styleElementsKey = category.styleElementsKey;
|
|
785
|
+
var categoryElementsProcessed = categoryElements;
|
|
786
|
+
|
|
787
|
+
if (subCategoryElementsKey && dropdownData[subCategoryElementsKey]) {
|
|
788
|
+
// show subcategory elements
|
|
789
|
+
categoryElementsProcessed = removeCategoryByName(dropdownData[subCategoryElementsKey], categoryName);
|
|
790
|
+
} else if (styleElementsKey && dropdownData[styleElementsKey]) {
|
|
791
|
+
categoryElementsProcessed = addCategoryToElements(dropdownData[styleElementsKey], categorySlug);
|
|
792
|
+
} else {
|
|
793
|
+
categoryElementsProcessed = addCategoryToElements(categoryElementsProcessed, categorySlug);
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
var subMenuTitle = 'Brands';
|
|
797
|
+
|
|
798
|
+
if (categorySlug !== 'brands') {
|
|
799
|
+
subMenuTitle = "".concat(categoryName, " Brands");
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
var subMenu = categorySlug;
|
|
803
|
+
|
|
804
|
+
if (subMenu === 'brands') {
|
|
805
|
+
subMenu = 'new';
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
return /*#__PURE__*/React__default.createElement(BrandsDropDown, {
|
|
809
|
+
key: categorySlug,
|
|
810
|
+
subMenuOpen: subMenuOpen && displayedSubMenu === subMenu,
|
|
811
|
+
onBackClick: onBackClick,
|
|
812
|
+
backIcon: backIcon,
|
|
813
|
+
subMenuCategoryTitle: "Department",
|
|
814
|
+
productUrl: productUrl,
|
|
815
|
+
categoryElements: categoryElementsProcessed,
|
|
816
|
+
subMenuBrandsTitle: subMenuTitle,
|
|
817
|
+
brandsList: dropdownData[elementsKey],
|
|
818
|
+
categorySlug: displayedSubMenu,
|
|
819
|
+
isLoading: loading,
|
|
820
|
+
hasError: hasError,
|
|
821
|
+
onCloseSideNav: onCloseSideNav,
|
|
822
|
+
LinkComponent: LinkComponent
|
|
823
|
+
});
|
|
824
|
+
});
|
|
825
|
+
};
|
|
826
|
+
|
|
864
827
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
865
828
|
className: "side-nav"
|
|
866
829
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -881,92 +844,9 @@
|
|
|
881
844
|
className: "side-nav__close-icon"
|
|
882
845
|
})), /*#__PURE__*/React__default.createElement("div", {
|
|
883
846
|
className: "side-nav__menu-items-wrapper"
|
|
884
|
-
}, /*#__PURE__*/React__default.createElement("div", {
|
|
885
|
-
className: "side-nav__menu-item"
|
|
886
|
-
|
|
887
|
-
type: "button",
|
|
888
|
-
className: "side-nav__menu-title-wrapper",
|
|
889
|
-
onClick: function onClick() {
|
|
890
|
-
return onSubMenuClick('new');
|
|
891
|
-
}
|
|
892
|
-
}, /*#__PURE__*/React__default.createElement("span", {
|
|
893
|
-
className: "side-nav__menu-title"
|
|
894
|
-
}, "New"), /*#__PURE__*/React__default.createElement("img", {
|
|
895
|
-
src: accordionIcon,
|
|
896
|
-
alt: "accordion-icon",
|
|
897
|
-
className: "side-nav__accordion-icon"
|
|
898
|
-
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
899
|
-
className: "side-nav__menu-item"
|
|
900
|
-
}, /*#__PURE__*/React__default.createElement("button", {
|
|
901
|
-
type: "button",
|
|
902
|
-
className: "side-nav__menu-title-wrapper",
|
|
903
|
-
onClick: function onClick() {
|
|
904
|
-
return onSubMenuClick('bags');
|
|
905
|
-
}
|
|
906
|
-
}, /*#__PURE__*/React__default.createElement("span", {
|
|
907
|
-
className: "side-nav__menu-title"
|
|
908
|
-
}, "Bags"), /*#__PURE__*/React__default.createElement("img", {
|
|
909
|
-
src: accordionIcon,
|
|
910
|
-
alt: "accordion-icon",
|
|
911
|
-
className: "side-nav__accordion-icon"
|
|
912
|
-
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
913
|
-
className: "side-nav__menu-item"
|
|
914
|
-
}, /*#__PURE__*/React__default.createElement("button", {
|
|
915
|
-
type: "button",
|
|
916
|
-
className: "side-nav__menu-title-wrapper",
|
|
917
|
-
onClick: function onClick() {
|
|
918
|
-
return onSubMenuClick('shoes');
|
|
919
|
-
}
|
|
920
|
-
}, /*#__PURE__*/React__default.createElement("span", {
|
|
921
|
-
className: "side-nav__menu-title"
|
|
922
|
-
}, "Shoes"), /*#__PURE__*/React__default.createElement("img", {
|
|
923
|
-
src: accordionIcon,
|
|
924
|
-
alt: "accordion-icon",
|
|
925
|
-
className: "side-nav__accordion-icon"
|
|
926
|
-
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
927
|
-
className: "side-nav__menu-item"
|
|
928
|
-
}, /*#__PURE__*/React__default.createElement("button", {
|
|
929
|
-
type: "button",
|
|
930
|
-
className: "side-nav__menu-title-wrapper",
|
|
931
|
-
onClick: function onClick() {
|
|
932
|
-
return onSubMenuClick('apparel');
|
|
933
|
-
}
|
|
934
|
-
}, /*#__PURE__*/React__default.createElement("span", {
|
|
935
|
-
className: "side-nav__menu-title"
|
|
936
|
-
}, "Clothing"), /*#__PURE__*/React__default.createElement("img", {
|
|
937
|
-
src: accordionIcon,
|
|
938
|
-
alt: "accordion-icon",
|
|
939
|
-
className: "side-nav__accordion-icon"
|
|
940
|
-
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
941
|
-
className: "side-nav__menu-item"
|
|
942
|
-
}, /*#__PURE__*/React__default.createElement("button", {
|
|
943
|
-
type: "button",
|
|
944
|
-
className: "side-nav__menu-title-wrapper",
|
|
945
|
-
onClick: function onClick() {
|
|
946
|
-
return onSubMenuClick('accessories');
|
|
947
|
-
}
|
|
948
|
-
}, /*#__PURE__*/React__default.createElement("span", {
|
|
949
|
-
className: "side-nav__menu-title"
|
|
950
|
-
}, "Accessories"), /*#__PURE__*/React__default.createElement("img", {
|
|
951
|
-
src: accordionIcon,
|
|
952
|
-
alt: "accordion-icon",
|
|
953
|
-
className: "side-nav__accordion-icon"
|
|
954
|
-
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
955
|
-
className: "side-nav__menu-item"
|
|
956
|
-
}, /*#__PURE__*/React__default.createElement("button", {
|
|
957
|
-
type: "button",
|
|
958
|
-
className: "side-nav__menu-title-wrapper",
|
|
959
|
-
onClick: function onClick() {
|
|
960
|
-
return onSubMenuClick('watches');
|
|
961
|
-
}
|
|
962
|
-
}, /*#__PURE__*/React__default.createElement("span", {
|
|
963
|
-
className: "side-nav__menu-title"
|
|
964
|
-
}, "Watches"), /*#__PURE__*/React__default.createElement("img", {
|
|
965
|
-
src: accordionIcon,
|
|
966
|
-
alt: "accordion-icon",
|
|
967
|
-
className: "side-nav__accordion-icon"
|
|
968
|
-
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
969
|
-
className: "side-nav__menu-item"
|
|
847
|
+
}, renderMenuItems(), !!stores.length && /*#__PURE__*/React__default.createElement("div", {
|
|
848
|
+
className: "side-nav__menu-item",
|
|
849
|
+
key: "stores"
|
|
970
850
|
}, /*#__PURE__*/React__default.createElement("button", {
|
|
971
851
|
type: "button",
|
|
972
852
|
className: "side-nav__menu-title-wrapper",
|
|
@@ -978,134 +858,58 @@
|
|
|
978
858
|
alt: "accordion-icon",
|
|
979
859
|
className: "side-nav__accordion-icon"
|
|
980
860
|
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
981
|
-
className: "side-nav__menu-item"
|
|
861
|
+
className: "side-nav__menu-item",
|
|
862
|
+
key: "sell-to-us"
|
|
982
863
|
}, /*#__PURE__*/React__default.createElement("button", {
|
|
983
864
|
type: "button",
|
|
984
865
|
className: "side-nav__block-button",
|
|
985
866
|
onClick: onSellToUsClick
|
|
986
867
|
}, "Sell To Us")), /*#__PURE__*/React__default.createElement("div", {
|
|
987
|
-
className: "side-nav__menu-item"
|
|
868
|
+
className: "side-nav__menu-item",
|
|
869
|
+
key: "our-story"
|
|
988
870
|
}, /*#__PURE__*/React__default.createElement("button", {
|
|
989
871
|
type: "button",
|
|
990
872
|
className: "side-nav__sub-link",
|
|
991
873
|
onClick: onOurStoryClick
|
|
992
|
-
}, "Our Story")), /*#__PURE__*/React__default.createElement("div", {
|
|
993
|
-
className: "side-nav__menu-item"
|
|
874
|
+
}, "Our Story")), typeof onBlogClick === 'function' && /*#__PURE__*/React__default.createElement("div", {
|
|
875
|
+
className: "side-nav__menu-item",
|
|
876
|
+
key: "blog"
|
|
994
877
|
}, /*#__PURE__*/React__default.createElement("button", {
|
|
995
878
|
type: "button",
|
|
996
879
|
className: "side-nav__sub-link",
|
|
997
880
|
onClick: onBlogClick
|
|
998
881
|
}, "Blog")), /*#__PURE__*/React__default.createElement("div", {
|
|
999
|
-
className: "side-nav__menu-item"
|
|
882
|
+
className: "side-nav__menu-item",
|
|
883
|
+
key: "contact-us"
|
|
1000
884
|
}, /*#__PURE__*/React__default.createElement("button", {
|
|
1001
885
|
type: "button",
|
|
1002
886
|
className: "side-nav__sub-link",
|
|
1003
887
|
onClick: onContactUsClick
|
|
1004
888
|
}, "Contact Us")), /*#__PURE__*/React__default.createElement("div", {
|
|
1005
|
-
className: "side-nav__menu-item"
|
|
889
|
+
className: "side-nav__menu-item",
|
|
890
|
+
key: "my-account"
|
|
1006
891
|
}, /*#__PURE__*/React__default.createElement("button", {
|
|
1007
892
|
type: "button",
|
|
1008
893
|
className: "side-nav__sub-link",
|
|
1009
894
|
onClick: onAccountClick
|
|
1010
895
|
}, "My Account")), /*#__PURE__*/React__default.createElement("div", {
|
|
1011
|
-
className: "side-nav__menu-item"
|
|
896
|
+
className: "side-nav__menu-item",
|
|
897
|
+
key: "my-cart"
|
|
1012
898
|
}, /*#__PURE__*/React__default.createElement("button", {
|
|
1013
899
|
type: "button",
|
|
1014
900
|
className: "side-nav__sub-link",
|
|
1015
901
|
onClick: onCartClick
|
|
1016
902
|
}, "My Cart")), /*#__PURE__*/React__default.createElement(CurrencySelect, {
|
|
903
|
+
key: "currency",
|
|
1017
904
|
currency: currency,
|
|
1018
905
|
currencyOptions: currencyOptions,
|
|
1019
906
|
onCurrencyChange: onCurrencyChange,
|
|
1020
907
|
isCurrencySelectionDisabled: isCurrencySelectionDisabled,
|
|
1021
908
|
tooltipContent: tooltipContent
|
|
1022
|
-
}))), /*#__PURE__*/React__default.createElement(
|
|
1023
|
-
subMenuOpen: subMenuOpen && displayedSubMenu === 'new',
|
|
1024
|
-
onBackClick: onBackClick,
|
|
1025
|
-
backIcon: backIcon,
|
|
1026
|
-
subMenuCategoryTitle: "Department",
|
|
1027
|
-
productUrl: productUrl,
|
|
1028
|
-
categoryElements: categoryElements,
|
|
1029
|
-
subMenuBrandsTitle: "Brands",
|
|
1030
|
-
brandsList: dropdownData.latestArrivals,
|
|
1031
|
-
categorySlug: displayedSubMenu,
|
|
1032
|
-
isLoading: loading,
|
|
1033
|
-
hasError: hasError,
|
|
1034
|
-
onCloseSideNav: onCloseSideNav,
|
|
1035
|
-
LinkComponent: LinkComponent
|
|
1036
|
-
}), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
|
|
1037
|
-
subMenuOpen: subMenuOpen && displayedSubMenu === 'bags',
|
|
1038
|
-
onBackClick: onBackClick,
|
|
1039
|
-
backIcon: backIcon,
|
|
1040
|
-
subMenuCategoryTitle: "Department",
|
|
1041
|
-
productUrl: productUrl,
|
|
1042
|
-
categoryElements: addCategoryToElements(categoryElements, categories.bags.slug),
|
|
1043
|
-
subMenuBrandsTitle: "Bag Brands",
|
|
1044
|
-
brandsList: dropdownData.bags,
|
|
1045
|
-
categorySlug: displayedSubMenu,
|
|
1046
|
-
isLoading: loading,
|
|
1047
|
-
hasError: hasError,
|
|
1048
|
-
onCloseSideNav: onCloseSideNav,
|
|
1049
|
-
LinkComponent: LinkComponent
|
|
1050
|
-
}), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
|
|
1051
|
-
subMenuOpen: subMenuOpen && displayedSubMenu === 'shoes',
|
|
1052
|
-
onBackClick: onBackClick,
|
|
1053
|
-
backIcon: backIcon,
|
|
1054
|
-
subMenuCategoryTitle: "Department",
|
|
1055
|
-
productUrl: productUrl,
|
|
1056
|
-
categoryElements: addCategoryToElements(categoryElements, categories.shoes.slug),
|
|
1057
|
-
subMenuBrandsTitle: "Shoe Brands",
|
|
1058
|
-
brandsList: dropdownData.shoes,
|
|
1059
|
-
categorySlug: displayedSubMenu,
|
|
1060
|
-
isLoading: loading,
|
|
1061
|
-
hasError: hasError,
|
|
1062
|
-
onCloseSideNav: onCloseSideNav,
|
|
1063
|
-
LinkComponent: LinkComponent
|
|
1064
|
-
}), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
|
|
1065
|
-
subMenuOpen: subMenuOpen && displayedSubMenu === 'apparel',
|
|
1066
|
-
onBackClick: onBackClick,
|
|
1067
|
-
backIcon: backIcon,
|
|
1068
|
-
subMenuCategoryTitle: "Department",
|
|
1069
|
-
productUrl: productUrl,
|
|
1070
|
-
categoryElements: addCategoryToElements(dropdownData.apparelStyles, categories.clothing.slug),
|
|
1071
|
-
subMenuBrandsTitle: "Clothing Brands",
|
|
1072
|
-
brandsList: dropdownData.apparel,
|
|
1073
|
-
categorySlug: displayedSubMenu,
|
|
1074
|
-
isLoading: loading,
|
|
1075
|
-
hasError: hasError,
|
|
1076
|
-
onCloseSideNav: onCloseSideNav,
|
|
1077
|
-
LinkComponent: LinkComponent
|
|
1078
|
-
}), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
|
|
1079
|
-
subMenuOpen: subMenuOpen && displayedSubMenu === 'accessories',
|
|
1080
|
-
onBackClick: onBackClick,
|
|
1081
|
-
backIcon: backIcon,
|
|
1082
|
-
subMenuCategoryTitle: "Categories",
|
|
1083
|
-
productUrl: productUrl,
|
|
1084
|
-
categoryElements: removeCategoryByName(dropdownData.accessoriesCategories, 'ACCESSORIES'),
|
|
1085
|
-
subMenuBrandsTitle: "Accessory Brands",
|
|
1086
|
-
brandsList: dropdownData.accessories,
|
|
1087
|
-
categorySlug: displayedSubMenu,
|
|
1088
|
-
isLoading: loading,
|
|
1089
|
-
hasError: hasError,
|
|
1090
|
-
onCloseSideNav: onCloseSideNav,
|
|
1091
|
-
LinkComponent: LinkComponent
|
|
1092
|
-
}), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
|
|
1093
|
-
subMenuOpen: subMenuOpen && displayedSubMenu === 'watches',
|
|
1094
|
-
onBackClick: onBackClick,
|
|
1095
|
-
backIcon: backIcon,
|
|
1096
|
-
subMenuCategoryTitle: "Department",
|
|
1097
|
-
productUrl: productUrl,
|
|
1098
|
-
categoryElements: addCategoryToElements(categoryElements, categories.watches.slug),
|
|
1099
|
-
subMenuBrandsTitle: "Watches Brands",
|
|
1100
|
-
brandsList: dropdownData.watches,
|
|
1101
|
-
categorySlug: displayedSubMenu,
|
|
1102
|
-
isLoading: loading,
|
|
1103
|
-
hasError: hasError,
|
|
1104
|
-
onCloseSideNav: onCloseSideNav,
|
|
1105
|
-
LinkComponent: LinkComponent
|
|
1106
|
-
}), displayedSubMenu === 'stores' && /*#__PURE__*/React__default.createElement("div", {
|
|
909
|
+
}))), renderDropdownLinks(), displayedSubMenu === 'stores' && /*#__PURE__*/React__default.createElement("div", {
|
|
1107
910
|
className: "side-nav__content"
|
|
1108
911
|
}, /*#__PURE__*/React__default.createElement(StoresDropdown, {
|
|
912
|
+
key: "stores",
|
|
1109
913
|
backIcon: backIcon,
|
|
1110
914
|
onBackClick: onBackClick,
|
|
1111
915
|
stores: stores,
|
|
@@ -1113,172 +917,306 @@
|
|
|
1113
917
|
})));
|
|
1114
918
|
};
|
|
1115
919
|
|
|
1116
|
-
var
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
920
|
+
var SearchResults = function SearchResults(_ref) {
|
|
921
|
+
var _searchResults$brands, _searchResults$produc, _searchResults$brands2, _searchResults$produc2, _initialSearchData$tr, _initialSearchData$la, _limitBrands, _limitBrands2, _initialSearchData$la2, _searchResults$produc3;
|
|
922
|
+
|
|
923
|
+
var searchValue = _ref.searchValue,
|
|
924
|
+
searchResults = _ref.searchResults,
|
|
925
|
+
onViewAll = _ref.onViewAll,
|
|
926
|
+
searchResultsRef = _ref.searchResultsRef,
|
|
927
|
+
onSearchSubmit = _ref.onSearchSubmit,
|
|
928
|
+
setSearchValue = _ref.setSearchValue,
|
|
929
|
+
initialSearchData = _ref.initialSearchData,
|
|
930
|
+
isSearchFocused = _ref.isSearchFocused,
|
|
931
|
+
setIsSearchFocused = _ref.setIsSearchFocused,
|
|
932
|
+
currency = _ref.currency,
|
|
933
|
+
currencySymbol = _ref.currencySymbol;
|
|
934
|
+
|
|
935
|
+
var _useState = React.useState(false),
|
|
936
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
937
|
+
isMobile = _useState2[0],
|
|
938
|
+
setIsMobile = _useState2[1];
|
|
939
|
+
|
|
940
|
+
React.useEffect(function () {
|
|
941
|
+
var checkIfMobile = function checkIfMobile() {
|
|
942
|
+
setIsMobile(window.innerWidth <= 1024);
|
|
943
|
+
};
|
|
944
|
+
|
|
945
|
+
checkIfMobile();
|
|
946
|
+
window.addEventListener('resize', checkIfMobile);
|
|
947
|
+
return function () {
|
|
948
|
+
window.removeEventListener('resize', checkIfMobile);
|
|
949
|
+
};
|
|
950
|
+
}, []);
|
|
951
|
+
var shouldShowInitialData = isSearchFocused && (!searchValue || searchValue.trim().length < 3) || (searchValue === null || searchValue === void 0 ? void 0 : searchValue.trim().length) >= 3 && !(searchResults !== null && searchResults !== void 0 && (_searchResults$brands = searchResults.brands) !== null && _searchResults$brands !== void 0 && _searchResults$brands.length) && !(searchResults !== null && searchResults !== void 0 && (_searchResults$produc = searchResults.products) !== null && _searchResults$produc !== void 0 && _searchResults$produc.length);
|
|
952
|
+
var hasResults = (searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$brands2 = searchResults.brands) === null || _searchResults$brands2 === void 0 ? void 0 : _searchResults$brands2.length) > 0 || (searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$produc2 = searchResults.products) === null || _searchResults$produc2 === void 0 ? void 0 : _searchResults$produc2.length) > 0;
|
|
953
|
+
var hasInitialData = (initialSearchData === null || initialSearchData === void 0 ? void 0 : (_initialSearchData$tr = initialSearchData.trending_brands) === null || _initialSearchData$tr === void 0 ? void 0 : _initialSearchData$tr.length) > 0 || (initialSearchData === null || initialSearchData === void 0 ? void 0 : (_initialSearchData$la = initialSearchData.latest_products) === null || _initialSearchData$la === void 0 ? void 0 : _initialSearchData$la.length) > 0;
|
|
954
|
+
|
|
955
|
+
if (!hasResults && !hasInitialData) {
|
|
956
|
+
return null;
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
if (!isSearchFocused) {
|
|
960
|
+
return null;
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
var formatPrice = function formatPrice(price) {
|
|
964
|
+
var formatter = new Intl.NumberFormat(undefined, {
|
|
965
|
+
minimumFractionDigits: 0,
|
|
966
|
+
maximumFractionDigits: 2
|
|
967
|
+
});
|
|
968
|
+
return "".concat(currencySymbol).concat(formatter.format(price));
|
|
969
|
+
};
|
|
970
|
+
|
|
971
|
+
var renderProductCard = function renderProductCard(product) {
|
|
972
|
+
var selectedPrice = product.prices ? product.prices.find(function (p) {
|
|
973
|
+
return p.currency === currency;
|
|
974
|
+
}) : {
|
|
975
|
+
price: product.price,
|
|
976
|
+
retail_price: product.est_retail_price
|
|
977
|
+
};
|
|
978
|
+
return /*#__PURE__*/React__default.createElement("a", {
|
|
979
|
+
key: product.link,
|
|
980
|
+
href: product.link,
|
|
981
|
+
className: "product-card"
|
|
982
|
+
}, product.featured_image && /*#__PURE__*/React__default.createElement("div", {
|
|
983
|
+
className: "product-card__image-container"
|
|
984
|
+
}, /*#__PURE__*/React__default.createElement("img", {
|
|
985
|
+
src: product.featured_image,
|
|
986
|
+
alt: product.name,
|
|
987
|
+
className: "product-card__image"
|
|
988
|
+
})), /*#__PURE__*/React__default.createElement("div", {
|
|
989
|
+
className: "product-card__details"
|
|
990
|
+
}, /*#__PURE__*/React__default.createElement("h3", {
|
|
991
|
+
className: "product-card__name"
|
|
992
|
+
}, shouldShowInitialData ? /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement("span", {
|
|
993
|
+
className: "product-card__brand-name"
|
|
994
|
+
}, product.brand.toUpperCase()), ' ', product.name) : product.name), /*#__PURE__*/React__default.createElement("div", {
|
|
995
|
+
className: "product-card__info-row"
|
|
996
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
997
|
+
className: "product-card__price-group"
|
|
998
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
999
|
+
className: "product-card__price"
|
|
1000
|
+
}, formatPrice(selectedPrice.price)), selectedPrice.retail_price > 1 && /*#__PURE__*/React__default.createElement("div", {
|
|
1001
|
+
className: "product-card__retail-price"
|
|
1002
|
+
}, "Est. Retail: ", formatPrice(selectedPrice.retail_price))), /*#__PURE__*/React__default.createElement("div", {
|
|
1003
|
+
className: "product-card__condition"
|
|
1004
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
1005
|
+
className: "product-card__condition-label"
|
|
1006
|
+
}, "Condition:"), product.condition))));
|
|
1007
|
+
};
|
|
1008
|
+
|
|
1009
|
+
var getBrandLink = function getBrandLink(brand) {
|
|
1010
|
+
return "/products/brands/".concat(brand.slug);
|
|
1011
|
+
};
|
|
1012
|
+
|
|
1013
|
+
var limitBrands = function limitBrands(brands) {
|
|
1014
|
+
if (isMobile && brands && brands.length > 4) {
|
|
1015
|
+
return brands.slice(0, 4);
|
|
1122
1016
|
}
|
|
1017
|
+
|
|
1018
|
+
return brands;
|
|
1123
1019
|
};
|
|
1124
|
-
};
|
|
1125
1020
|
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1021
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
1022
|
+
className: "search-results",
|
|
1023
|
+
ref: searchResultsRef
|
|
1024
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
1025
|
+
className: "search-results__section"
|
|
1026
|
+
}, /*#__PURE__*/React__default.createElement("h2", {
|
|
1027
|
+
className: "search-results__header"
|
|
1028
|
+
}, shouldShowInitialData ? 'TRENDING SEARCHES' : 'BRANDS'), /*#__PURE__*/React__default.createElement("div", {
|
|
1029
|
+
className: "search-results__list"
|
|
1030
|
+
}, shouldShowInitialData ? (_limitBrands = limitBrands(initialSearchData === null || initialSearchData === void 0 ? void 0 : initialSearchData.trending_brands)) === null || _limitBrands === void 0 ? void 0 : _limitBrands.map(function (brand) {
|
|
1031
|
+
return /*#__PURE__*/React__default.createElement("a", {
|
|
1032
|
+
key: brand.id,
|
|
1033
|
+
href: getBrandLink(brand),
|
|
1034
|
+
className: "search-results__item"
|
|
1035
|
+
}, brand.name);
|
|
1036
|
+
}) : (_limitBrands2 = limitBrands(searchResults === null || searchResults === void 0 ? void 0 : searchResults.brands)) === null || _limitBrands2 === void 0 ? void 0 : _limitBrands2.map(function (brand) {
|
|
1037
|
+
return /*#__PURE__*/React__default.createElement("a", {
|
|
1038
|
+
key: brand.link,
|
|
1039
|
+
href: brand.link,
|
|
1040
|
+
className: "search-results__item"
|
|
1041
|
+
}, brand.name);
|
|
1042
|
+
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
1043
|
+
className: "search-results__section"
|
|
1044
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
1045
|
+
className: "search-results__section-header"
|
|
1046
|
+
}, /*#__PURE__*/React__default.createElement("h2", {
|
|
1047
|
+
className: "search-results__header"
|
|
1048
|
+
}, shouldShowInitialData ? 'POPULAR' : 'TOP MATCHES'), /*#__PURE__*/React__default.createElement("button", {
|
|
1049
|
+
type: "button",
|
|
1050
|
+
className: "search-results__view-all-link",
|
|
1051
|
+
onClick: function onClick() {
|
|
1052
|
+
onViewAll();
|
|
1136
1053
|
}
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
key: brand.link,
|
|
1147
|
-
href: brand.link,
|
|
1148
|
-
className: ""
|
|
1149
|
-
}, /*#__PURE__*/React__default.createElement("div", {
|
|
1150
|
-
className: "p-2 px-4 hover:bg-gray-100"
|
|
1151
|
-
}, brand.name));
|
|
1152
|
-
})), /*#__PURE__*/React__default.createElement("div", {
|
|
1153
|
-
className: "w-full lg:w-2/3"
|
|
1154
|
-
}, /*#__PURE__*/React__default.createElement("p", {
|
|
1155
|
-
className: "font-bold p-2 px-4"
|
|
1156
|
-
}, "Products"), searchResults.products.map(function (product) {
|
|
1157
|
-
return /*#__PURE__*/React__default.createElement("a", {
|
|
1158
|
-
key: product.link,
|
|
1159
|
-
href: product.link
|
|
1160
|
-
}, /*#__PURE__*/React__default.createElement("div", {
|
|
1161
|
-
className: "p-2 px-4 hover:bg-gray-100"
|
|
1162
|
-
}, product.name));
|
|
1163
|
-
}), /*#__PURE__*/React__default.createElement("button", {
|
|
1164
|
-
type: "button",
|
|
1165
|
-
onClick: function onClick() {
|
|
1166
|
-
onViewAll();
|
|
1054
|
+
}, "View all items")), /*#__PURE__*/React__default.createElement("div", {
|
|
1055
|
+
className: "search-results__product-list"
|
|
1056
|
+
}, shouldShowInitialData ? initialSearchData === null || initialSearchData === void 0 ? void 0 : (_initialSearchData$la2 = initialSearchData.latest_products) === null || _initialSearchData$la2 === void 0 ? void 0 : _initialSearchData$la2.map(renderProductCard) : searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$produc3 = searchResults.products) === null || _searchResults$produc3 === void 0 ? void 0 : _searchResults$produc3.map(renderProductCard)), /*#__PURE__*/React__default.createElement("button", {
|
|
1057
|
+
type: "button",
|
|
1058
|
+
className: "search-results__view-all-button",
|
|
1059
|
+
onClick: function onClick() {
|
|
1060
|
+
onViewAll();
|
|
1061
|
+
|
|
1062
|
+
if (!shouldShowInitialData) {
|
|
1167
1063
|
onSearchSubmit(searchValue);
|
|
1168
1064
|
setSearchValue('');
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
}
|
|
1172
|
-
}
|
|
1173
|
-
return null;
|
|
1065
|
+
setIsSearchFocused(false);
|
|
1066
|
+
}
|
|
1067
|
+
}
|
|
1068
|
+
}, "View all items")));
|
|
1174
1069
|
};
|
|
1175
1070
|
|
|
1176
|
-
var
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
onDashboardClick = _ref.onDashboardClick,
|
|
1194
|
-
onContactUsClick = _ref.onContactUsClick,
|
|
1195
|
-
onOurStoryClick = _ref.onOurStoryClick,
|
|
1196
|
-
onBlogClick = _ref.onBlogClick,
|
|
1197
|
-
bugReportLink = _ref.bugReportLink,
|
|
1198
|
-
onSellToUsClick = _ref.onSellToUsClick,
|
|
1199
|
-
onLogoClick = _ref.onLogoClick,
|
|
1200
|
-
onLuxityShopClick = _ref.onLuxityShopClick,
|
|
1201
|
-
endpoint = _ref.endpoint,
|
|
1202
|
-
menuData = _ref.menuData,
|
|
1203
|
-
onSearchSubmit = _ref.onSearchSubmit,
|
|
1204
|
-
onProductIdsReceived = _ref.onProductIdsReceived,
|
|
1205
|
-
onLogoutClick = _ref.onLogoutClick,
|
|
1206
|
-
onInterestClick = _ref.onInterestClick,
|
|
1207
|
-
onAddressClick = _ref.onAddressClick,
|
|
1208
|
-
onCouponsClick = _ref.onCouponsClick,
|
|
1209
|
-
onEditProfileClick = _ref.onEditProfileClick,
|
|
1210
|
-
onCurrentOrdersClick = _ref.onCurrentOrdersClick,
|
|
1211
|
-
onPastOrdersClick = _ref.onPastOrdersClick,
|
|
1212
|
-
onSubmissionsClick = _ref.onSubmissionsClick,
|
|
1213
|
-
onPastSalesClick = _ref.onPastSalesClick,
|
|
1214
|
-
onPaidOutClick = _ref.onPaidOutClick,
|
|
1215
|
-
currency = _ref.currency,
|
|
1216
|
-
currencyOptions = _ref.currencyOptions,
|
|
1217
|
-
onCurrencyChange = _ref.onCurrencyChange,
|
|
1218
|
-
isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
|
|
1219
|
-
tooltipContent = _ref.tooltipContent,
|
|
1220
|
-
LinkComponent = _ref.LinkComponent,
|
|
1221
|
-
shop = _ref.shop,
|
|
1222
|
-
app = _ref.app;
|
|
1223
|
-
var _useState = React.useState(''),
|
|
1224
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
1225
|
-
searchValue = _useState2[0],
|
|
1226
|
-
setSearchValue = _useState2[1];
|
|
1227
|
-
var _useState3 = React.useState(false),
|
|
1228
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
1229
|
-
showSearchBar = _useState4[0],
|
|
1230
|
-
setShowSearchbar = _useState4[1];
|
|
1231
|
-
var _useState5 = React.useState(false),
|
|
1232
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
1233
|
-
showSideNav = _useState6[0],
|
|
1234
|
-
setShowSideNav = _useState6[1];
|
|
1235
|
-
var _useState7 = React.useState(false),
|
|
1236
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
1237
|
-
searchLoading = _useState8[0],
|
|
1238
|
-
setSearchLoading = _useState8[1];
|
|
1239
|
-
var _useState9 = React.useState({
|
|
1240
|
-
brands: [],
|
|
1241
|
-
products: []
|
|
1242
|
-
}),
|
|
1243
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
1244
|
-
searchResults = _useState10[0],
|
|
1245
|
-
setSearchResults = _useState10[1];
|
|
1246
|
-
var debounce = function debounce(func, wait) {
|
|
1071
|
+
var searchProducts = function searchProducts(search, limit, currencyCode) {
|
|
1072
|
+
return {
|
|
1073
|
+
query: "\n query SearchProducts($search: String!, $limit: Int!, $currencyCode: String!) {\n luxity_products_serach_results(search: $search, limit: $limit, currency_code: $currencyCode) {\n brands {\n name\n link\n }\n products {\n name\n link\n price\n est_retail_price\n condition\n featured_image\n }\n luxity_product_ids\n }\n }\n ",
|
|
1074
|
+
variables: {
|
|
1075
|
+
search: search,
|
|
1076
|
+
limit: limit,
|
|
1077
|
+
currencyCode: currencyCode
|
|
1078
|
+
}
|
|
1079
|
+
};
|
|
1080
|
+
};
|
|
1081
|
+
|
|
1082
|
+
var useSearch = function useSearch(_ref) {
|
|
1083
|
+
var endpoint = _ref.endpoint,
|
|
1084
|
+
onProductIdsReceived = _ref.onProductIdsReceived,
|
|
1085
|
+
currency = _ref.currency;
|
|
1086
|
+
var currentSearchRequestToken = React.useRef(null);
|
|
1087
|
+
var debounce = React.useCallback(function (func, wait) {
|
|
1247
1088
|
var timeout;
|
|
1248
1089
|
return function executedFunction() {
|
|
1249
1090
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
1250
1091
|
args[_key] = arguments[_key];
|
|
1251
1092
|
}
|
|
1093
|
+
|
|
1252
1094
|
var later = function later() {
|
|
1253
1095
|
clearTimeout(timeout);
|
|
1254
1096
|
func.apply(void 0, args);
|
|
1255
1097
|
};
|
|
1098
|
+
|
|
1256
1099
|
clearTimeout(timeout);
|
|
1257
1100
|
timeout = setTimeout(later, wait);
|
|
1258
1101
|
};
|
|
1259
|
-
};
|
|
1260
|
-
var
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1102
|
+
}, []);
|
|
1103
|
+
var fetchInitialSearchData = React.useCallback(function (initialSearchDataUrl, setInitialSearchView) {
|
|
1104
|
+
axios.get("".concat(initialSearchDataUrl)).then(function (_ref2) {
|
|
1105
|
+
var data = _ref2.data;
|
|
1106
|
+
setInitialSearchView({
|
|
1107
|
+
trending_brands: data.trending_brands,
|
|
1108
|
+
latest_products: data.latest_products
|
|
1109
|
+
});
|
|
1267
1110
|
}).catch(function () {
|
|
1268
|
-
|
|
1111
|
+
setInitialSearchView({
|
|
1112
|
+
trending_brands: [],
|
|
1113
|
+
latest_products: []
|
|
1114
|
+
});
|
|
1269
1115
|
});
|
|
1270
|
-
},
|
|
1271
|
-
var
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1116
|
+
}, []);
|
|
1117
|
+
var performSearch = React.useCallback(function (searchQuery, setSearchResults) {
|
|
1118
|
+
if (!searchQuery || searchQuery.trim() === '') {
|
|
1119
|
+
setSearchResults({
|
|
1120
|
+
brands: [],
|
|
1121
|
+
products: [],
|
|
1122
|
+
luxity_product_ids: []
|
|
1123
|
+
});
|
|
1124
|
+
return;
|
|
1125
|
+
} // Cancel any ongoing search request to prevent race conditions
|
|
1126
|
+
|
|
1127
|
+
|
|
1128
|
+
if (currentSearchRequestToken.current) {
|
|
1129
|
+
currentSearchRequestToken.current.cancel();
|
|
1130
|
+
} // Create a new token for this specific search request
|
|
1131
|
+
|
|
1132
|
+
|
|
1133
|
+
var newSearchToken = axios.CancelToken.source();
|
|
1134
|
+
currentSearchRequestToken.current = newSearchToken;
|
|
1135
|
+
axios.post(endpoint, searchProducts(searchQuery, 3, currency), {
|
|
1136
|
+
cancelToken: newSearchToken.token
|
|
1137
|
+
}).then(function (response) {
|
|
1138
|
+
if (currentSearchRequestToken.current === newSearchToken) {
|
|
1139
|
+
var searchResults = response.data.data.luxity_products_serach_results;
|
|
1140
|
+
setSearchResults(searchResults);
|
|
1141
|
+
|
|
1142
|
+
if (searchResults && searchResults.luxity_product_ids) {
|
|
1143
|
+
onProductIdsReceived(searchResults.luxity_product_ids);
|
|
1144
|
+
}
|
|
1145
|
+
|
|
1146
|
+
currentSearchRequestToken.current = null;
|
|
1147
|
+
}
|
|
1148
|
+
}).catch(function (error) {
|
|
1149
|
+
if (!axios.isCancel(error)) {
|
|
1150
|
+
setSearchResults({
|
|
1151
|
+
brands: [],
|
|
1152
|
+
products: [],
|
|
1153
|
+
luxity_product_ids: []
|
|
1154
|
+
});
|
|
1155
|
+
currentSearchRequestToken.current = null;
|
|
1156
|
+
}
|
|
1276
1157
|
});
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1158
|
+
}, [endpoint, currency, onProductIdsReceived]);
|
|
1159
|
+
var debouncedSearch = React.useMemo(function () {
|
|
1160
|
+
return debounce(function (searchQuery, setSearchResults) {
|
|
1161
|
+
return performSearch(searchQuery, setSearchResults);
|
|
1162
|
+
}, 500);
|
|
1163
|
+
}, [debounce, performSearch]);
|
|
1164
|
+
var createDebouncedSearch = React.useCallback(function (setSearchResults) {
|
|
1165
|
+
return function (searchQuery) {
|
|
1166
|
+
return debouncedSearch(searchQuery, setSearchResults);
|
|
1167
|
+
};
|
|
1168
|
+
}, [debouncedSearch]);
|
|
1169
|
+
var createImmediateSearch = React.useCallback(function (setSearchValue, setSearchResults, onSearchSubmit) {
|
|
1170
|
+
return function (searchQuery) {
|
|
1171
|
+
/*
|
|
1172
|
+
* Cancel any pending search request when immediate search is performed
|
|
1173
|
+
* Immediate search is when the user types a search query and presses enter
|
|
1174
|
+
*/
|
|
1175
|
+
if (currentSearchRequestToken.current) {
|
|
1176
|
+
currentSearchRequestToken.current.cancel();
|
|
1177
|
+
currentSearchRequestToken.current = null;
|
|
1178
|
+
}
|
|
1179
|
+
|
|
1180
|
+
setSearchValue('');
|
|
1181
|
+
setSearchResults({
|
|
1182
|
+
brands: [],
|
|
1183
|
+
products: []
|
|
1184
|
+
});
|
|
1185
|
+
onSearchSubmit(searchQuery);
|
|
1186
|
+
};
|
|
1187
|
+
}, []);
|
|
1188
|
+
return {
|
|
1189
|
+
fetchInitialSearchData: fetchInitialSearchData,
|
|
1190
|
+
createDebouncedSearch: createDebouncedSearch,
|
|
1191
|
+
createImmediateSearch: createImmediateSearch
|
|
1192
|
+
};
|
|
1193
|
+
};
|
|
1194
|
+
|
|
1195
|
+
var useSearchClickOutside = function useSearchClickOutside(ref, searchResults, setCachedResults, setIsSearchFocused, setSearchResults) {
|
|
1196
|
+
React.useEffect(function () {
|
|
1197
|
+
var handleClickOutside = function handleClickOutside(event) {
|
|
1198
|
+
if (ref.current && !ref.current.contains(event.target)) {
|
|
1199
|
+
setCachedResults(searchResults);
|
|
1200
|
+
setIsSearchFocused(false);
|
|
1201
|
+
setSearchResults({
|
|
1202
|
+
brands: [],
|
|
1203
|
+
products: []
|
|
1204
|
+
});
|
|
1205
|
+
}
|
|
1206
|
+
};
|
|
1207
|
+
|
|
1208
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
1209
|
+
return function () {
|
|
1210
|
+
document.removeEventListener('mousedown', handleClickOutside);
|
|
1211
|
+
};
|
|
1212
|
+
}, [ref, searchResults, setCachedResults, setIsSearchFocused, setSearchResults]);
|
|
1213
|
+
};
|
|
1214
|
+
var useSearchInputChange = function useSearchInputChange(setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults) {
|
|
1215
|
+
return React.useCallback(function (event) {
|
|
1280
1216
|
var value = event.target.value;
|
|
1281
1217
|
setSearchValue(value);
|
|
1218
|
+
setIsSearchFocused(true);
|
|
1219
|
+
|
|
1282
1220
|
if (value.trim().length >= 3) {
|
|
1283
1221
|
debouncedSearch(value);
|
|
1284
1222
|
} else {
|
|
@@ -1286,87 +1224,268 @@
|
|
|
1286
1224
|
brands: [],
|
|
1287
1225
|
products: []
|
|
1288
1226
|
});
|
|
1227
|
+
setCachedResults({
|
|
1228
|
+
brands: [],
|
|
1229
|
+
products: []
|
|
1230
|
+
});
|
|
1289
1231
|
}
|
|
1290
|
-
};
|
|
1291
|
-
|
|
1232
|
+
}, [setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults]);
|
|
1233
|
+
};
|
|
1234
|
+
var useSearchInputFocus = function useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults) {
|
|
1235
|
+
var handleSearchClick = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;
|
|
1236
|
+
return React.useCallback(function () {
|
|
1237
|
+
setIsSearchFocused(true);
|
|
1238
|
+
|
|
1239
|
+
if (typeof handleSearchClick === 'function') {
|
|
1240
|
+
handleSearchClick();
|
|
1241
|
+
} else if (searchValue.trim().length >= 3) {
|
|
1242
|
+
setSearchResults(cachedResults);
|
|
1243
|
+
}
|
|
1244
|
+
}, [searchValue, setIsSearchFocused, cachedResults, setSearchResults, handleSearchClick]);
|
|
1245
|
+
};
|
|
1246
|
+
var useSearchInputKeyDown = function useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused) {
|
|
1247
|
+
var setSearchValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
1248
|
+
return React.useCallback(function (event) {
|
|
1292
1249
|
if (event.key === 'Enter') {
|
|
1293
1250
|
event.preventDefault();
|
|
1251
|
+
|
|
1294
1252
|
if (searchValue.trim().length >= 3) {
|
|
1295
1253
|
immediateSearch(searchValue);
|
|
1296
1254
|
}
|
|
1297
|
-
|
|
1255
|
+
|
|
1256
|
+
setIsSearchFocused(false);
|
|
1257
|
+
} else if (event.key === 'Escape' && setSearchValue) {
|
|
1298
1258
|
setSearchValue('');
|
|
1259
|
+
setIsSearchFocused(false);
|
|
1299
1260
|
}
|
|
1300
|
-
};
|
|
1261
|
+
}, [searchValue, immediateSearch, setIsSearchFocused, setSearchValue]);
|
|
1262
|
+
};
|
|
1263
|
+
|
|
1264
|
+
var LuxityMobileHeader = function LuxityMobileHeader(_ref) {
|
|
1265
|
+
var logoSrc = _ref.logoSrc,
|
|
1266
|
+
menuIcon = _ref.menuIcon,
|
|
1267
|
+
inputSearchIcon = _ref.inputSearchIcon,
|
|
1268
|
+
onCartClick = _ref.onCartClick,
|
|
1269
|
+
cartIcon = _ref.cartIcon,
|
|
1270
|
+
cartCount = _ref.cartCount,
|
|
1271
|
+
closeIcon = _ref.closeIcon,
|
|
1272
|
+
accountIcon = _ref.accountIcon,
|
|
1273
|
+
saleIcon = _ref.saleIcon,
|
|
1274
|
+
orderIcon = _ref.orderIcon,
|
|
1275
|
+
accordionIcon = _ref.accordionIcon,
|
|
1276
|
+
backIcon = _ref.backIcon,
|
|
1277
|
+
productsUrl = _ref.productsUrl,
|
|
1278
|
+
stores = _ref.stores,
|
|
1279
|
+
categoryElements = _ref.categoryElements,
|
|
1280
|
+
onAccountClick = _ref.onAccountClick,
|
|
1281
|
+
onDashboardClick = _ref.onDashboardClick,
|
|
1282
|
+
onContactUsClick = _ref.onContactUsClick,
|
|
1283
|
+
onOurStoryClick = _ref.onOurStoryClick,
|
|
1284
|
+
_ref$onBlogClick = _ref.onBlogClick,
|
|
1285
|
+
onBlogClick = _ref$onBlogClick === void 0 ? undefined : _ref$onBlogClick,
|
|
1286
|
+
bugReportLink = _ref.bugReportLink,
|
|
1287
|
+
onSellToUsClick = _ref.onSellToUsClick,
|
|
1288
|
+
onLogoClick = _ref.onLogoClick,
|
|
1289
|
+
onLuxityShopClick = _ref.onLuxityShopClick,
|
|
1290
|
+
endpoint = _ref.endpoint,
|
|
1291
|
+
initialSearchData = _ref.initialSearchData,
|
|
1292
|
+
onSearchSubmit = _ref.onSearchSubmit,
|
|
1293
|
+
onProductIdsReceived = _ref.onProductIdsReceived,
|
|
1294
|
+
onLogoutClick = _ref.onLogoutClick,
|
|
1295
|
+
onInterestClick = _ref.onInterestClick,
|
|
1296
|
+
onAddressClick = _ref.onAddressClick,
|
|
1297
|
+
onCouponsClick = _ref.onCouponsClick,
|
|
1298
|
+
onEditProfileClick = _ref.onEditProfileClick,
|
|
1299
|
+
onCurrentOrdersClick = _ref.onCurrentOrdersClick,
|
|
1300
|
+
onPastOrdersClick = _ref.onPastOrdersClick,
|
|
1301
|
+
onSubmissionsClick = _ref.onSubmissionsClick,
|
|
1302
|
+
onPastSalesClick = _ref.onPastSalesClick,
|
|
1303
|
+
onPaidOutClick = _ref.onPaidOutClick,
|
|
1304
|
+
currency = _ref.currency,
|
|
1305
|
+
currencySymbol = _ref.currencySymbol,
|
|
1306
|
+
currencyOptions = _ref.currencyOptions,
|
|
1307
|
+
onCurrencyChange = _ref.onCurrencyChange,
|
|
1308
|
+
isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
|
|
1309
|
+
tooltipContent = _ref.tooltipContent,
|
|
1310
|
+
LinkComponent = _ref.LinkComponent,
|
|
1311
|
+
shop = _ref.shop,
|
|
1312
|
+
app = _ref.app,
|
|
1313
|
+
categoryConfig = _ref.categoryConfig;
|
|
1314
|
+
|
|
1315
|
+
var _useSearch = useSearch({
|
|
1316
|
+
endpoint: endpoint,
|
|
1317
|
+
onProductIdsReceived: onProductIdsReceived,
|
|
1318
|
+
currency: currency
|
|
1319
|
+
}),
|
|
1320
|
+
fetchInitialSearchData = _useSearch.fetchInitialSearchData,
|
|
1321
|
+
createDebouncedSearch = _useSearch.createDebouncedSearch,
|
|
1322
|
+
createImmediateSearch = _useSearch.createImmediateSearch;
|
|
1323
|
+
|
|
1324
|
+
var _useState = React.useState(''),
|
|
1325
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
1326
|
+
searchValue = _useState2[0],
|
|
1327
|
+
setSearchValue = _useState2[1];
|
|
1328
|
+
|
|
1329
|
+
var _useState3 = React.useState(false),
|
|
1330
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
1331
|
+
showSearchBar = _useState4[0],
|
|
1332
|
+
setShowSearchbar = _useState4[1];
|
|
1333
|
+
|
|
1334
|
+
var _useState5 = React.useState(false),
|
|
1335
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
1336
|
+
showSideNav = _useState6[0],
|
|
1337
|
+
setShowSideNav = _useState6[1];
|
|
1338
|
+
|
|
1339
|
+
var _useState7 = React.useState({
|
|
1340
|
+
brands: [],
|
|
1341
|
+
products: []
|
|
1342
|
+
}),
|
|
1343
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
1344
|
+
searchResults = _useState8[0],
|
|
1345
|
+
setSearchResults = _useState8[1];
|
|
1346
|
+
|
|
1347
|
+
var _useState9 = React.useState({
|
|
1348
|
+
brands: [],
|
|
1349
|
+
products: []
|
|
1350
|
+
}),
|
|
1351
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
1352
|
+
cachedResults = _useState10[0],
|
|
1353
|
+
setCachedResults = _useState10[1];
|
|
1354
|
+
|
|
1355
|
+
var _useState11 = React.useState(false),
|
|
1356
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
1357
|
+
isSearchFocused = _useState12[0],
|
|
1358
|
+
setIsSearchFocused = _useState12[1];
|
|
1359
|
+
|
|
1360
|
+
var _useState13 = React.useState({
|
|
1361
|
+
trending_brands: [],
|
|
1362
|
+
latest_products: []
|
|
1363
|
+
}),
|
|
1364
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
1365
|
+
initialSearchView = _useState14[0],
|
|
1366
|
+
setInitialSearchView = _useState14[1];
|
|
1367
|
+
|
|
1368
|
+
var searchResultsRef = React.useRef(null);
|
|
1369
|
+
var searchInputRef = React.useRef(null);
|
|
1370
|
+
var debouncedSearch = createDebouncedSearch(function (results) {
|
|
1371
|
+
setSearchResults(results);
|
|
1372
|
+
setCachedResults(results);
|
|
1373
|
+
});
|
|
1374
|
+
var immediateSearch = createImmediateSearch(setSearchValue, setSearchResults, onSearchSubmit);
|
|
1375
|
+
var handleChange = useSearchInputChange(setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults);
|
|
1376
|
+
var handleKeyDown = useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused, setSearchValue);
|
|
1377
|
+
React.useMemo(function () {
|
|
1378
|
+
if (!initialSearchData) {
|
|
1379
|
+
return;
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
fetchInitialSearchData(initialSearchData, setInitialSearchView);
|
|
1383
|
+
}, [initialSearchData, fetchInitialSearchData]);
|
|
1384
|
+
useSearchClickOutside(searchResultsRef, searchResults, setCachedResults, setIsSearchFocused, setSearchResults);
|
|
1385
|
+
var handleSearchFocus = useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults);
|
|
1386
|
+
React.useEffect(function () {
|
|
1387
|
+
if (showSearchBar && searchInputRef.current) {
|
|
1388
|
+
searchInputRef.current.focus();
|
|
1389
|
+
}
|
|
1390
|
+
}, [showSearchBar]);
|
|
1391
|
+
|
|
1301
1392
|
var onSearchClick = function onSearchClick() {
|
|
1302
1393
|
setShowSearchbar(function (prev) {
|
|
1303
1394
|
return !prev;
|
|
1304
1395
|
});
|
|
1305
1396
|
setSearchValue('');
|
|
1397
|
+
setIsSearchFocused(!showSearchBar);
|
|
1398
|
+
|
|
1399
|
+
if (showSearchBar) {
|
|
1400
|
+
setSearchResults({
|
|
1401
|
+
brands: [],
|
|
1402
|
+
products: []
|
|
1403
|
+
});
|
|
1404
|
+
}
|
|
1306
1405
|
};
|
|
1406
|
+
|
|
1307
1407
|
var onMenuClick = function onMenuClick() {
|
|
1308
1408
|
setShowSideNav(function (prev) {
|
|
1309
1409
|
return !prev;
|
|
1310
1410
|
});
|
|
1311
1411
|
};
|
|
1412
|
+
|
|
1312
1413
|
var handleClick = function handleClick(callback) {
|
|
1313
1414
|
callback();
|
|
1314
1415
|
setShowSideNav(false);
|
|
1315
1416
|
};
|
|
1417
|
+
|
|
1316
1418
|
var handleDashboardClick = function handleDashboardClick() {
|
|
1317
1419
|
return handleClick(onDashboardClick);
|
|
1318
1420
|
};
|
|
1421
|
+
|
|
1319
1422
|
var handleSellToUsClick = function handleSellToUsClick() {
|
|
1320
1423
|
return handleClick(onSellToUsClick);
|
|
1321
1424
|
};
|
|
1425
|
+
|
|
1322
1426
|
var handleCartClick = function handleCartClick() {
|
|
1323
1427
|
return handleClick(onCartClick);
|
|
1324
1428
|
};
|
|
1429
|
+
|
|
1325
1430
|
var handleLuxityShopClick = function handleLuxityShopClick() {
|
|
1326
1431
|
return handleClick(onLuxityShopClick);
|
|
1327
1432
|
};
|
|
1433
|
+
|
|
1328
1434
|
var handleLogoutClick = function handleLogoutClick() {
|
|
1329
1435
|
return handleClick(onLogoutClick);
|
|
1330
1436
|
};
|
|
1437
|
+
|
|
1331
1438
|
var handleInterestClick = function handleInterestClick() {
|
|
1332
1439
|
return handleClick(onInterestClick);
|
|
1333
1440
|
};
|
|
1441
|
+
|
|
1334
1442
|
var handleAddressClick = function handleAddressClick() {
|
|
1335
1443
|
return handleClick(onAddressClick);
|
|
1336
1444
|
};
|
|
1445
|
+
|
|
1337
1446
|
var handleCouponsClick = function handleCouponsClick() {
|
|
1338
1447
|
return handleClick(onCouponsClick);
|
|
1339
1448
|
};
|
|
1449
|
+
|
|
1340
1450
|
var handleEditProfileClick = function handleEditProfileClick() {
|
|
1341
1451
|
return handleClick(onEditProfileClick);
|
|
1342
1452
|
};
|
|
1453
|
+
|
|
1343
1454
|
var handleCurrentOrdersClick = function handleCurrentOrdersClick() {
|
|
1344
1455
|
return handleClick(onCurrentOrdersClick);
|
|
1345
1456
|
};
|
|
1457
|
+
|
|
1346
1458
|
var handlePastOrdersClick = function handlePastOrdersClick() {
|
|
1347
1459
|
return handleClick(onPastOrdersClick);
|
|
1348
1460
|
};
|
|
1461
|
+
|
|
1349
1462
|
var handlePastSalesClick = function handlePastSalesClick() {
|
|
1350
1463
|
return handleClick(onPastSalesClick);
|
|
1351
1464
|
};
|
|
1465
|
+
|
|
1352
1466
|
var handlePaidOutClick = function handlePaidOutClick() {
|
|
1353
1467
|
return handleClick(onPaidOutClick);
|
|
1354
1468
|
};
|
|
1469
|
+
|
|
1355
1470
|
var handleSubmissionsClick = function handleSubmissionsClick() {
|
|
1356
1471
|
return handleClick(onSubmissionsClick);
|
|
1357
1472
|
};
|
|
1473
|
+
|
|
1358
1474
|
var handleAccountClick = function handleAccountClick() {
|
|
1359
1475
|
return handleClick(onAccountClick);
|
|
1360
1476
|
};
|
|
1477
|
+
|
|
1361
1478
|
var handleContactUsClick = function handleContactUsClick() {
|
|
1362
1479
|
return handleClick(onContactUsClick);
|
|
1363
1480
|
};
|
|
1481
|
+
|
|
1364
1482
|
var handleOurStoryClick = function handleOurStoryClick() {
|
|
1365
1483
|
return handleClick(onOurStoryClick);
|
|
1366
1484
|
};
|
|
1367
|
-
|
|
1485
|
+
|
|
1486
|
+
var handleBlogClick = onBlogClick ? function () {
|
|
1368
1487
|
return handleClick(onBlogClick);
|
|
1369
|
-
};
|
|
1488
|
+
} : undefined;
|
|
1370
1489
|
return /*#__PURE__*/React__default.createElement(React.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
|
|
1371
1490
|
className: "navbar navbar__mobile-wrapper"
|
|
1372
1491
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -1387,7 +1506,8 @@
|
|
|
1387
1506
|
className: "navbar__logo"
|
|
1388
1507
|
}, /*#__PURE__*/React__default.createElement("img", {
|
|
1389
1508
|
src: logoSrc,
|
|
1390
|
-
alt: "luxity-logo"
|
|
1509
|
+
alt: "luxity-logo",
|
|
1510
|
+
loading: "eager"
|
|
1391
1511
|
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
1392
1512
|
className: "navbar__icons-wrapper"
|
|
1393
1513
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -1418,18 +1538,14 @@
|
|
|
1418
1538
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
1419
1539
|
className: "navbar__product-search"
|
|
1420
1540
|
}, /*#__PURE__*/React__default.createElement("input", {
|
|
1541
|
+
ref: searchInputRef,
|
|
1421
1542
|
className: "navbar__form-input",
|
|
1422
1543
|
type: "text",
|
|
1423
1544
|
placeholder: "Search for items and designs",
|
|
1424
1545
|
value: searchValue,
|
|
1425
1546
|
onChange: handleChange,
|
|
1426
|
-
onKeyDown: handleKeyDown
|
|
1427
|
-
|
|
1428
|
-
color: "#000000",
|
|
1429
|
-
loading: searchLoading,
|
|
1430
|
-
size: 5,
|
|
1431
|
-
"aria-label": "Loading Spinner",
|
|
1432
|
-
"data-testid": "loader"
|
|
1547
|
+
onKeyDown: handleKeyDown,
|
|
1548
|
+
onFocus: handleSearchFocus
|
|
1433
1549
|
})), /*#__PURE__*/React__default.createElement("button", {
|
|
1434
1550
|
type: "button",
|
|
1435
1551
|
onClick: onSearchClick
|
|
@@ -1439,14 +1555,24 @@
|
|
|
1439
1555
|
className: "navbar__input-close-icon"
|
|
1440
1556
|
})))), /*#__PURE__*/React__default.createElement(SearchResults, {
|
|
1441
1557
|
searchValue: searchValue,
|
|
1442
|
-
searchLoading: searchLoading,
|
|
1443
1558
|
searchResults: searchResults,
|
|
1444
1559
|
onViewAll: function onViewAll() {
|
|
1445
1560
|
onSearchSubmit(searchValue);
|
|
1446
1561
|
setSearchValue('');
|
|
1562
|
+
setSearchResults({
|
|
1563
|
+
brands: [],
|
|
1564
|
+
products: []
|
|
1565
|
+
});
|
|
1566
|
+
setIsSearchFocused(false);
|
|
1447
1567
|
},
|
|
1448
1568
|
onSearchSubmit: onSearchSubmit,
|
|
1449
|
-
setSearchValue: setSearchValue
|
|
1569
|
+
setSearchValue: setSearchValue,
|
|
1570
|
+
searchResultsRef: searchResultsRef,
|
|
1571
|
+
initialSearchData: initialSearchView,
|
|
1572
|
+
isSearchFocused: isSearchFocused,
|
|
1573
|
+
setIsSearchFocused: setIsSearchFocused,
|
|
1574
|
+
currency: currency,
|
|
1575
|
+
currencySymbol: currencySymbol
|
|
1450
1576
|
}), shop && /*#__PURE__*/React__default.createElement(LuxitySideNav, {
|
|
1451
1577
|
accordionIcon: accordionIcon,
|
|
1452
1578
|
logoSrc: logoSrc,
|
|
@@ -1464,13 +1590,13 @@
|
|
|
1464
1590
|
showSideNav: showSideNav,
|
|
1465
1591
|
onMenuClick: onMenuClick,
|
|
1466
1592
|
endpoint: endpoint,
|
|
1467
|
-
menuData: menuData,
|
|
1468
1593
|
currency: currency,
|
|
1469
1594
|
currencyOptions: currencyOptions,
|
|
1470
1595
|
onCurrencyChange: onCurrencyChange,
|
|
1471
1596
|
isCurrencySelectionDisabled: isCurrencySelectionDisabled,
|
|
1472
1597
|
tooltipContent: tooltipContent,
|
|
1473
|
-
LinkComponent: LinkComponent
|
|
1598
|
+
LinkComponent: LinkComponent,
|
|
1599
|
+
categoryConfig: categoryConfig
|
|
1474
1600
|
}), app && /*#__PURE__*/React__default.createElement(LuxityAppSideNav, {
|
|
1475
1601
|
accordionIcon: accordionIcon,
|
|
1476
1602
|
closeIcon: closeIcon,
|