@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/LuxityDesktopHeader.js
CHANGED
|
@@ -8,265 +8,149 @@
|
|
|
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
|
-
s = arguments[i];
|
|
203
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
204
|
-
t[p] = s[p];
|
|
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;
|
|
244
134
|
}
|
|
245
135
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
variables: {
|
|
250
|
-
search: search,
|
|
251
|
-
limit: limit
|
|
252
|
-
}
|
|
253
|
-
};
|
|
254
|
-
};
|
|
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.");
|
|
138
|
+
}
|
|
255
139
|
|
|
256
140
|
var Dropdown = function Dropdown(_ref) {
|
|
257
141
|
var title = _ref.title,
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
142
|
+
imageSrc = _ref.imageSrc,
|
|
143
|
+
_ref$categoryElements = _ref.categoryElements,
|
|
144
|
+
categoryElements = _ref$categoryElements === void 0 ? [] : _ref$categoryElements,
|
|
145
|
+
_ref$brandElements = _ref.brandElements,
|
|
146
|
+
brandElements = _ref$brandElements === void 0 ? [] : _ref$brandElements,
|
|
147
|
+
productsUrl = _ref.productsUrl,
|
|
148
|
+
LinkComponent = _ref.LinkComponent,
|
|
149
|
+
categorySlug = _ref.categorySlug,
|
|
150
|
+
categoryTitle = _ref.categoryTitle,
|
|
151
|
+
isLoading = _ref.isLoading,
|
|
152
|
+
hasError = _ref.hasError,
|
|
153
|
+
onMenuItemClick = _ref.onMenuItemClick;
|
|
270
154
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, hasError ? /*#__PURE__*/React__default.createElement("div", {
|
|
271
155
|
className: "dropdown__errors"
|
|
272
156
|
}, "Failed to load data.") : /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -305,11 +189,11 @@
|
|
|
305
189
|
onClick: onMenuItemClick
|
|
306
190
|
}, "All ", categoryTitle)), !!brandElements.length && brandElements.map(function (brand) {
|
|
307
191
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
308
|
-
className: "dropdown__brand-element"
|
|
192
|
+
className: "dropdown__brand-element",
|
|
193
|
+
key: brand.name
|
|
309
194
|
}, /*#__PURE__*/React__default.createElement(LinkComponent, {
|
|
310
195
|
href: "".concat(productsUrl, "/").concat(categorySlug, "/").concat(brand === null || brand === void 0 ? void 0 : brand.slug),
|
|
311
196
|
className: "dropdown__element",
|
|
312
|
-
key: brand.name,
|
|
313
197
|
onClick: onMenuItemClick
|
|
314
198
|
}, brand === null || brand === void 0 ? void 0 : brand.name));
|
|
315
199
|
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -322,22 +206,25 @@
|
|
|
322
206
|
|
|
323
207
|
var DropdownLink = function DropdownLink(_ref) {
|
|
324
208
|
var title = _ref.title,
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
209
|
+
imageSrc = _ref.imageSrc,
|
|
210
|
+
categoryElements = _ref.categoryElements,
|
|
211
|
+
brandElements = _ref.brandElements,
|
|
212
|
+
productsUrl = _ref.productsUrl,
|
|
213
|
+
LinkComponent = _ref.LinkComponent,
|
|
214
|
+
categorySlug = _ref.categorySlug,
|
|
215
|
+
categoryTitle = _ref.categoryTitle,
|
|
216
|
+
isLoading = _ref.isLoading,
|
|
217
|
+
hasError = _ref.hasError;
|
|
218
|
+
|
|
334
219
|
var _useState = React.useState(false),
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
220
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
221
|
+
dropdownVisible = _useState2[0],
|
|
222
|
+
setDropdownVisible = _useState2[1];
|
|
223
|
+
|
|
338
224
|
var handleMenuItemClick = function handleMenuItemClick() {
|
|
339
225
|
setDropdownVisible(false);
|
|
340
226
|
};
|
|
227
|
+
|
|
341
228
|
return /*#__PURE__*/React__default.createElement("li", {
|
|
342
229
|
className: "navbar__link",
|
|
343
230
|
onMouseEnter: function onMouseEnter() {
|
|
@@ -369,8 +256,8 @@
|
|
|
369
256
|
|
|
370
257
|
var StoresDropdown = function StoresDropdown(_ref) {
|
|
371
258
|
var _ref$stores = _ref.stores,
|
|
372
|
-
|
|
373
|
-
|
|
259
|
+
stores = _ref$stores === void 0 ? [] : _ref$stores,
|
|
260
|
+
contactNumber = _ref.contactNumber;
|
|
374
261
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
375
262
|
className: "stores-dropdown"
|
|
376
263
|
}, !!stores.length && stores.map(function (store) {
|
|
@@ -410,89 +297,160 @@
|
|
|
410
297
|
}, contactNumber)));
|
|
411
298
|
};
|
|
412
299
|
|
|
413
|
-
var
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
300
|
+
var SearchResults = function SearchResults(_ref) {
|
|
301
|
+
var _searchResults$brands, _searchResults$produc, _searchResults$brands2, _searchResults$produc2, _initialSearchData$tr, _initialSearchData$la, _limitBrands, _limitBrands2, _initialSearchData$la2, _searchResults$produc3;
|
|
302
|
+
|
|
303
|
+
var searchValue = _ref.searchValue,
|
|
304
|
+
searchResults = _ref.searchResults,
|
|
305
|
+
onViewAll = _ref.onViewAll,
|
|
306
|
+
searchResultsRef = _ref.searchResultsRef,
|
|
307
|
+
onSearchSubmit = _ref.onSearchSubmit,
|
|
308
|
+
setSearchValue = _ref.setSearchValue,
|
|
309
|
+
initialSearchData = _ref.initialSearchData,
|
|
310
|
+
isSearchFocused = _ref.isSearchFocused,
|
|
311
|
+
setIsSearchFocused = _ref.setIsSearchFocused,
|
|
312
|
+
currency = _ref.currency,
|
|
313
|
+
currencySymbol = _ref.currencySymbol;
|
|
314
|
+
|
|
315
|
+
var _useState = React.useState(false),
|
|
316
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
317
|
+
isMobile = _useState2[0],
|
|
318
|
+
setIsMobile = _useState2[1];
|
|
319
|
+
|
|
320
|
+
React.useEffect(function () {
|
|
321
|
+
var checkIfMobile = function checkIfMobile() {
|
|
322
|
+
setIsMobile(window.innerWidth <= 1024);
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
checkIfMobile();
|
|
326
|
+
window.addEventListener('resize', checkIfMobile);
|
|
327
|
+
return function () {
|
|
328
|
+
window.removeEventListener('resize', checkIfMobile);
|
|
329
|
+
};
|
|
330
|
+
}, []);
|
|
331
|
+
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);
|
|
332
|
+
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;
|
|
333
|
+
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;
|
|
334
|
+
|
|
335
|
+
if (!hasResults && !hasInitialData) {
|
|
336
|
+
return null;
|
|
433
337
|
}
|
|
434
|
-
};
|
|
435
338
|
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
return category.name !== name;
|
|
440
|
-
})) !== null && _categories$filter !== void 0 ? _categories$filter : [];
|
|
441
|
-
};
|
|
339
|
+
if (!isSearchFocused) {
|
|
340
|
+
return null;
|
|
341
|
+
}
|
|
442
342
|
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
}, brand.name));
|
|
343
|
+
var formatPrice = function formatPrice(price) {
|
|
344
|
+
var formatter = new Intl.NumberFormat(undefined, {
|
|
345
|
+
minimumFractionDigits: 0,
|
|
346
|
+
maximumFractionDigits: 2
|
|
347
|
+
});
|
|
348
|
+
return "".concat(currencySymbol).concat(formatter.format(price));
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
var renderProductCard = function renderProductCard(product) {
|
|
352
|
+
var selectedPrice = product.prices ? product.prices.find(function (p) {
|
|
353
|
+
return p.currency === currency;
|
|
354
|
+
}) : {
|
|
355
|
+
price: product.price,
|
|
356
|
+
retail_price: product.est_retail_price
|
|
357
|
+
};
|
|
358
|
+
return /*#__PURE__*/React__default.createElement("a", {
|
|
359
|
+
key: product.link,
|
|
360
|
+
href: product.link,
|
|
361
|
+
className: "product-card"
|
|
362
|
+
}, product.featured_image && /*#__PURE__*/React__default.createElement("div", {
|
|
363
|
+
className: "product-card__image-container"
|
|
364
|
+
}, /*#__PURE__*/React__default.createElement("img", {
|
|
365
|
+
src: product.featured_image,
|
|
366
|
+
alt: product.name,
|
|
367
|
+
className: "product-card__image"
|
|
469
368
|
})), /*#__PURE__*/React__default.createElement("div", {
|
|
470
|
-
className: "
|
|
471
|
-
}, /*#__PURE__*/React__default.createElement("
|
|
472
|
-
className: "
|
|
473
|
-
}, "
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
369
|
+
className: "product-card__details"
|
|
370
|
+
}, /*#__PURE__*/React__default.createElement("h3", {
|
|
371
|
+
className: "product-card__name"
|
|
372
|
+
}, shouldShowInitialData ? /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement("span", {
|
|
373
|
+
className: "product-card__brand-name"
|
|
374
|
+
}, product.brand.toUpperCase()), ' ', product.name) : product.name), /*#__PURE__*/React__default.createElement("div", {
|
|
375
|
+
className: "product-card__info-row"
|
|
376
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
377
|
+
className: "product-card__price-group"
|
|
378
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
379
|
+
className: "product-card__price"
|
|
380
|
+
}, formatPrice(selectedPrice.price)), selectedPrice.retail_price > 1 && /*#__PURE__*/React__default.createElement("div", {
|
|
381
|
+
className: "product-card__retail-price"
|
|
382
|
+
}, "Est. Retail: ", formatPrice(selectedPrice.retail_price))), /*#__PURE__*/React__default.createElement("div", {
|
|
383
|
+
className: "product-card__condition"
|
|
384
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
385
|
+
className: "product-card__condition-label"
|
|
386
|
+
}, "Condition:"), product.condition))));
|
|
387
|
+
};
|
|
388
|
+
|
|
389
|
+
var getBrandLink = function getBrandLink(brand) {
|
|
390
|
+
return "/products/brands/".concat(brand.slug);
|
|
391
|
+
};
|
|
392
|
+
|
|
393
|
+
var limitBrands = function limitBrands(brands) {
|
|
394
|
+
if (isMobile && brands && brands.length > 4) {
|
|
395
|
+
return brands.slice(0, 4);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
return brands;
|
|
399
|
+
};
|
|
400
|
+
|
|
401
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
402
|
+
className: "search-results",
|
|
403
|
+
ref: searchResultsRef
|
|
404
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
405
|
+
className: "search-results__section"
|
|
406
|
+
}, /*#__PURE__*/React__default.createElement("h2", {
|
|
407
|
+
className: "search-results__header"
|
|
408
|
+
}, shouldShowInitialData ? 'TRENDING SEARCHES' : 'BRANDS'), /*#__PURE__*/React__default.createElement("div", {
|
|
409
|
+
className: "search-results__list"
|
|
410
|
+
}, shouldShowInitialData ? (_limitBrands = limitBrands(initialSearchData === null || initialSearchData === void 0 ? void 0 : initialSearchData.trending_brands)) === null || _limitBrands === void 0 ? void 0 : _limitBrands.map(function (brand) {
|
|
411
|
+
return /*#__PURE__*/React__default.createElement("a", {
|
|
412
|
+
key: brand.id,
|
|
413
|
+
href: getBrandLink(brand),
|
|
414
|
+
className: "search-results__item"
|
|
415
|
+
}, brand.name);
|
|
416
|
+
}) : (_limitBrands2 = limitBrands(searchResults === null || searchResults === void 0 ? void 0 : searchResults.brands)) === null || _limitBrands2 === void 0 ? void 0 : _limitBrands2.map(function (brand) {
|
|
417
|
+
return /*#__PURE__*/React__default.createElement("a", {
|
|
418
|
+
key: brand.link,
|
|
419
|
+
href: brand.link,
|
|
420
|
+
className: "search-results__item"
|
|
421
|
+
}, brand.name);
|
|
422
|
+
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
423
|
+
className: "search-results__section"
|
|
424
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
425
|
+
className: "search-results__section-header"
|
|
426
|
+
}, /*#__PURE__*/React__default.createElement("h2", {
|
|
427
|
+
className: "search-results__header"
|
|
428
|
+
}, shouldShowInitialData ? 'POPULAR' : 'TOP MATCHES'), /*#__PURE__*/React__default.createElement("button", {
|
|
429
|
+
type: "button",
|
|
430
|
+
className: "search-results__view-all-link",
|
|
431
|
+
onClick: function onClick() {
|
|
432
|
+
onViewAll();
|
|
433
|
+
}
|
|
434
|
+
}, "View all items")), /*#__PURE__*/React__default.createElement("div", {
|
|
435
|
+
className: "search-results__product-list"
|
|
436
|
+
}, 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", {
|
|
437
|
+
type: "button",
|
|
438
|
+
className: "search-results__view-all-button",
|
|
439
|
+
onClick: function onClick() {
|
|
440
|
+
onViewAll();
|
|
441
|
+
|
|
442
|
+
if (!shouldShowInitialData) {
|
|
484
443
|
onSearchSubmit(searchValue);
|
|
485
444
|
setSearchValue('');
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
|
-
return null;
|
|
445
|
+
setIsSearchFocused(false);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
}, "View all items")));
|
|
491
449
|
};
|
|
492
450
|
|
|
493
451
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
494
|
-
|
|
495
452
|
/* position relative is required for the Body element to be positioned correctly */
|
|
453
|
+
|
|
496
454
|
var relativeInlineStyle = styled.css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n"])));
|
|
497
455
|
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"])));
|
|
498
456
|
var getTopMiddleArrowAfterStyle = function getTopMiddleArrowAfterStyle(props) {
|
|
@@ -506,31 +464,40 @@
|
|
|
506
464
|
};
|
|
507
465
|
|
|
508
466
|
var _templateObject$1;
|
|
467
|
+
|
|
509
468
|
var getBodyStyle = function getBodyStyle() {
|
|
510
469
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
511
470
|
var _props$toolTipPositio = props.toolTipPosition,
|
|
512
|
-
|
|
471
|
+
toolTipPosition = _props$toolTipPositio === void 0 ? '' : _props$toolTipPositio;
|
|
472
|
+
|
|
513
473
|
switch (toolTipPosition) {
|
|
514
474
|
case 'top':
|
|
515
475
|
return topMiddleBodyStyle;
|
|
476
|
+
|
|
516
477
|
case 'bottom':
|
|
517
478
|
return getBottomMiddleBodyStyle(props);
|
|
479
|
+
|
|
518
480
|
default:
|
|
519
481
|
return null;
|
|
520
482
|
}
|
|
521
483
|
};
|
|
484
|
+
|
|
522
485
|
var getAfterStyling = function getAfterStyling() {
|
|
523
486
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
524
487
|
var toolTipPosition = props.toolTipPosition;
|
|
488
|
+
|
|
525
489
|
switch (toolTipPosition) {
|
|
526
490
|
case 'top':
|
|
527
491
|
return getTopMiddleArrowAfterStyle(props);
|
|
492
|
+
|
|
528
493
|
case 'bottom':
|
|
529
494
|
return getBottomMiddleArrowAfterStyle(props);
|
|
495
|
+
|
|
530
496
|
default:
|
|
531
497
|
return '';
|
|
532
498
|
}
|
|
533
499
|
};
|
|
500
|
+
|
|
534
501
|
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) {
|
|
535
502
|
return props.bodyWidth;
|
|
536
503
|
}, function (props) {
|
|
@@ -610,12 +577,12 @@
|
|
|
610
577
|
|
|
611
578
|
var Tooltip = function Tooltip(_ref) {
|
|
612
579
|
var children = _ref.children,
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
580
|
+
toolTipText = _ref.toolTipText,
|
|
581
|
+
toolTipPosition = _ref.toolTipPosition,
|
|
582
|
+
bodyWidth = _ref.bodyWidth,
|
|
583
|
+
apexWidth = _ref.apexWidth,
|
|
584
|
+
containerClassName = _ref.containerClassName,
|
|
585
|
+
bodyClassName = _ref.bodyClassName;
|
|
619
586
|
return /*#__PURE__*/React__default.createElement(Container, {
|
|
620
587
|
className: containerClassName
|
|
621
588
|
}, children, /*#__PURE__*/React__default.createElement(Body, {
|
|
@@ -625,6 +592,7 @@
|
|
|
625
592
|
className: bodyClassName
|
|
626
593
|
}, toolTipText));
|
|
627
594
|
};
|
|
595
|
+
|
|
628
596
|
Tooltip.defaultProps = {
|
|
629
597
|
children: null,
|
|
630
598
|
toolTipText: '',
|
|
@@ -638,21 +606,25 @@
|
|
|
638
606
|
|
|
639
607
|
var CurrencySelect = function CurrencySelect(_ref) {
|
|
640
608
|
var currency = _ref.currency,
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
609
|
+
currencyOptions = _ref.currencyOptions,
|
|
610
|
+
onCurrencyChange = _ref.onCurrencyChange,
|
|
611
|
+
_ref$isCurrencySelect = _ref.isCurrencySelectionDisabled,
|
|
612
|
+
isCurrencySelectionDisabled = _ref$isCurrencySelect === void 0 ? false : _ref$isCurrencySelect,
|
|
613
|
+
_ref$tooltipContent = _ref.tooltipContent,
|
|
614
|
+
tooltipContent = _ref$tooltipContent === void 0 ? '' : _ref$tooltipContent;
|
|
615
|
+
|
|
647
616
|
if (!currencyOptions || currencyOptions.length === 0) {
|
|
648
617
|
return null;
|
|
649
618
|
}
|
|
619
|
+
|
|
650
620
|
var selectedOption = currencyOptions.find(function (opt) {
|
|
651
621
|
return opt.value === currency;
|
|
652
622
|
});
|
|
623
|
+
|
|
653
624
|
if (!selectedOption) {
|
|
654
625
|
return null;
|
|
655
626
|
}
|
|
627
|
+
|
|
656
628
|
return /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
657
629
|
toolTipText: isCurrencySelectionDisabled ? tooltipContent : '',
|
|
658
630
|
toolTipPosition: "bottom",
|
|
@@ -679,151 +651,323 @@
|
|
|
679
651
|
}))));
|
|
680
652
|
};
|
|
681
653
|
|
|
682
|
-
var
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
onInterestClick = _ref.onInterestClick,
|
|
700
|
-
onCartClick = _ref.onCartClick,
|
|
701
|
-
onAccountClick = _ref.onAccountClick,
|
|
702
|
-
inputSearchIcon = _ref.inputSearchIcon,
|
|
703
|
-
onSearch = _ref.onSearch,
|
|
704
|
-
onSellToUsClick = _ref.onSellToUsClick,
|
|
705
|
-
contactUsLink = _ref.contactUsLink,
|
|
706
|
-
ourStoryLink = _ref.ourStoryLink,
|
|
707
|
-
onLogoClick = _ref.onLogoClick,
|
|
708
|
-
endpoint = _ref.endpoint,
|
|
709
|
-
menuData = _ref.menuData,
|
|
710
|
-
onSearchSubmit = _ref.onSearchSubmit,
|
|
711
|
-
onProductIdsReceived = _ref.onProductIdsReceived,
|
|
712
|
-
currency = _ref.currency,
|
|
713
|
-
currencyOptions = _ref.currencyOptions,
|
|
714
|
-
onCurrencyChange = _ref.onCurrencyChange,
|
|
715
|
-
isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
|
|
716
|
-
tooltipContent = _ref.tooltipContent,
|
|
717
|
-
earlyAccessIcon = _ref.earlyAccessIcon,
|
|
718
|
-
exclusiveIcon = _ref.exclusiveIcon,
|
|
719
|
-
name = _ref.name,
|
|
720
|
-
isEarlyAccess = _ref.isEarlyAccess,
|
|
721
|
-
isExclusive = _ref.isExclusive,
|
|
722
|
-
shop = _ref.shop,
|
|
723
|
-
app = _ref.app;
|
|
724
|
-
var _useState = React.useState(''),
|
|
725
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
726
|
-
searchValue = _useState2[0],
|
|
727
|
-
setSearchValue = _useState2[1];
|
|
728
|
-
var _useState3 = React.useState(false),
|
|
729
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
730
|
-
loading = _useState4[0],
|
|
731
|
-
setLoading = _useState4[1];
|
|
732
|
-
var _useState5 = React.useState({
|
|
733
|
-
latestArrivals: [],
|
|
734
|
-
bags: [],
|
|
735
|
-
shoes: [],
|
|
736
|
-
clothing: [],
|
|
737
|
-
accessories: [],
|
|
738
|
-
watches: [],
|
|
739
|
-
accessoriesCategories: [],
|
|
740
|
-
apparelStyles: []
|
|
741
|
-
}),
|
|
742
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
743
|
-
dropdownData = _useState6[0],
|
|
744
|
-
setDropdownData = _useState6[1];
|
|
745
|
-
var _useState7 = React.useState(false),
|
|
746
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
747
|
-
hasError = _useState8[0],
|
|
748
|
-
setHasError = _useState8[1];
|
|
749
|
-
var _useState9 = React.useState(false),
|
|
750
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
751
|
-
searchLoading = _useState10[0],
|
|
752
|
-
setSearchLoading = _useState10[1];
|
|
753
|
-
var _useState11 = React.useState({
|
|
754
|
-
brands: [],
|
|
755
|
-
products: []
|
|
756
|
-
}),
|
|
757
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
758
|
-
searchResults = _useState12[0],
|
|
759
|
-
setSearchResults = _useState12[1];
|
|
760
|
-
var searchResultsRef = React.useRef(null);
|
|
761
|
-
var debounce = function debounce(func, wait) {
|
|
654
|
+
var searchProducts = function searchProducts(search, limit, currencyCode) {
|
|
655
|
+
return {
|
|
656
|
+
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 ",
|
|
657
|
+
variables: {
|
|
658
|
+
search: search,
|
|
659
|
+
limit: limit,
|
|
660
|
+
currencyCode: currencyCode
|
|
661
|
+
}
|
|
662
|
+
};
|
|
663
|
+
};
|
|
664
|
+
|
|
665
|
+
var useSearch = function useSearch(_ref) {
|
|
666
|
+
var endpoint = _ref.endpoint,
|
|
667
|
+
onProductIdsReceived = _ref.onProductIdsReceived,
|
|
668
|
+
currency = _ref.currency;
|
|
669
|
+
var currentSearchRequestToken = React.useRef(null);
|
|
670
|
+
var debounce = React.useCallback(function (func, wait) {
|
|
762
671
|
var timeout;
|
|
763
672
|
return function executedFunction() {
|
|
764
673
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
765
674
|
args[_key] = arguments[_key];
|
|
766
675
|
}
|
|
676
|
+
|
|
767
677
|
var later = function later() {
|
|
768
678
|
clearTimeout(timeout);
|
|
769
679
|
func.apply(void 0, args);
|
|
770
680
|
};
|
|
681
|
+
|
|
771
682
|
clearTimeout(timeout);
|
|
772
683
|
timeout = setTimeout(later, wait);
|
|
773
684
|
};
|
|
774
|
-
};
|
|
775
|
-
var
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
685
|
+
}, []);
|
|
686
|
+
var fetchInitialSearchData = React.useCallback(function (initialSearchDataUrl, setInitialSearchView) {
|
|
687
|
+
axios.get("".concat(initialSearchDataUrl)).then(function (_ref2) {
|
|
688
|
+
var data = _ref2.data;
|
|
689
|
+
setInitialSearchView({
|
|
690
|
+
trending_brands: data.trending_brands,
|
|
691
|
+
latest_products: data.latest_products
|
|
692
|
+
});
|
|
782
693
|
}).catch(function () {
|
|
783
|
-
|
|
694
|
+
setInitialSearchView({
|
|
695
|
+
trending_brands: [],
|
|
696
|
+
latest_products: []
|
|
697
|
+
});
|
|
784
698
|
});
|
|
785
|
-
},
|
|
786
|
-
var
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
699
|
+
}, []);
|
|
700
|
+
var performSearch = React.useCallback(function (searchQuery, setSearchResults) {
|
|
701
|
+
if (!searchQuery || searchQuery.trim() === '') {
|
|
702
|
+
setSearchResults({
|
|
703
|
+
brands: [],
|
|
704
|
+
products: [],
|
|
705
|
+
luxity_product_ids: []
|
|
706
|
+
});
|
|
707
|
+
return;
|
|
708
|
+
} // Cancel any ongoing search request to prevent race conditions
|
|
709
|
+
|
|
710
|
+
|
|
711
|
+
if (currentSearchRequestToken.current) {
|
|
712
|
+
currentSearchRequestToken.current.cancel();
|
|
713
|
+
} // Create a new token for this specific search request
|
|
714
|
+
|
|
715
|
+
|
|
716
|
+
var newSearchToken = axios.CancelToken.source();
|
|
717
|
+
currentSearchRequestToken.current = newSearchToken;
|
|
718
|
+
axios.post(endpoint, searchProducts(searchQuery, 3, currency), {
|
|
719
|
+
cancelToken: newSearchToken.token
|
|
720
|
+
}).then(function (response) {
|
|
721
|
+
if (currentSearchRequestToken.current === newSearchToken) {
|
|
722
|
+
var searchResults = response.data.data.luxity_products_serach_results;
|
|
723
|
+
setSearchResults(searchResults);
|
|
724
|
+
|
|
725
|
+
if (searchResults && searchResults.luxity_product_ids) {
|
|
726
|
+
onProductIdsReceived(searchResults.luxity_product_ids);
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
currentSearchRequestToken.current = null;
|
|
730
|
+
}
|
|
731
|
+
}).catch(function (error) {
|
|
732
|
+
if (!axios.isCancel(error)) {
|
|
733
|
+
setSearchResults({
|
|
734
|
+
brands: [],
|
|
735
|
+
products: [],
|
|
736
|
+
luxity_product_ids: []
|
|
737
|
+
});
|
|
738
|
+
currentSearchRequestToken.current = null;
|
|
739
|
+
}
|
|
791
740
|
});
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
741
|
+
}, [endpoint, currency, onProductIdsReceived]);
|
|
742
|
+
var debouncedSearch = React.useMemo(function () {
|
|
743
|
+
return debounce(function (searchQuery, setSearchResults) {
|
|
744
|
+
return performSearch(searchQuery, setSearchResults);
|
|
745
|
+
}, 500);
|
|
746
|
+
}, [debounce, performSearch]);
|
|
747
|
+
var createDebouncedSearch = React.useCallback(function (setSearchResults) {
|
|
748
|
+
return function (searchQuery) {
|
|
749
|
+
return debouncedSearch(searchQuery, setSearchResults);
|
|
750
|
+
};
|
|
751
|
+
}, [debouncedSearch]);
|
|
752
|
+
var createImmediateSearch = React.useCallback(function (setSearchValue, setSearchResults, onSearchSubmit) {
|
|
753
|
+
return function (searchQuery) {
|
|
754
|
+
/*
|
|
755
|
+
* Cancel any pending search request when immediate search is performed
|
|
756
|
+
* Immediate search is when the user types a search query and presses enter
|
|
757
|
+
*/
|
|
758
|
+
if (currentSearchRequestToken.current) {
|
|
759
|
+
currentSearchRequestToken.current.cancel();
|
|
760
|
+
currentSearchRequestToken.current = null;
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
setSearchValue('');
|
|
800
764
|
setSearchResults({
|
|
801
765
|
brands: [],
|
|
802
766
|
products: []
|
|
803
767
|
});
|
|
804
|
-
|
|
768
|
+
onSearchSubmit(searchQuery);
|
|
769
|
+
};
|
|
770
|
+
}, []);
|
|
771
|
+
return {
|
|
772
|
+
fetchInitialSearchData: fetchInitialSearchData,
|
|
773
|
+
createDebouncedSearch: createDebouncedSearch,
|
|
774
|
+
createImmediateSearch: createImmediateSearch
|
|
805
775
|
};
|
|
776
|
+
};
|
|
777
|
+
|
|
778
|
+
var useSearchClickOutside = function useSearchClickOutside(ref, searchResults, setCachedResults, setIsSearchFocused, setSearchResults) {
|
|
806
779
|
React.useEffect(function () {
|
|
807
780
|
var handleClickOutside = function handleClickOutside(event) {
|
|
808
|
-
if (
|
|
809
|
-
|
|
781
|
+
if (ref.current && !ref.current.contains(event.target)) {
|
|
782
|
+
setCachedResults(searchResults);
|
|
783
|
+
setIsSearchFocused(false);
|
|
784
|
+
setSearchResults({
|
|
785
|
+
brands: [],
|
|
786
|
+
products: []
|
|
787
|
+
});
|
|
810
788
|
}
|
|
811
789
|
};
|
|
790
|
+
|
|
812
791
|
document.addEventListener('mousedown', handleClickOutside);
|
|
813
792
|
return function () {
|
|
814
793
|
document.removeEventListener('mousedown', handleClickOutside);
|
|
815
794
|
};
|
|
816
|
-
}, []);
|
|
817
|
-
|
|
795
|
+
}, [ref, searchResults, setCachedResults, setIsSearchFocused, setSearchResults]);
|
|
796
|
+
};
|
|
797
|
+
var useSearchInputChange = function useSearchInputChange(setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults) {
|
|
798
|
+
return React.useCallback(function (event) {
|
|
799
|
+
var value = event.target.value;
|
|
800
|
+
setSearchValue(value);
|
|
801
|
+
setIsSearchFocused(true);
|
|
802
|
+
|
|
803
|
+
if (value.trim().length >= 3) {
|
|
804
|
+
debouncedSearch(value);
|
|
805
|
+
} else {
|
|
806
|
+
setSearchResults({
|
|
807
|
+
brands: [],
|
|
808
|
+
products: []
|
|
809
|
+
});
|
|
810
|
+
setCachedResults({
|
|
811
|
+
brands: [],
|
|
812
|
+
products: []
|
|
813
|
+
});
|
|
814
|
+
}
|
|
815
|
+
}, [setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults]);
|
|
816
|
+
};
|
|
817
|
+
var useSearchInputFocus = function useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults) {
|
|
818
|
+
var handleSearchClick = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;
|
|
819
|
+
return React.useCallback(function () {
|
|
820
|
+
setIsSearchFocused(true);
|
|
821
|
+
|
|
822
|
+
if (typeof handleSearchClick === 'function') {
|
|
823
|
+
handleSearchClick();
|
|
824
|
+
} else if (searchValue.trim().length >= 3) {
|
|
825
|
+
setSearchResults(cachedResults);
|
|
826
|
+
}
|
|
827
|
+
}, [searchValue, setIsSearchFocused, cachedResults, setSearchResults, handleSearchClick]);
|
|
828
|
+
};
|
|
829
|
+
var useSearchInputKeyDown = function useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused) {
|
|
830
|
+
var setSearchValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
831
|
+
return React.useCallback(function (event) {
|
|
818
832
|
if (event.key === 'Enter') {
|
|
819
833
|
event.preventDefault();
|
|
834
|
+
|
|
820
835
|
if (searchValue.trim().length >= 3) {
|
|
821
836
|
immediateSearch(searchValue);
|
|
822
837
|
}
|
|
823
|
-
|
|
838
|
+
|
|
839
|
+
setIsSearchFocused(false);
|
|
840
|
+
} else if (event.key === 'Escape' && setSearchValue) {
|
|
824
841
|
setSearchValue('');
|
|
842
|
+
setIsSearchFocused(false);
|
|
825
843
|
}
|
|
844
|
+
}, [searchValue, immediateSearch, setIsSearchFocused, setSearchValue]);
|
|
845
|
+
};
|
|
846
|
+
|
|
847
|
+
var removeCategoryByName = function removeCategoryByName(categories, name) {
|
|
848
|
+
var _categories$filter;
|
|
849
|
+
|
|
850
|
+
return (_categories$filter = categories === null || categories === void 0 ? void 0 : categories.filter(function (category) {
|
|
851
|
+
return category.name.toLowerCase() !== name.toLowerCase();
|
|
852
|
+
})) !== null && _categories$filter !== void 0 ? _categories$filter : [];
|
|
853
|
+
};
|
|
854
|
+
|
|
855
|
+
var LuxityDesktopHeader = function LuxityDesktopHeader(_ref) {
|
|
856
|
+
var accountIcon = _ref.accountIcon,
|
|
857
|
+
cartIcon = _ref.cartIcon,
|
|
858
|
+
interestIcon = _ref.interestIcon,
|
|
859
|
+
cartCount = _ref.cartCount,
|
|
860
|
+
logoSrc = _ref.logoSrc,
|
|
861
|
+
categoryElements = _ref.categoryElements,
|
|
862
|
+
stores = _ref.stores,
|
|
863
|
+
contactNumber = _ref.contactNumber,
|
|
864
|
+
productsUrl = _ref.productsUrl,
|
|
865
|
+
LinkComponent = _ref.LinkComponent,
|
|
866
|
+
onInterestClick = _ref.onInterestClick,
|
|
867
|
+
onCartClick = _ref.onCartClick,
|
|
868
|
+
onAccountClick = _ref.onAccountClick,
|
|
869
|
+
inputSearchIcon = _ref.inputSearchIcon,
|
|
870
|
+
onSellToUsClick = _ref.onSellToUsClick,
|
|
871
|
+
contactUsLink = _ref.contactUsLink,
|
|
872
|
+
ourStoryLink = _ref.ourStoryLink,
|
|
873
|
+
onLogoClick = _ref.onLogoClick,
|
|
874
|
+
endpoint = _ref.endpoint,
|
|
875
|
+
initialSearchData = _ref.initialSearchData,
|
|
876
|
+
onSearchSubmit = _ref.onSearchSubmit,
|
|
877
|
+
onSearchClick = _ref.onSearchClick,
|
|
878
|
+
onProductIdsReceived = _ref.onProductIdsReceived,
|
|
879
|
+
currency = _ref.currency,
|
|
880
|
+
currencySymbol = _ref.currencySymbol,
|
|
881
|
+
currencyOptions = _ref.currencyOptions,
|
|
882
|
+
onCurrencyChange = _ref.onCurrencyChange,
|
|
883
|
+
isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
|
|
884
|
+
tooltipContent = _ref.tooltipContent,
|
|
885
|
+
vipIcon = _ref.vipIcon,
|
|
886
|
+
name = _ref.name,
|
|
887
|
+
isVip = _ref.isVip,
|
|
888
|
+
shop = _ref.shop,
|
|
889
|
+
app = _ref.app,
|
|
890
|
+
categoryConfig = _ref.categoryConfig;
|
|
891
|
+
|
|
892
|
+
var _useSearch = useSearch({
|
|
893
|
+
endpoint: endpoint,
|
|
894
|
+
onProductIdsReceived: onProductIdsReceived,
|
|
895
|
+
currency: currency
|
|
896
|
+
}),
|
|
897
|
+
fetchInitialSearchData = _useSearch.fetchInitialSearchData,
|
|
898
|
+
createDebouncedSearch = _useSearch.createDebouncedSearch,
|
|
899
|
+
createImmediateSearch = _useSearch.createImmediateSearch;
|
|
900
|
+
|
|
901
|
+
var _useState = React.useState(''),
|
|
902
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
903
|
+
searchValue = _useState2[0],
|
|
904
|
+
setSearchValue = _useState2[1];
|
|
905
|
+
|
|
906
|
+
var _useState3 = React.useState(false),
|
|
907
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
908
|
+
loading = _useState4[0],
|
|
909
|
+
setLoading = _useState4[1];
|
|
910
|
+
|
|
911
|
+
var _useState5 = React.useState(false),
|
|
912
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
913
|
+
isSearchFocused = _useState6[0],
|
|
914
|
+
setIsSearchFocused = _useState6[1];
|
|
915
|
+
|
|
916
|
+
var _useState7 = React.useState({
|
|
917
|
+
trending_brands: [],
|
|
918
|
+
latest_products: []
|
|
919
|
+
}),
|
|
920
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
921
|
+
initialSearchView = _useState8[0],
|
|
922
|
+
setInitialSearchView = _useState8[1];
|
|
923
|
+
|
|
924
|
+
var _useState9 = React.useState({}),
|
|
925
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
926
|
+
dropdownData = _useState10[0],
|
|
927
|
+
setDropdownData = _useState10[1];
|
|
928
|
+
|
|
929
|
+
var _useState11 = React.useState(false),
|
|
930
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
931
|
+
hasError = _useState12[0],
|
|
932
|
+
setHasError = _useState12[1];
|
|
933
|
+
|
|
934
|
+
var _useState13 = React.useState({
|
|
935
|
+
brands: [],
|
|
936
|
+
products: []
|
|
937
|
+
}),
|
|
938
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
939
|
+
searchResults = _useState14[0],
|
|
940
|
+
setSearchResults = _useState14[1];
|
|
941
|
+
|
|
942
|
+
var _useState15 = React.useState({
|
|
943
|
+
brands: [],
|
|
944
|
+
products: []
|
|
945
|
+
}),
|
|
946
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
947
|
+
cachedResults = _useState16[0],
|
|
948
|
+
setCachedResults = _useState16[1];
|
|
949
|
+
|
|
950
|
+
var searchResultsRef = React.useRef(null);
|
|
951
|
+
var debouncedSearch = createDebouncedSearch(function (results) {
|
|
952
|
+
setSearchResults(results);
|
|
953
|
+
setCachedResults(results);
|
|
954
|
+
});
|
|
955
|
+
var immediateSearch = createImmediateSearch(setSearchValue, setSearchResults, onSearchSubmit);
|
|
956
|
+
var handleChange = useSearchInputChange(setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults);
|
|
957
|
+
useSearchClickOutside(searchResultsRef, searchResults, setCachedResults, setIsSearchFocused, setSearchResults);
|
|
958
|
+
|
|
959
|
+
var handleSearchClick = function handleSearchClick() {
|
|
960
|
+
if (typeof onSearchClick === 'function') {
|
|
961
|
+
onSearchClick();
|
|
962
|
+
return;
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
handleSearchFocus();
|
|
826
966
|
};
|
|
967
|
+
|
|
968
|
+
var handleSearchFocus = useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults, onSearchClick);
|
|
969
|
+
var handleKeyDown = useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused);
|
|
970
|
+
|
|
827
971
|
function addCategoryToElements(elements, categoryName) {
|
|
828
972
|
return elements.map(function (element) {
|
|
829
973
|
return _objectSpread2(_objectSpread2({}, element), {}, {
|
|
@@ -831,32 +975,67 @@
|
|
|
831
975
|
});
|
|
832
976
|
});
|
|
833
977
|
}
|
|
978
|
+
|
|
834
979
|
React.useMemo(function () {
|
|
835
980
|
setLoading(true);
|
|
836
|
-
axios.get("".concat(menuData)).then(function (_ref2) {
|
|
981
|
+
axios.get("".concat(categoryConfig.menuData)).then(function (_ref2) {
|
|
837
982
|
var data = _ref2.data;
|
|
838
983
|
setLoading(false);
|
|
839
|
-
setDropdownData(
|
|
840
|
-
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
841
|
-
latestArrivals: data.latest_arrivals,
|
|
842
|
-
bags: data.bags,
|
|
843
|
-
shoes: data.shoes,
|
|
844
|
-
apparel: data.apparel,
|
|
845
|
-
accessories: data.accessories,
|
|
846
|
-
watches: data.watches,
|
|
847
|
-
accessoriesCategories: data.accessories_categories,
|
|
848
|
-
apparelStyles: data.apparel_styles
|
|
849
|
-
});
|
|
850
|
-
});
|
|
984
|
+
setDropdownData(data);
|
|
851
985
|
}).catch(function () {
|
|
852
986
|
return setHasError(true);
|
|
853
987
|
});
|
|
854
|
-
}, [menuData]);
|
|
855
|
-
|
|
856
|
-
if (
|
|
988
|
+
}, [categoryConfig.menuData]);
|
|
989
|
+
React.useMemo(function () {
|
|
990
|
+
if (!initialSearchData) {
|
|
991
|
+
return;
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
fetchInitialSearchData(initialSearchData, setInitialSearchView);
|
|
995
|
+
}, [initialSearchData, fetchInitialSearchData]);
|
|
996
|
+
|
|
997
|
+
var renderDropdownLinks = function renderDropdownLinks() {
|
|
998
|
+
return categoryConfig.categories.map(function (category) {
|
|
999
|
+
var title = category.title,
|
|
1000
|
+
imageSrc = category.imageSrc,
|
|
1001
|
+
categorySlug = category.categorySlug,
|
|
1002
|
+
categoryName = category.categoryName,
|
|
1003
|
+
elementsKey = category.elementsKey,
|
|
1004
|
+
subCategoryElementsKey = category.subCategoryElementsKey,
|
|
1005
|
+
styleElementsKey = category.styleElementsKey;
|
|
1006
|
+
var categoryElementsProcessed = categoryElements;
|
|
1007
|
+
|
|
1008
|
+
if (subCategoryElementsKey && dropdownData[subCategoryElementsKey]) {
|
|
1009
|
+
// show subcategory elements
|
|
1010
|
+
categoryElementsProcessed = removeCategoryByName(dropdownData[subCategoryElementsKey], categoryName);
|
|
1011
|
+
} else if (styleElementsKey && dropdownData[styleElementsKey]) {
|
|
1012
|
+
categoryElementsProcessed = addCategoryToElements(dropdownData[styleElementsKey], categorySlug);
|
|
1013
|
+
} else {
|
|
1014
|
+
categoryElementsProcessed = addCategoryToElements(categoryElementsProcessed, categorySlug);
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
return /*#__PURE__*/React__default.createElement(DropdownLink, {
|
|
1018
|
+
key: categorySlug,
|
|
1019
|
+
title: title,
|
|
1020
|
+
imageSrc: imageSrc,
|
|
1021
|
+
categoryElements: categoryElementsProcessed,
|
|
1022
|
+
brandElements: dropdownData[elementsKey] || [],
|
|
1023
|
+
productsUrl: productsUrl,
|
|
1024
|
+
categorySlug: categorySlug,
|
|
1025
|
+
categoryTitle: categoryName,
|
|
1026
|
+
isLoading: loading,
|
|
1027
|
+
hasError: hasError,
|
|
1028
|
+
LinkComponent: LinkComponent
|
|
1029
|
+
});
|
|
1030
|
+
});
|
|
1031
|
+
};
|
|
1032
|
+
|
|
1033
|
+
var getMarginRight = function getMarginRight(userIsVip, userName) {
|
|
1034
|
+
if (userIsVip) return '15px';
|
|
857
1035
|
if (userName) return '5px';
|
|
858
1036
|
return '18px';
|
|
859
1037
|
};
|
|
1038
|
+
|
|
860
1039
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
861
1040
|
className: "navbar"
|
|
862
1041
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -869,7 +1048,8 @@
|
|
|
869
1048
|
className: "navbar__logo"
|
|
870
1049
|
}, /*#__PURE__*/React__default.createElement("img", {
|
|
871
1050
|
src: logoSrc,
|
|
872
|
-
alt: "luxity-logo"
|
|
1051
|
+
alt: "luxity-logo",
|
|
1052
|
+
loading: "eager"
|
|
873
1053
|
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
874
1054
|
className: "navbar__section"
|
|
875
1055
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -887,93 +1067,33 @@
|
|
|
887
1067
|
value: searchValue,
|
|
888
1068
|
onChange: handleChange,
|
|
889
1069
|
onKeyDown: handleKeyDown,
|
|
890
|
-
onClick:
|
|
891
|
-
|
|
892
|
-
color: "#000000",
|
|
893
|
-
loading: searchLoading,
|
|
894
|
-
size: 5,
|
|
895
|
-
"aria-label": "Loading Spinner",
|
|
896
|
-
"data-testid": "loader"
|
|
1070
|
+
onClick: handleSearchClick,
|
|
1071
|
+
onFocus: handleSearchFocus
|
|
897
1072
|
})), /*#__PURE__*/React__default.createElement(SearchResults, {
|
|
898
1073
|
searchValue: searchValue,
|
|
899
1074
|
searchResults: searchResults,
|
|
900
1075
|
onViewAll: function onViewAll() {
|
|
901
1076
|
onSearchSubmit(searchValue);
|
|
902
1077
|
setSearchValue('');
|
|
1078
|
+
setSearchResults({
|
|
1079
|
+
brands: [],
|
|
1080
|
+
products: []
|
|
1081
|
+
});
|
|
1082
|
+
setIsSearchFocused(false);
|
|
903
1083
|
},
|
|
904
1084
|
searchResultsRef: searchResultsRef,
|
|
905
1085
|
onSearchSubmit: onSearchSubmit,
|
|
906
|
-
setSearchValue: setSearchValue
|
|
1086
|
+
setSearchValue: setSearchValue,
|
|
1087
|
+
initialSearchData: initialSearchView,
|
|
1088
|
+
isSearchFocused: isSearchFocused,
|
|
1089
|
+
setIsSearchFocused: setIsSearchFocused,
|
|
1090
|
+
currency: currency,
|
|
1091
|
+
currencySymbol: currencySymbol
|
|
907
1092
|
}), /*#__PURE__*/React__default.createElement("nav", {
|
|
908
1093
|
className: "navbar__nav-links navbar__nav-links--wrap"
|
|
909
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
categoryElements: categoryElements,
|
|
913
|
-
brandElements: dropdownData.latestArrivals,
|
|
914
|
-
productsUrl: productsUrl,
|
|
915
|
-
categorySlug: "brands",
|
|
916
|
-
categoryTitle: "Brands",
|
|
917
|
-
isLoading: loading,
|
|
918
|
-
hasError: hasError,
|
|
919
|
-
LinkComponent: LinkComponent
|
|
920
|
-
}), /*#__PURE__*/React__default.createElement(DropdownLink, {
|
|
921
|
-
title: "Bags",
|
|
922
|
-
imageSrc: bagsImage,
|
|
923
|
-
categoryElements: addCategoryToElements(categoryElements, categories.bags.slug),
|
|
924
|
-
brandElements: dropdownData.bags,
|
|
925
|
-
productsUrl: productsUrl,
|
|
926
|
-
categorySlug: categories.bags.slug,
|
|
927
|
-
categoryTitle: categories.bags.name,
|
|
928
|
-
isLoading: loading,
|
|
929
|
-
hasError: hasError,
|
|
930
|
-
LinkComponent: LinkComponent
|
|
931
|
-
}), /*#__PURE__*/React__default.createElement(DropdownLink, {
|
|
932
|
-
title: "Shoes",
|
|
933
|
-
imageSrc: shoesImage,
|
|
934
|
-
categoryElements: addCategoryToElements(categoryElements, categories.shoes.slug),
|
|
935
|
-
brandElements: dropdownData.shoes,
|
|
936
|
-
productsUrl: productsUrl,
|
|
937
|
-
categorySlug: categories.shoes.slug,
|
|
938
|
-
categoryTitle: categories.shoes.name,
|
|
939
|
-
isLoading: loading,
|
|
940
|
-
hasError: hasError,
|
|
941
|
-
LinkComponent: LinkComponent
|
|
942
|
-
}), /*#__PURE__*/React__default.createElement(DropdownLink, {
|
|
943
|
-
title: "Clothing",
|
|
944
|
-
imageSrc: clothingImage,
|
|
945
|
-
categoryElements: addCategoryToElements(dropdownData.apparelStyles, categories.clothing.slug),
|
|
946
|
-
brandElements: dropdownData.apparel,
|
|
947
|
-
productsUrl: productsUrl,
|
|
948
|
-
categorySlug: categories.clothing.slug,
|
|
949
|
-
categoryTitle: categories.clothing.name,
|
|
950
|
-
isLoading: loading,
|
|
951
|
-
hasError: hasError,
|
|
952
|
-
LinkComponent: LinkComponent
|
|
953
|
-
}), /*#__PURE__*/React__default.createElement(DropdownLink, {
|
|
954
|
-
title: "Accessories",
|
|
955
|
-
imageSrc: accessoriesImage,
|
|
956
|
-
categoryElements: removeCategoryByName(dropdownData.accessoriesCategories, 'ACCESSORIES'),
|
|
957
|
-
brandElements: dropdownData.accessories,
|
|
958
|
-
productsUrl: productsUrl,
|
|
959
|
-
categorySlug: categories.accessories.slug,
|
|
960
|
-
categoryTitle: categories.accessories.name,
|
|
961
|
-
isLoading: loading,
|
|
962
|
-
hasError: hasError,
|
|
963
|
-
LinkComponent: LinkComponent
|
|
964
|
-
}), /*#__PURE__*/React__default.createElement(DropdownLink, {
|
|
965
|
-
title: "Watches",
|
|
966
|
-
imageSrc: watchesImage,
|
|
967
|
-
categoryElements: addCategoryToElements(categoryElements, categories.watches.slug),
|
|
968
|
-
brandElements: dropdownData.watches,
|
|
969
|
-
productsUrl: productsUrl,
|
|
970
|
-
categorySlug: categories.watches.slug,
|
|
971
|
-
categoryTitle: categories.watches.name,
|
|
972
|
-
isLoading: loading,
|
|
973
|
-
hasError: hasError,
|
|
974
|
-
LinkComponent: LinkComponent
|
|
975
|
-
}), /*#__PURE__*/React__default.createElement("li", {
|
|
976
|
-
className: "navbar__link"
|
|
1094
|
+
}, renderDropdownLinks(), !!stores.length && /*#__PURE__*/React__default.createElement("li", {
|
|
1095
|
+
className: "navbar__link",
|
|
1096
|
+
key: "Stores"
|
|
977
1097
|
}, /*#__PURE__*/React__default.createElement(LinkComponent, {
|
|
978
1098
|
href: contactUsLink,
|
|
979
1099
|
className: "navbar__link-item navbar__link-item--desktop"
|
|
@@ -997,23 +1117,17 @@
|
|
|
997
1117
|
className: "navbar__icon relative flex",
|
|
998
1118
|
onClick: onAccountClick,
|
|
999
1119
|
style: {
|
|
1000
|
-
marginRight: getMarginRight(
|
|
1120
|
+
marginRight: getMarginRight(isVip, name)
|
|
1001
1121
|
}
|
|
1002
1122
|
}, /*#__PURE__*/React__default.createElement("img", {
|
|
1003
1123
|
src: accountIcon,
|
|
1004
1124
|
alt: "account-icon",
|
|
1005
1125
|
width: 20,
|
|
1006
1126
|
height: 20
|
|
1007
|
-
}),
|
|
1008
|
-
src:
|
|
1009
|
-
alt: "
|
|
1010
|
-
className: "
|
|
1011
|
-
width: 16,
|
|
1012
|
-
height: 16
|
|
1013
|
-
}), isExclusive && /*#__PURE__*/React__default.createElement("img", {
|
|
1014
|
-
src: exclusiveIcon,
|
|
1015
|
-
alt: "loyalty-icon",
|
|
1016
|
-
className: "navbar__loyalty-icon",
|
|
1127
|
+
}), isVip && /*#__PURE__*/React__default.createElement("img", {
|
|
1128
|
+
src: vipIcon,
|
|
1129
|
+
alt: "vip-icon",
|
|
1130
|
+
className: "navbar__vip-icon",
|
|
1017
1131
|
width: 16,
|
|
1018
1132
|
height: 16
|
|
1019
1133
|
})), name && /*#__PURE__*/React__default.createElement("button", {
|
|
@@ -1022,7 +1136,7 @@
|
|
|
1022
1136
|
onClick: onAccountClick
|
|
1023
1137
|
}, /*#__PURE__*/React__default.createElement("span", {
|
|
1024
1138
|
className: "text-sm"
|
|
1025
|
-
}, name))), /*#__PURE__*/React__default.createElement("button", {
|
|
1139
|
+
}, name))), onInterestClick && /*#__PURE__*/React__default.createElement("button", {
|
|
1026
1140
|
type: "button",
|
|
1027
1141
|
className: "".concat(app ? 'navbar__icon--app' : 'navbar__icon'),
|
|
1028
1142
|
onClick: onInterestClick
|