@bonlineza/luxity-lib 2.39.4 → 2.39.6

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.
Files changed (96) hide show
  1. package/Accordion.js +342 -352
  2. package/AddInterest.js +3109 -3068
  3. package/AddProductInterest.js +999 -7572
  4. package/BrandSelector.js +854 -861
  5. package/Checkbox.js +240 -250
  6. package/CheckboxButton.js +229 -236
  7. package/CommunicationPreferenceOptionsRenderer.js +560 -568
  8. package/CommunicationPreferenceSection.js +651 -659
  9. package/CommunicationPreferences.js +2394 -2402
  10. package/ConditionSelector.js +852 -859
  11. package/CountryCodeSelect.js +79 -6650
  12. package/CurrencyInputFormatter.js +86 -96
  13. package/CurrencySelect.js +219 -227
  14. package/DropdownSelector.js +212 -6821
  15. package/GALink.js +43 -51
  16. package/GenderSelector.js +355 -362
  17. package/GraphQLDropdownSelector.js +5308 -11832
  18. package/GraphQLMultiSelector.js +593 -601
  19. package/IconHeader.js +118 -126
  20. package/IconWrapper.js +17 -25
  21. package/InterestCatSelector.js +424 -389
  22. package/InterestItem.js +462 -469
  23. package/Interests.js +4719 -11243
  24. package/InterestsSubheading.js +33 -41
  25. package/InvertedTextButton.js +167 -175
  26. package/LuxityAppSideNav.js +181 -189
  27. package/LuxityDesktopHeader.js +1355 -1363
  28. package/LuxityFooter.js +2228 -2236
  29. package/LuxityGraphQLDropdownSelector.js +5395 -11919
  30. package/LuxityGraphQLMultiselector.js +778 -785
  31. package/LuxityMobileHeader.js +1786 -1794
  32. package/LuxityPageReady.js +199 -209
  33. package/LuxityProductInterestItem.js +359 -367
  34. package/LuxitySideNav.js +665 -673
  35. package/MaterialSelector.js +5430 -11954
  36. package/ModelSelector.js +5430 -11954
  37. package/NotificationDropDown.js +459 -7030
  38. package/Notify.js +20 -32
  39. package/OutlinePrimaryButton.js +134 -142
  40. package/PriceRangeSelector.js +1264 -1265
  41. package/PrimaryButton.js +129 -137
  42. package/RadioButtons.js +308 -318
  43. package/RangeSlider.js +1033 -1039
  44. package/RareStepFooter.js +257 -264
  45. package/RareStepHeader.js +801 -808
  46. package/ReactSelectWrapper.js +33 -6604
  47. package/SecondaryButton.js +144 -152
  48. package/ShoeSizeRangeSelector.js +1147 -1153
  49. package/ShoeSizeSelector.js +1146 -1154
  50. package/SimpleErrorBoundary.js +130 -138
  51. package/StyleSelector.js +854 -861
  52. package/TestComponent.js +15 -0
  53. package/TextButton.js +135 -143
  54. package/Tooltip.js +176 -184
  55. package/Tracking.js +15 -25
  56. package/WrapperButton.js +50 -58
  57. package/build/CountryCodeSelect/index.js +18 -0
  58. package/build/ReactSelectWrapper/index.js +34 -0
  59. package/build/bundle.css +1 -1
  60. package/build/bundle.js +10634 -17192
  61. package/build/constants.js +32 -43
  62. package/package.json +2 -2
  63. package/postcss.config.js +6 -0
  64. package/svg/Accessories.js +34 -42
  65. package/svg/Account.js +30 -38
  66. package/svg/Add.js +31 -39
  67. package/svg/ArrowRight.js +28 -36
  68. package/svg/Bags.js +40 -48
  69. package/svg/BurgerMenu.js +24 -32
  70. package/svg/Calendar.js +98 -106
  71. package/svg/CalendarCircled.js +100 -108
  72. package/svg/CheckCircled.js +32 -40
  73. package/svg/Close.js +29 -37
  74. package/svg/Clothing.js +36 -44
  75. package/svg/Dot.js +32 -40
  76. package/svg/Edit.js +27 -35
  77. package/svg/Eye.js +28 -36
  78. package/svg/FileAttach.js +28 -36
  79. package/svg/FileAttachCircled.js +30 -38
  80. package/svg/Jewellery.js +56 -0
  81. package/svg/LightBulb.js +58 -66
  82. package/svg/Logo.js +132 -140
  83. package/svg/LuxityMenu.js +28 -36
  84. package/svg/Minus.js +29 -37
  85. package/svg/MobileAvatar.js +28 -36
  86. package/svg/MyOrder.js +36 -44
  87. package/svg/MyPayment.js +36 -44
  88. package/svg/MyProfile.js +44 -52
  89. package/svg/MySale.js +31 -39
  90. package/svg/Notification.js +30 -38
  91. package/svg/PointerDown.js +28 -36
  92. package/svg/Search.js +27 -35
  93. package/svg/Shoes.js +37 -45
  94. package/svg/SvgWrapper.js +13 -21
  95. package/svg/Trash.js +32 -40
  96. package/svg/Watches.js +47 -55
@@ -1,1974 +1,1966 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react'), require('axios'), require('styled-components')) :
3
- typeof define === 'function' && define.amd ? define(['react', 'axios', 'styled-components'], factory) :
4
- (global = global || self, global.LuxityMobileHeader = factory(global.React, global.axios, global.styled));
5
- }(this, (function (React, axios, styled) { 'use strict';
6
-
7
- var React__default = 'default' in React ? React['default'] : React;
8
- axios = axios && Object.prototype.hasOwnProperty.call(axios, 'default') ? axios['default'] : axios;
9
- var styled__default = 'default' in styled ? styled['default'] : styled;
10
-
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);
19
- }
20
-
21
- return keys;
1
+ import React, { forwardRef, useState, useMemo, useEffect, useRef, useCallback, Fragment } from 'react';
2
+ import axios from 'axios';
3
+ import styled, { css, ThemeProvider } from 'styled-components';
4
+
5
+ function ownKeys(object, enumerableOnly) {
6
+ var keys = Object.keys(object);
7
+
8
+ if (Object.getOwnPropertySymbols) {
9
+ var symbols = Object.getOwnPropertySymbols(object);
10
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
11
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
12
+ })), keys.push.apply(keys, symbols);
22
13
  }
23
14
 
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
- });
32
- }
15
+ return keys;
16
+ }
33
17
 
34
- return target;
18
+ function _objectSpread2(target) {
19
+ for (var i = 1; i < arguments.length; i++) {
20
+ var source = null != arguments[i] ? arguments[i] : {};
21
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
22
+ _defineProperty(target, key, source[key]);
23
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
24
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
25
+ });
35
26
  }
36
27
 
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
44
- });
45
- } else {
46
- obj[key] = value;
47
- }
28
+ return target;
29
+ }
48
30
 
49
- return obj;
31
+ function _defineProperty(obj, key, value) {
32
+ if (key in obj) {
33
+ Object.defineProperty(obj, key, {
34
+ value: value,
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true
38
+ });
39
+ } else {
40
+ obj[key] = value;
50
41
  }
51
42
 
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];
43
+ return obj;
44
+ }
56
45
 
57
- for (var key in source) {
58
- if (Object.prototype.hasOwnProperty.call(source, key)) {
59
- target[key] = source[key];
60
- }
46
+ function _extends() {
47
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
48
+ for (var i = 1; i < arguments.length; i++) {
49
+ var source = arguments[i];
50
+
51
+ for (var key in source) {
52
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
53
+ target[key] = source[key];
61
54
  }
62
55
  }
56
+ }
63
57
 
64
- return target;
65
- };
66
- return _extends.apply(this, arguments);
58
+ return target;
59
+ };
60
+ return _extends.apply(this, arguments);
61
+ }
62
+
63
+ function _taggedTemplateLiteral(strings, raw) {
64
+ if (!raw) {
65
+ raw = strings.slice(0);
67
66
  }
68
67
 
69
- function _taggedTemplateLiteral(strings, raw) {
70
- if (!raw) {
71
- raw = strings.slice(0);
68
+ return Object.freeze(Object.defineProperties(strings, {
69
+ raw: {
70
+ value: Object.freeze(raw)
72
71
  }
72
+ }));
73
+ }
73
74
 
74
- return Object.freeze(Object.defineProperties(strings, {
75
- raw: {
76
- value: Object.freeze(raw)
77
- }
78
- }));
79
- }
75
+ function _slicedToArray(arr, i) {
76
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
77
+ }
80
78
 
81
- function _slicedToArray(arr, i) {
82
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
83
- }
79
+ function _toConsumableArray(arr) {
80
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
81
+ }
84
82
 
85
- function _toConsumableArray(arr) {
86
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
87
- }
83
+ function _arrayWithoutHoles(arr) {
84
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
85
+ }
88
86
 
89
- function _arrayWithoutHoles(arr) {
90
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
91
- }
87
+ function _arrayWithHoles(arr) {
88
+ if (Array.isArray(arr)) return arr;
89
+ }
92
90
 
93
- function _arrayWithHoles(arr) {
94
- if (Array.isArray(arr)) return arr;
95
- }
91
+ function _iterableToArray(iter) {
92
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
93
+ }
96
94
 
97
- function _iterableToArray(iter) {
98
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
99
- }
95
+ function _iterableToArrayLimit(arr, i) {
96
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
100
97
 
101
- function _iterableToArrayLimit(arr, i) {
102
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
98
+ if (_i == null) return;
99
+ var _arr = [];
100
+ var _n = true;
101
+ var _d = false;
103
102
 
104
- if (_i == null) return;
105
- var _arr = [];
106
- var _n = true;
107
- var _d = false;
103
+ var _s, _e;
108
104
 
109
- var _s, _e;
105
+ try {
106
+ for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
107
+ _arr.push(_s.value);
110
108
 
109
+ if (i && _arr.length === i) break;
110
+ }
111
+ } catch (err) {
112
+ _d = true;
113
+ _e = err;
114
+ } finally {
111
115
  try {
112
- for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
113
- _arr.push(_s.value);
114
-
115
- if (i && _arr.length === i) break;
116
- }
117
- } catch (err) {
118
- _d = true;
119
- _e = err;
116
+ if (!_n && _i["return"] != null) _i["return"]();
120
117
  } finally {
121
- try {
122
- if (!_n && _i["return"] != null) _i["return"]();
123
- } finally {
124
- if (_d) throw _e;
125
- }
118
+ if (_d) throw _e;
126
119
  }
127
-
128
- return _arr;
129
- }
130
-
131
- function _unsupportedIterableToArray(o, minLen) {
132
- if (!o) return;
133
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
134
- var n = Object.prototype.toString.call(o).slice(8, -1);
135
- if (n === "Object" && o.constructor) n = o.constructor.name;
136
- if (n === "Map" || n === "Set") return Array.from(o);
137
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
138
- }
139
-
140
- function _arrayLikeToArray(arr, len) {
141
- if (len == null || len > arr.length) len = arr.length;
142
-
143
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
144
-
145
- return arr2;
146
- }
147
-
148
- function _nonIterableSpread() {
149
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
150
- }
151
-
152
- function _nonIterableRest() {
153
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
154
120
  }
155
121
 
156
- var LuxityAppSideNav = function LuxityAppSideNav(_ref) {
157
- var closeIcon = _ref.closeIcon,
158
- accountIcon = _ref.accountIcon,
159
- orderIcon = _ref.orderIcon,
160
- saleIcon = _ref.saleIcon,
161
- onDashboardClick = _ref.onDashboardClick,
162
- onLogoutClick = _ref.onLogoutClick,
163
- bugReportLink = _ref.bugReportLink,
164
- onLuxityShopClick = _ref.onLuxityShopClick,
165
- onInterestClick = _ref.onInterestClick,
166
- onAddressClick = _ref.onAddressClick,
167
- onCouponsClick = _ref.onCouponsClick,
168
- onEditProfileClick = _ref.onEditProfileClick,
169
- onCurrentOrdersClick = _ref.onCurrentOrdersClick,
170
- onPastOrdersClick = _ref.onPastOrdersClick,
171
- onSubmissionsClick = _ref.onSubmissionsClick,
172
- onPastSalesClick = _ref.onPastSalesClick,
173
- onPaidOutClick = _ref.onPaidOutClick,
174
- showSideNav = _ref.showSideNav,
175
- onMenuClick = _ref.onMenuClick;
176
-
177
- var onCloseSideNav = function onCloseSideNav(e) {
178
- onMenuClick();
179
-
180
- if (e.key === 'Enter') {
181
- e.preventDefault();
182
- }
183
- };
184
-
185
- return /*#__PURE__*/React__default.createElement("div", {
186
- className: "side-nav"
187
- }, /*#__PURE__*/React__default.createElement("div", {
188
- role: "button",
189
- tabIndex: 0,
190
- className: "side-nav__overlay ".concat(showSideNav ? 'side-nav__overlay--visible' : 'side-nav__overlay--hidden', " "),
191
- onClick: onCloseSideNav,
192
- onKeyDown: onCloseSideNav
193
- }), /*#__PURE__*/React__default.createElement("div", {
194
- className: "side-nav__content ".concat(showSideNav ? 'side-nav__content--open' : 'side-nav__content--closed')
195
- }, /*#__PURE__*/React__default.createElement("button", {
196
- type: "button",
197
- onClick: onMenuClick,
198
- className: "side-nav__icon-container"
199
- }, /*#__PURE__*/React__default.createElement("img", {
200
- src: closeIcon,
201
- alt: "close-icon",
202
- className: "side-nav__close-icon"
203
- })), /*#__PURE__*/React__default.createElement("div", {
204
- className: "side-nav__menu-items-wrapper"
205
- }, /*#__PURE__*/React__default.createElement("div", {
206
- className: "side-nav__menu-item"
207
- }, /*#__PURE__*/React__default.createElement("button", {
208
- type: "button",
209
- className: "side-nav__menu-title-wrapper"
210
- }, /*#__PURE__*/React__default.createElement("span", {
211
- className: "side-nav__menu-title"
212
- }, /*#__PURE__*/React__default.createElement("img", {
213
- src: accountIcon,
214
- alt: "close-icon",
215
- className: "side-nav__menu-icon"
216
- }), "Account"))), onInterestClick && /*#__PURE__*/React__default.createElement("div", {
217
- className: "side-nav__menu-item"
218
- }, /*#__PURE__*/React__default.createElement("button", {
219
- type: "button",
220
- className: "side-nav__menu-title-wrapper",
221
- onClick: onInterestClick
222
- }, /*#__PURE__*/React__default.createElement("span", {
223
- className: "side-nav__menu-title"
224
- }, "Interests"))), /*#__PURE__*/React__default.createElement("div", {
225
- className: "side-nav__menu-item"
226
- }, /*#__PURE__*/React__default.createElement("button", {
227
- type: "button",
228
- className: "side-nav__menu-title-wrapper",
229
- onClick: onAddressClick
230
- }, /*#__PURE__*/React__default.createElement("span", {
231
- className: "side-nav__menu-title"
232
- }, "Addresses"))), /*#__PURE__*/React__default.createElement("div", {
233
- className: "side-nav__menu-item"
234
- }, /*#__PURE__*/React__default.createElement("button", {
235
- type: "button",
236
- className: "side-nav__menu-title-wrapper",
237
- onClick: onCouponsClick
238
- }, /*#__PURE__*/React__default.createElement("span", {
239
- className: "side-nav__menu-title"
240
- }, "Coupons"))), /*#__PURE__*/React__default.createElement("div", {
241
- className: "side-nav__menu-item"
242
- }, /*#__PURE__*/React__default.createElement("button", {
243
- type: "button",
244
- className: "side-nav__menu-title-wrapper",
245
- onClick: onEditProfileClick
246
- }, /*#__PURE__*/React__default.createElement("span", {
247
- className: "side-nav__menu-title"
248
- }, "Edit Profile"))), /*#__PURE__*/React__default.createElement("div", {
249
- className: "side-nav__menu-divider"
250
- }, " "), /*#__PURE__*/React__default.createElement("div", {
251
- className: "side-nav__menu-item"
252
- }, /*#__PURE__*/React__default.createElement("button", {
253
- type: "button",
254
- className: "side-nav__menu-title-wrapper"
255
- }, /*#__PURE__*/React__default.createElement("span", {
256
- className: "side-nav__menu-title"
257
- }, /*#__PURE__*/React__default.createElement("img", {
258
- src: orderIcon,
259
- alt: "close-icon",
260
- className: "side-nav__menu-icon"
261
- }), "Orders"))), /*#__PURE__*/React__default.createElement("div", {
262
- className: "side-nav__menu-item"
263
- }, /*#__PURE__*/React__default.createElement("button", {
264
- type: "button",
265
- className: "side-nav__menu-title-wrapper",
266
- onClick: onCurrentOrdersClick
267
- }, /*#__PURE__*/React__default.createElement("span", {
268
- className: "side-nav__menu-title"
269
- }, "Current Orders"))), /*#__PURE__*/React__default.createElement("div", {
270
- className: "side-nav__menu-item"
271
- }, /*#__PURE__*/React__default.createElement("button", {
272
- type: "button",
273
- className: "side-nav__menu-title-wrapper",
274
- onClick: onPastOrdersClick
275
- }, /*#__PURE__*/React__default.createElement("span", {
276
- className: "side-nav__menu-title"
277
- }, "Past Orders"))), /*#__PURE__*/React__default.createElement("div", {
278
- className: "side-nav__menu-divider"
279
- }, " "), /*#__PURE__*/React__default.createElement("div", {
280
- className: "side-nav__menu-item"
281
- }, /*#__PURE__*/React__default.createElement("button", {
282
- type: "button",
283
- className: "side-nav__menu-title-wrapper"
284
- }, /*#__PURE__*/React__default.createElement("span", {
285
- className: "side-nav__menu-title"
286
- }, /*#__PURE__*/React__default.createElement("img", {
287
- src: saleIcon,
288
- alt: "close-icon",
289
- className: "side-nav__menu-icon"
290
- }), "Sales"))), /*#__PURE__*/React__default.createElement("div", {
291
- className: "side-nav__menu-item"
292
- }, /*#__PURE__*/React__default.createElement("button", {
293
- type: "button",
294
- className: "side-nav__menu-title-wrapper",
295
- onClick: onSubmissionsClick
296
- }, /*#__PURE__*/React__default.createElement("span", {
297
- className: "side-nav__menu-title"
298
- }, "Submissions"))), /*#__PURE__*/React__default.createElement("div", {
299
- className: "side-nav__menu-item"
300
- }, /*#__PURE__*/React__default.createElement("button", {
301
- type: "button",
302
- className: "side-nav__menu-title-wrapper",
303
- onClick: onPastSalesClick
304
- }, /*#__PURE__*/React__default.createElement("span", {
305
- className: "side-nav__menu-title"
306
- }, "Sales & Consignments"))), /*#__PURE__*/React__default.createElement("div", {
307
- className: "side-nav__menu-item"
308
- }, /*#__PURE__*/React__default.createElement("button", {
309
- type: "button",
310
- className: "side-nav__menu-title-wrapper",
311
- onClick: onPaidOutClick
312
- }, /*#__PURE__*/React__default.createElement("span", {
313
- className: "side-nav__menu-title"
314
- }, "Paid Out"))), /*#__PURE__*/React__default.createElement("div", {
315
- className: "side-nav__menu-item"
316
- }, /*#__PURE__*/React__default.createElement("button", {
317
- type: "button",
318
- className: "side-nav__block-button",
319
- onClick: onLuxityShopClick
320
- }, "LUXITY SHOP")), /*#__PURE__*/React__default.createElement("div", {
321
- className: "side-nav__menu-item"
322
- }, /*#__PURE__*/React__default.createElement("button", {
323
- type: "button",
324
- className: "side-nav__sub-link",
325
- onClick: onDashboardClick
326
- }, "Dashboard")), /*#__PURE__*/React__default.createElement("div", {
327
- className: "side-nav__menu-item"
328
- }, /*#__PURE__*/React__default.createElement("a", {
329
- href: bugReportLink,
330
- className: "side-nav__sub-link"
331
- }, "Help")), /*#__PURE__*/React__default.createElement("div", {
332
- className: "side-nav__menu-item"
333
- }, /*#__PURE__*/React__default.createElement("button", {
334
- type: "button",
335
- className: "side-nav__sub-link",
336
- onClick: onLogoutClick
337
- }, "Logout")))));
122
+ return _arr;
123
+ }
124
+
125
+ function _unsupportedIterableToArray(o, minLen) {
126
+ if (!o) return;
127
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
128
+ var n = Object.prototype.toString.call(o).slice(8, -1);
129
+ if (n === "Object" && o.constructor) n = o.constructor.name;
130
+ if (n === "Map" || n === "Set") return Array.from(o);
131
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
132
+ }
133
+
134
+ function _arrayLikeToArray(arr, len) {
135
+ if (len == null || len > arr.length) len = arr.length;
136
+
137
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
138
+
139
+ return arr2;
140
+ }
141
+
142
+ function _nonIterableSpread() {
143
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
144
+ }
145
+
146
+ function _nonIterableRest() {
147
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
148
+ }
149
+
150
+ var LuxityAppSideNav = function LuxityAppSideNav(_ref) {
151
+ var closeIcon = _ref.closeIcon,
152
+ accountIcon = _ref.accountIcon,
153
+ orderIcon = _ref.orderIcon,
154
+ saleIcon = _ref.saleIcon,
155
+ onDashboardClick = _ref.onDashboardClick,
156
+ onLogoutClick = _ref.onLogoutClick,
157
+ bugReportLink = _ref.bugReportLink,
158
+ onLuxityShopClick = _ref.onLuxityShopClick,
159
+ onInterestClick = _ref.onInterestClick,
160
+ onAddressClick = _ref.onAddressClick,
161
+ onCouponsClick = _ref.onCouponsClick,
162
+ onEditProfileClick = _ref.onEditProfileClick,
163
+ onCurrentOrdersClick = _ref.onCurrentOrdersClick,
164
+ onPastOrdersClick = _ref.onPastOrdersClick,
165
+ onSubmissionsClick = _ref.onSubmissionsClick,
166
+ onPastSalesClick = _ref.onPastSalesClick,
167
+ onPaidOutClick = _ref.onPaidOutClick,
168
+ showSideNav = _ref.showSideNav,
169
+ onMenuClick = _ref.onMenuClick;
170
+
171
+ var onCloseSideNav = function onCloseSideNav(e) {
172
+ onMenuClick();
173
+
174
+ if (e.key === 'Enter') {
175
+ e.preventDefault();
176
+ }
338
177
  };
339
178
 
340
- var StoresDropdown = function StoresDropdown(_ref) {
341
- var backIcon = _ref.backIcon,
342
- onBackClick = _ref.onBackClick,
343
- stores = _ref.stores,
344
- onContactUsClick = _ref.onContactUsClick;
345
- return /*#__PURE__*/React__default.createElement("div", {
346
- className: "side-nav__sub-menu"
347
- }, /*#__PURE__*/React__default.createElement("button", {
179
+ return /*#__PURE__*/React.createElement("div", {
180
+ className: "side-nav"
181
+ }, /*#__PURE__*/React.createElement("div", {
182
+ role: "button",
183
+ tabIndex: 0,
184
+ className: "side-nav__overlay ".concat(showSideNav ? 'side-nav__overlay--visible' : 'side-nav__overlay--hidden', " "),
185
+ onClick: onCloseSideNav,
186
+ onKeyDown: onCloseSideNav
187
+ }), /*#__PURE__*/React.createElement("div", {
188
+ className: "side-nav__content ".concat(showSideNav ? 'side-nav__content--open' : 'side-nav__content--closed')
189
+ }, /*#__PURE__*/React.createElement("button", {
190
+ type: "button",
191
+ onClick: onMenuClick,
192
+ className: "side-nav__icon-container"
193
+ }, /*#__PURE__*/React.createElement("img", {
194
+ src: closeIcon,
195
+ alt: "close-icon",
196
+ className: "side-nav__close-icon"
197
+ })), /*#__PURE__*/React.createElement("div", {
198
+ className: "side-nav__menu-items-wrapper"
199
+ }, /*#__PURE__*/React.createElement("div", {
200
+ className: "side-nav__menu-item"
201
+ }, /*#__PURE__*/React.createElement("button", {
202
+ type: "button",
203
+ className: "side-nav__menu-title-wrapper"
204
+ }, /*#__PURE__*/React.createElement("span", {
205
+ className: "side-nav__menu-title"
206
+ }, /*#__PURE__*/React.createElement("img", {
207
+ src: accountIcon,
208
+ alt: "close-icon",
209
+ className: "side-nav__menu-icon"
210
+ }), "Account"))), onInterestClick && /*#__PURE__*/React.createElement("div", {
211
+ className: "side-nav__menu-item"
212
+ }, /*#__PURE__*/React.createElement("button", {
213
+ type: "button",
214
+ className: "side-nav__menu-title-wrapper",
215
+ onClick: onInterestClick
216
+ }, /*#__PURE__*/React.createElement("span", {
217
+ className: "side-nav__menu-title"
218
+ }, "Interests"))), /*#__PURE__*/React.createElement("div", {
219
+ className: "side-nav__menu-item"
220
+ }, /*#__PURE__*/React.createElement("button", {
221
+ type: "button",
222
+ className: "side-nav__menu-title-wrapper",
223
+ onClick: onAddressClick
224
+ }, /*#__PURE__*/React.createElement("span", {
225
+ className: "side-nav__menu-title"
226
+ }, "Addresses"))), /*#__PURE__*/React.createElement("div", {
227
+ className: "side-nav__menu-item"
228
+ }, /*#__PURE__*/React.createElement("button", {
229
+ type: "button",
230
+ className: "side-nav__menu-title-wrapper",
231
+ onClick: onCouponsClick
232
+ }, /*#__PURE__*/React.createElement("span", {
233
+ className: "side-nav__menu-title"
234
+ }, "Coupons"))), /*#__PURE__*/React.createElement("div", {
235
+ className: "side-nav__menu-item"
236
+ }, /*#__PURE__*/React.createElement("button", {
237
+ type: "button",
238
+ className: "side-nav__menu-title-wrapper",
239
+ onClick: onEditProfileClick
240
+ }, /*#__PURE__*/React.createElement("span", {
241
+ className: "side-nav__menu-title"
242
+ }, "Edit Profile"))), /*#__PURE__*/React.createElement("div", {
243
+ className: "side-nav__menu-divider"
244
+ }, " "), /*#__PURE__*/React.createElement("div", {
245
+ className: "side-nav__menu-item"
246
+ }, /*#__PURE__*/React.createElement("button", {
247
+ type: "button",
248
+ className: "side-nav__menu-title-wrapper"
249
+ }, /*#__PURE__*/React.createElement("span", {
250
+ className: "side-nav__menu-title"
251
+ }, /*#__PURE__*/React.createElement("img", {
252
+ src: orderIcon,
253
+ alt: "close-icon",
254
+ className: "side-nav__menu-icon"
255
+ }), "Orders"))), /*#__PURE__*/React.createElement("div", {
256
+ className: "side-nav__menu-item"
257
+ }, /*#__PURE__*/React.createElement("button", {
258
+ type: "button",
259
+ className: "side-nav__menu-title-wrapper",
260
+ onClick: onCurrentOrdersClick
261
+ }, /*#__PURE__*/React.createElement("span", {
262
+ className: "side-nav__menu-title"
263
+ }, "Current Orders"))), /*#__PURE__*/React.createElement("div", {
264
+ className: "side-nav__menu-item"
265
+ }, /*#__PURE__*/React.createElement("button", {
266
+ type: "button",
267
+ className: "side-nav__menu-title-wrapper",
268
+ onClick: onPastOrdersClick
269
+ }, /*#__PURE__*/React.createElement("span", {
270
+ className: "side-nav__menu-title"
271
+ }, "Past Orders"))), /*#__PURE__*/React.createElement("div", {
272
+ className: "side-nav__menu-divider"
273
+ }, " "), /*#__PURE__*/React.createElement("div", {
274
+ className: "side-nav__menu-item"
275
+ }, /*#__PURE__*/React.createElement("button", {
276
+ type: "button",
277
+ className: "side-nav__menu-title-wrapper"
278
+ }, /*#__PURE__*/React.createElement("span", {
279
+ className: "side-nav__menu-title"
280
+ }, /*#__PURE__*/React.createElement("img", {
281
+ src: saleIcon,
282
+ alt: "close-icon",
283
+ className: "side-nav__menu-icon"
284
+ }), "Sales"))), /*#__PURE__*/React.createElement("div", {
285
+ className: "side-nav__menu-item"
286
+ }, /*#__PURE__*/React.createElement("button", {
287
+ type: "button",
288
+ className: "side-nav__menu-title-wrapper",
289
+ onClick: onSubmissionsClick
290
+ }, /*#__PURE__*/React.createElement("span", {
291
+ className: "side-nav__menu-title"
292
+ }, "Submissions"))), /*#__PURE__*/React.createElement("div", {
293
+ className: "side-nav__menu-item"
294
+ }, /*#__PURE__*/React.createElement("button", {
295
+ type: "button",
296
+ className: "side-nav__menu-title-wrapper",
297
+ onClick: onPastSalesClick
298
+ }, /*#__PURE__*/React.createElement("span", {
299
+ className: "side-nav__menu-title"
300
+ }, "Sales & Consignments"))), /*#__PURE__*/React.createElement("div", {
301
+ className: "side-nav__menu-item"
302
+ }, /*#__PURE__*/React.createElement("button", {
303
+ type: "button",
304
+ className: "side-nav__menu-title-wrapper",
305
+ onClick: onPaidOutClick
306
+ }, /*#__PURE__*/React.createElement("span", {
307
+ className: "side-nav__menu-title"
308
+ }, "Paid Out"))), /*#__PURE__*/React.createElement("div", {
309
+ className: "side-nav__menu-item"
310
+ }, /*#__PURE__*/React.createElement("button", {
311
+ type: "button",
312
+ className: "side-nav__block-button",
313
+ onClick: onLuxityShopClick
314
+ }, "LUXITY SHOP")), /*#__PURE__*/React.createElement("div", {
315
+ className: "side-nav__menu-item"
316
+ }, /*#__PURE__*/React.createElement("button", {
317
+ type: "button",
318
+ className: "side-nav__sub-link",
319
+ onClick: onDashboardClick
320
+ }, "Dashboard")), /*#__PURE__*/React.createElement("div", {
321
+ className: "side-nav__menu-item"
322
+ }, /*#__PURE__*/React.createElement("a", {
323
+ href: bugReportLink,
324
+ className: "side-nav__sub-link"
325
+ }, "Help")), /*#__PURE__*/React.createElement("div", {
326
+ className: "side-nav__menu-item"
327
+ }, /*#__PURE__*/React.createElement("button", {
328
+ type: "button",
329
+ className: "side-nav__sub-link",
330
+ onClick: onLogoutClick
331
+ }, "Logout")))));
332
+ };
333
+
334
+ var StoresDropdown = function StoresDropdown(_ref) {
335
+ var backIcon = _ref.backIcon,
336
+ onBackClick = _ref.onBackClick,
337
+ stores = _ref.stores,
338
+ onContactUsClick = _ref.onContactUsClick;
339
+ return /*#__PURE__*/React.createElement("div", {
340
+ className: "side-nav__sub-menu"
341
+ }, /*#__PURE__*/React.createElement("button", {
342
+ type: "button",
343
+ className: "side-nav__back-button-wrapper",
344
+ onClick: onBackClick
345
+ }, /*#__PURE__*/React.createElement("img", {
346
+ src: backIcon,
347
+ alt: "back-icon",
348
+ className: "side-nav__back-icon"
349
+ }), /*#__PURE__*/React.createElement("div", {
350
+ className: "side-nav__back-button"
351
+ }, "Back To Menu")), /*#__PURE__*/React.createElement("div", {
352
+ className: "side-nav__store-details"
353
+ }, !!stores.length && stores.map(function (store) {
354
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
355
+ className: "stores-dropdown__main-title"
356
+ }, store.title, ", ", store.location), /*#__PURE__*/React.createElement("div", {
357
+ className: "stores-dropdown__open-days"
358
+ }, store.regularOpenDays), /*#__PURE__*/React.createElement("div", {
359
+ className: "stores-dropdown__open-hours"
360
+ }, store.regularOpenHours), /*#__PURE__*/React.createElement("div", {
361
+ className: "stores-dropdown__open-days"
362
+ }, store.holidayOpenDays), /*#__PURE__*/React.createElement("div", {
363
+ className: "stores-dropdown__open-hours"
364
+ }, store.holidayOpenHours), /*#__PURE__*/React.createElement("div", {
365
+ className: "stores-dropdown__open-days"
366
+ }, store.weekendOpenDays), /*#__PURE__*/React.createElement("div", {
367
+ className: "stores-dropdown__open-hours"
368
+ }, store.weekendOpenHours), /*#__PURE__*/React.createElement("button", {
348
369
  type: "button",
349
- className: "side-nav__back-button-wrapper",
350
- onClick: onBackClick
351
- }, /*#__PURE__*/React__default.createElement("img", {
352
- src: backIcon,
353
- alt: "back-icon",
354
- className: "side-nav__back-icon"
355
- }), /*#__PURE__*/React__default.createElement("div", {
356
- className: "side-nav__back-button"
357
- }, "Back To Menu")), /*#__PURE__*/React__default.createElement("div", {
358
- className: "side-nav__store-details"
359
- }, !!stores.length && stores.map(function (store) {
360
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
361
- className: "stores-dropdown__main-title"
362
- }, store.title, ", ", store.location), /*#__PURE__*/React__default.createElement("div", {
363
- className: "stores-dropdown__open-days"
364
- }, store.regularOpenDays), /*#__PURE__*/React__default.createElement("div", {
365
- className: "stores-dropdown__open-hours"
366
- }, store.regularOpenHours), /*#__PURE__*/React__default.createElement("div", {
367
- className: "stores-dropdown__open-days"
368
- }, store.holidayOpenDays), /*#__PURE__*/React__default.createElement("div", {
369
- className: "stores-dropdown__open-hours"
370
- }, store.holidayOpenHours), /*#__PURE__*/React__default.createElement("div", {
371
- className: "stores-dropdown__open-days"
372
- }, store.weekendOpenDays), /*#__PURE__*/React__default.createElement("div", {
373
- className: "stores-dropdown__open-hours"
374
- }, store.weekendOpenHours), /*#__PURE__*/React__default.createElement("button", {
375
- type: "button",
376
- className: "stores-dropdown__view-more",
377
- onClick: onContactUsClick
378
- }, "View More"));
379
- })));
370
+ className: "stores-dropdown__view-more",
371
+ onClick: onContactUsClick
372
+ }, "View More"));
373
+ })));
374
+ };
375
+
376
+ var BrandsDropDown = function BrandsDropDown(_ref) {
377
+ var subMenuOpen = _ref.subMenuOpen,
378
+ onBackClick = _ref.onBackClick,
379
+ onCloseSideNav = _ref.onCloseSideNav,
380
+ backIcon = _ref.backIcon,
381
+ subMenuCategoryTitle = _ref.subMenuCategoryTitle,
382
+ productUrl = _ref.productUrl,
383
+ categoryElements = _ref.categoryElements,
384
+ subMenuBrandsTitle = _ref.subMenuBrandsTitle,
385
+ _ref$brandsList = _ref.brandsList,
386
+ brandsList = _ref$brandsList === void 0 ? [] : _ref$brandsList,
387
+ categorySlug = _ref.categorySlug,
388
+ isLoading = _ref.isLoading,
389
+ hasError = _ref.hasError,
390
+ LinkComponent = _ref.LinkComponent;
391
+
392
+ var handleLinkClick = function handleLinkClick(event) {
393
+ event.preventDefault();
394
+ var href = event.currentTarget.getAttribute('href');
395
+ onBackClick();
396
+ onCloseSideNav();
397
+ window.location.href = href;
380
398
  };
381
399
 
382
- var BrandsDropDown = function BrandsDropDown(_ref) {
383
- var subMenuOpen = _ref.subMenuOpen,
384
- onBackClick = _ref.onBackClick,
385
- onCloseSideNav = _ref.onCloseSideNav,
386
- backIcon = _ref.backIcon,
387
- subMenuCategoryTitle = _ref.subMenuCategoryTitle,
388
- productUrl = _ref.productUrl,
389
- categoryElements = _ref.categoryElements,
390
- subMenuBrandsTitle = _ref.subMenuBrandsTitle,
391
- _ref$brandsList = _ref.brandsList,
392
- brandsList = _ref$brandsList === void 0 ? [] : _ref$brandsList,
393
- categorySlug = _ref.categorySlug,
394
- isLoading = _ref.isLoading,
395
- hasError = _ref.hasError,
396
- LinkComponent = _ref.LinkComponent;
397
-
398
- var handleLinkClick = function handleLinkClick(event) {
399
- event.preventDefault();
400
- var href = event.currentTarget.getAttribute('href');
401
- onBackClick();
402
- onCloseSideNav();
403
- window.location.href = href;
404
- };
405
-
406
- return /*#__PURE__*/React__default.createElement("div", {
407
- className: "side-nav__content ".concat(subMenuOpen ? '' : 'side-nav__content--hidden')
408
- }, hasError ? /*#__PURE__*/React__default.createElement("div", {
409
- className: "side-nav__errors"
410
- }, "Failed to load data.") : /*#__PURE__*/React__default.createElement("div", {
411
- className: "side-nav__sub-menu-wrapper"
412
- }, isLoading ? /*#__PURE__*/React__default.createElement("div", {
413
- className: "cover-spinner"
414
- }) : /*#__PURE__*/React__default.createElement("div", {
415
- className: "side-nav__sub-menu"
416
- }, /*#__PURE__*/React__default.createElement("button", {
417
- type: "button",
418
- className: "side-nav__back-button-wrapper",
419
- onClick: onBackClick
420
- }, /*#__PURE__*/React__default.createElement("img", {
421
- src: backIcon,
422
- alt: "back-icon",
423
- className: "side-nav__back-icon"
424
- }), /*#__PURE__*/React__default.createElement("div", {
425
- className: "side-nav__back-button"
426
- }, "Back To Menu")), /*#__PURE__*/React__default.createElement("div", {
427
- className: "side-nav__sub-menu-title"
428
- }, subMenuCategoryTitle), /*#__PURE__*/React__default.createElement("div", {
429
- className: "side-nav__elements"
430
- }, categoryElements.map(function (categoryElement) {
431
- return categoryElement.category ? /*#__PURE__*/React__default.createElement(LinkComponent, {
432
- href: "".concat(productUrl, "/").concat(categoryElement.category, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
433
- onClick: handleLinkClick,
434
- className: "dropdown__element",
435
- key: categoryElement.name
436
- }, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase()) : /*#__PURE__*/React__default.createElement(LinkComponent, {
437
- href: "".concat(productUrl, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
438
- onClick: handleLinkClick,
439
- className: "dropdown__element",
440
- key: categoryElement.name
441
- }, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase());
442
- })), /*#__PURE__*/React__default.createElement("br", null), /*#__PURE__*/React__default.createElement("div", {
443
- className: "side-nav__elements"
444
- }, /*#__PURE__*/React__default.createElement("div", {
445
- className: "side-nav__sub-menu-title"
446
- }, subMenuBrandsTitle), /*#__PURE__*/React__default.createElement(LinkComponent, {
447
- href: "".concat(productUrl, "/").concat(categorySlug === 'new' ? 'brands' : categorySlug),
400
+ return /*#__PURE__*/React.createElement("div", {
401
+ className: "side-nav__content ".concat(subMenuOpen ? '' : 'side-nav__content--hidden')
402
+ }, hasError ? /*#__PURE__*/React.createElement("div", {
403
+ className: "side-nav__errors"
404
+ }, "Failed to load data.") : /*#__PURE__*/React.createElement("div", {
405
+ className: "side-nav__sub-menu-wrapper"
406
+ }, isLoading ? /*#__PURE__*/React.createElement("div", {
407
+ className: "cover-spinner"
408
+ }) : /*#__PURE__*/React.createElement("div", {
409
+ className: "side-nav__sub-menu"
410
+ }, /*#__PURE__*/React.createElement("button", {
411
+ type: "button",
412
+ className: "side-nav__back-button-wrapper",
413
+ onClick: onBackClick
414
+ }, /*#__PURE__*/React.createElement("img", {
415
+ src: backIcon,
416
+ alt: "back-icon",
417
+ className: "side-nav__back-icon"
418
+ }), /*#__PURE__*/React.createElement("div", {
419
+ className: "side-nav__back-button"
420
+ }, "Back To Menu")), /*#__PURE__*/React.createElement("div", {
421
+ className: "side-nav__sub-menu-title"
422
+ }, subMenuCategoryTitle), /*#__PURE__*/React.createElement("div", {
423
+ className: "side-nav__elements"
424
+ }, categoryElements.map(function (categoryElement) {
425
+ return categoryElement.category ? /*#__PURE__*/React.createElement(LinkComponent, {
426
+ href: "".concat(productUrl, "/").concat(categoryElement.category, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
427
+ onClick: handleLinkClick,
428
+ className: "dropdown__element",
429
+ key: categoryElement.name
430
+ }, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase()) : /*#__PURE__*/React.createElement(LinkComponent, {
431
+ href: "".concat(productUrl, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
432
+ onClick: handleLinkClick,
433
+ className: "dropdown__element",
434
+ key: categoryElement.name
435
+ }, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase());
436
+ })), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("div", {
437
+ className: "side-nav__elements"
438
+ }, /*#__PURE__*/React.createElement("div", {
439
+ className: "side-nav__sub-menu-title"
440
+ }, subMenuBrandsTitle), /*#__PURE__*/React.createElement(LinkComponent, {
441
+ href: "".concat(productUrl, "/").concat(categorySlug === 'new' ? 'brands' : categorySlug),
442
+ onClick: handleLinkClick,
443
+ className: "side-nav__element"
444
+ }, "All Brands"), !!brandsList.length && brandsList.map(function (brand) {
445
+ return /*#__PURE__*/React.createElement(LinkComponent, {
446
+ key: brand.slug,
447
+ href: "".concat(productUrl, "/").concat(categorySlug === 'new' ? 'brands' : categorySlug, "/").concat(brand.slug),
448
448
  onClick: handleLinkClick,
449
449
  className: "side-nav__element"
450
- }, "All Brands"), !!brandsList.length && brandsList.map(function (brand) {
451
- return /*#__PURE__*/React__default.createElement(LinkComponent, {
452
- key: brand.slug,
453
- href: "".concat(productUrl, "/").concat(categorySlug === 'new' ? 'brands' : categorySlug, "/").concat(brand.slug),
454
- onClick: handleLinkClick,
455
- className: "side-nav__element"
456
- }, brand.name);
457
- })))));
458
- };
459
-
460
- var removeCategoryByName = function removeCategoryByName(categories, name) {
461
- var _categories$filter;
462
-
463
- return (_categories$filter = categories === null || categories === void 0 ? void 0 : categories.filter(function (category) {
464
- return category.name.toLowerCase() !== name.toLowerCase();
465
- })) !== null && _categories$filter !== void 0 ? _categories$filter : [];
466
- };
450
+ }, brand.name);
451
+ })))));
452
+ };
453
+
454
+ var removeCategoryByName = function removeCategoryByName(categories, name) {
455
+ var _categories$filter;
456
+
457
+ return (_categories$filter = categories === null || categories === void 0 ? void 0 : categories.filter(function (category) {
458
+ return category.name.toLowerCase() !== name.toLowerCase();
459
+ })) !== null && _categories$filter !== void 0 ? _categories$filter : [];
460
+ };
461
+
462
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
463
+ /* position relative is required for the Body element to be positioned correctly */
464
+
465
+ var relativeInlineStyle = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n"])));
466
+ var topMiddleBodyStyle = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: absolute;\n z-index: 1;\n bottom: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n"])));
467
+ var getTopMiddleArrowAfterStyle = function getTopMiddleArrowAfterStyle(props) {
468
+ return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n /*Bottom Arrow*/\n top: 100%; /* At the bottom of the tooltip */\n left: calc(50% - ", ");\n border-width: ", ";\n border-style: solid;\n border-color: ", " transparent transparent transparent;\n"])), props.$apexWidth, props.$apexWidth, props.theme.colors.base);
469
+ };
470
+ var getBottomMiddleBodyStyle = function getBottomMiddleBodyStyle(props) {
471
+ return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: absolute;\n top: 100%;\n left: calc(50% - ", " / 2);\n"])), props.$bodyWidth);
472
+ };
473
+ var getBottomMiddleArrowAfterStyle = function getBottomMiddleArrowAfterStyle(props) {
474
+ return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n /*Top Arrow*/\n bottom: 100%; /* At the top of the tooltip */\n top: initial;\n left: 50%;\n border-style: solid;\n border-color: transparent transparent ", " transparent;\n"])), props.theme.colors.base);
475
+ };
476
+
477
+ var _templateObject$1;
478
+
479
+ var getBodyStyle = function getBodyStyle() {
480
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
481
+ var _props$$toolTipPositi = props.$toolTipPosition,
482
+ $toolTipPosition = _props$$toolTipPositi === void 0 ? '' : _props$$toolTipPositi;
483
+
484
+ switch ($toolTipPosition) {
485
+ case 'top':
486
+ return topMiddleBodyStyle;
487
+
488
+ case 'bottom':
489
+ return getBottomMiddleBodyStyle(props);
490
+
491
+ default:
492
+ return null;
493
+ }
494
+ };
467
495
 
468
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
469
- /* position relative is required for the Body element to be positioned correctly */
496
+ var getAfterStyling = function getAfterStyling() {
497
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
498
+ var $toolTipPosition = props.$toolTipPosition;
470
499
 
471
- var relativeInlineStyle = styled.css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n"])));
472
- 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"])));
473
- var getTopMiddleArrowAfterStyle = function getTopMiddleArrowAfterStyle(props) {
474
- return styled.css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n /*Bottom Arrow*/\n top: 100%; /* At the bottom of the tooltip */\n left: calc(50% - ", ");\n border-width: ", ";\n border-style: solid;\n border-color: ", " transparent transparent transparent;\n"])), props.$apexWidth, props.$apexWidth, props.theme.colors.base);
475
- };
476
- var getBottomMiddleBodyStyle = function getBottomMiddleBodyStyle(props) {
477
- return styled.css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: absolute;\n top: 100%;\n left: calc(50% - ", " / 2);\n"])), props.$bodyWidth);
478
- };
479
- var getBottomMiddleArrowAfterStyle = function getBottomMiddleArrowAfterStyle(props) {
480
- return styled.css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n /*Top Arrow*/\n bottom: 100%; /* At the top of the tooltip */\n top: initial;\n left: 50%;\n border-style: solid;\n border-color: transparent transparent ", " transparent;\n"])), props.theme.colors.base);
481
- };
500
+ switch ($toolTipPosition) {
501
+ case 'top':
502
+ return getTopMiddleArrowAfterStyle(props);
482
503
 
483
- var _templateObject$1;
504
+ case 'bottom':
505
+ return getBottomMiddleArrowAfterStyle(props);
484
506
 
485
- var getBodyStyle = function getBodyStyle() {
486
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
487
- var _props$$toolTipPositi = props.$toolTipPosition,
488
- $toolTipPosition = _props$$toolTipPositi === void 0 ? '' : _props$$toolTipPositi;
507
+ default:
508
+ return '';
509
+ }
510
+ };
511
+
512
+ var Body = styled.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) {
513
+ return props.$bodyWidth;
514
+ }, function (props) {
515
+ return props.theme.colors.base || 'black';
516
+ }, function (props) {
517
+ return getBodyStyle(props);
518
+ }, function (props) {
519
+ return getAfterStyling(props);
520
+ });
521
+
522
+ var _templateObject$2;
523
+ var Container = styled.div(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n ", ";\n cursor: pointer;\n &:hover ", " {\n opacity: 1;\n visibility: visible;\n }\n"])), relativeInlineStyle, Body);
524
+
525
+ var theme = {
526
+ breakpoints: ['40em', '52em', '64em'],
527
+ space: ['0px', '4px', '8px', '16px', '32px', '64px', '128px', '256px', '512px'],
528
+ fontSizes: ['12px', '14px', '16px', '20px', '24px', '32px', '48px', '64px', '72px'],
529
+ marginPaddings: ['0.5rem', '1rem', '1.5rem', '2rem', '2.5rem', '3rem', '3.5rem', '4rem', '4.5rem', '5rem', '5.5rem', '6rem'],
530
+ letterSpacings: ['-0.5px', '0px', '+0.5px'],
531
+ radii: ['0px', '2px', '4px', '8px'],
532
+ borderRadius: '6px',
533
+ colors: {
534
+ primary: '#000',
535
+ base: '#4e4949',
536
+ baseLt: '#817c7c',
537
+ borderColor: '#d8d8d8',
538
+ ntrlMin: '#fff',
539
+ ntrlMinTen: '#e6e6e6',
540
+ gray: '#efefef',
541
+ darkerGray: '#454141'
542
+ },
543
+ rareStepColors: {
544
+ primary: '#202b58',
545
+ secondary: '#ef5c2d',
546
+ ntrlMin: '#ffffff',
547
+ ntrl40: '#f4f4f4',
548
+ ntrl50: '#808080',
549
+ ntrl60: '#e8e8e8',
550
+ ntrl70: '#252525',
551
+ ntrlMax: '#000000'
552
+ },
553
+ rareStepFontWeights: {
554
+ normal: 400,
555
+ medium: 500,
556
+ semiBold: 600,
557
+ bold: 700
558
+ },
559
+ rareStepFontSize: {
560
+ h1: '36px',
561
+ h2: '30px',
562
+ h3: '24px',
563
+ h4: '20px',
564
+ h5: '16px',
565
+ h6: '14px',
566
+ footerTitle: '16px'
567
+ },
568
+ rareStepPageSizes: {
569
+ mobile: '500px',
570
+ tablet: '768px',
571
+ desktop: '992px',
572
+ screenl: '1280px',
573
+ screenxl: '1680px',
574
+ screenxxl: '1920px',
575
+ container: '1600px'
576
+ }
577
+ };
578
+
579
+ var themed = (function (Component) {
580
+ return /*#__PURE__*/forwardRef(function (props, ref) {
581
+ return /*#__PURE__*/React.createElement(ThemeProvider, {
582
+ theme: theme
583
+ }, /*#__PURE__*/React.createElement(Component, _extends({}, props, {
584
+ ref: ref
585
+ })));
586
+ });
587
+ });
588
+
589
+ /* eslint-disable react/require-default-props */
590
+
591
+ var Tooltip = function Tooltip(_ref) {
592
+ var _ref$children = _ref.children,
593
+ children = _ref$children === void 0 ? null : _ref$children,
594
+ _ref$toolTipText = _ref.toolTipText,
595
+ toolTipText = _ref$toolTipText === void 0 ? '' : _ref$toolTipText,
596
+ _ref$toolTipPosition = _ref.toolTipPosition,
597
+ toolTipPosition = _ref$toolTipPosition === void 0 ? 'top' : _ref$toolTipPosition,
598
+ _ref$bodyWidth = _ref.bodyWidth,
599
+ bodyWidth = _ref$bodyWidth === void 0 ? '8em' : _ref$bodyWidth,
600
+ _ref$apexWidth = _ref.apexWidth,
601
+ apexWidth = _ref$apexWidth === void 0 ? '5px' : _ref$apexWidth,
602
+ _ref$containerClassNa = _ref.containerClassName,
603
+ containerClassName = _ref$containerClassNa === void 0 ? '' : _ref$containerClassNa,
604
+ _ref$bodyClassName = _ref.bodyClassName,
605
+ bodyClassName = _ref$bodyClassName === void 0 ? '' : _ref$bodyClassName;
606
+ return /*#__PURE__*/React.createElement(Container, {
607
+ className: containerClassName
608
+ }, children, /*#__PURE__*/React.createElement(Body, {
609
+ $toolTipPosition: toolTipPosition,
610
+ $bodyWidth: bodyWidth,
611
+ $apexWidth: apexWidth,
612
+ className: bodyClassName
613
+ }, toolTipText));
614
+ };
615
+
616
+ var Tooltip$1 = themed(Tooltip);
617
+
618
+ var CurrencySelect = function CurrencySelect(_ref) {
619
+ var currency = _ref.currency,
620
+ currencyOptions = _ref.currencyOptions,
621
+ onCurrencyChange = _ref.onCurrencyChange,
622
+ _ref$isCurrencySelect = _ref.isCurrencySelectionDisabled,
623
+ isCurrencySelectionDisabled = _ref$isCurrencySelect === void 0 ? false : _ref$isCurrencySelect,
624
+ _ref$tooltipContent = _ref.tooltipContent,
625
+ tooltipContent = _ref$tooltipContent === void 0 ? '' : _ref$tooltipContent;
626
+
627
+ if (!currencyOptions || currencyOptions.length === 0) {
628
+ return null;
629
+ }
489
630
 
490
- switch ($toolTipPosition) {
491
- case 'top':
492
- return topMiddleBodyStyle;
631
+ var selectedOption = currencyOptions.find(function (opt) {
632
+ return opt.value === currency;
633
+ });
493
634
 
494
- case 'bottom':
495
- return getBottomMiddleBodyStyle(props);
635
+ if (!selectedOption) {
636
+ return null;
637
+ }
496
638
 
497
- default:
498
- return null;
499
- }
639
+ return /*#__PURE__*/React.createElement(Tooltip$1, {
640
+ toolTipText: isCurrencySelectionDisabled ? tooltipContent : '',
641
+ toolTipPosition: "bottom",
642
+ bodyWidth: "160px"
643
+ }, /*#__PURE__*/React.createElement("div", {
644
+ className: "currency-select-container ".concat(isCurrencySelectionDisabled ? 'disabled' : '')
645
+ }, /*#__PURE__*/React.createElement("div", {
646
+ className: "currency-flag"
647
+ }, /*#__PURE__*/React.createElement("img", {
648
+ src: selectedOption.flagSrc,
649
+ alt: "".concat(currency, " flag")
650
+ })), /*#__PURE__*/React.createElement("select", {
651
+ value: currency,
652
+ onChange: function onChange(e) {
653
+ return onCurrencyChange(e.target.value);
654
+ },
655
+ className: "currency-select",
656
+ disabled: isCurrencySelectionDisabled
657
+ }, currencyOptions.map(function (option) {
658
+ return /*#__PURE__*/React.createElement("option", {
659
+ key: option.value,
660
+ value: option.value
661
+ }, option.value, " (", option.symbol, ")");
662
+ }))));
663
+ };
664
+
665
+ var LuxitySideNav = function LuxitySideNav(_ref) {
666
+ var accordionIcon = _ref.accordionIcon,
667
+ closeIcon = _ref.closeIcon,
668
+ backIcon = _ref.backIcon,
669
+ productUrl = _ref.productUrl,
670
+ onAccountClick = _ref.onAccountClick,
671
+ onCartClick = _ref.onCartClick,
672
+ onContactUsClick = _ref.onContactUsClick,
673
+ onOurStoryClick = _ref.onOurStoryClick,
674
+ onBlogClick = _ref.onBlogClick,
675
+ onSellToUsClick = _ref.onSellToUsClick,
676
+ stores = _ref.stores,
677
+ categoryElements = _ref.categoryElements,
678
+ showSideNav = _ref.showSideNav,
679
+ onMenuClick = _ref.onMenuClick,
680
+ currency = _ref.currency,
681
+ currencyOptions = _ref.currencyOptions,
682
+ onCurrencyChange = _ref.onCurrencyChange,
683
+ isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
684
+ tooltipContent = _ref.tooltipContent,
685
+ LinkComponent = _ref.LinkComponent,
686
+ categoryConfig = _ref.categoryConfig;
687
+
688
+ var _useState = useState(false),
689
+ _useState2 = _slicedToArray(_useState, 2),
690
+ subMenuOpen = _useState2[0],
691
+ setSubMenuOpen = _useState2[1];
692
+
693
+ var _useState3 = useState(''),
694
+ _useState4 = _slicedToArray(_useState3, 2),
695
+ displayedSubMenu = _useState4[0],
696
+ setDisplayedSubMenu = _useState4[1];
697
+
698
+ var _useState5 = useState(false),
699
+ _useState6 = _slicedToArray(_useState5, 2),
700
+ loading = _useState6[0],
701
+ setLoading = _useState6[1];
702
+
703
+ var _useState7 = useState({}),
704
+ _useState8 = _slicedToArray(_useState7, 2),
705
+ dropdownData = _useState8[0],
706
+ setDropdownData = _useState8[1];
707
+
708
+ var _useState9 = useState(false),
709
+ _useState10 = _slicedToArray(_useState9, 2),
710
+ hasError = _useState10[0],
711
+ setHasError = _useState10[1];
712
+
713
+ var onSubMenuClick = function onSubMenuClick(subMenu) {
714
+ setSubMenuOpen(function (prev) {
715
+ return !prev;
716
+ });
717
+ setDisplayedSubMenu(subMenu);
500
718
  };
501
719
 
502
- var getAfterStyling = function getAfterStyling() {
503
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
504
- var $toolTipPosition = props.$toolTipPosition;
505
-
506
- switch ($toolTipPosition) {
507
- case 'top':
508
- return getTopMiddleArrowAfterStyle(props);
509
-
510
- case 'bottom':
511
- return getBottomMiddleArrowAfterStyle(props);
720
+ var onStoresClick = function onStoresClick() {
721
+ setSubMenuOpen(false);
722
+ setDisplayedSubMenu('stores');
723
+ };
512
724
 
513
- default:
514
- return '';
515
- }
725
+ var onBackClick = function onBackClick() {
726
+ setSubMenuOpen(false);
727
+ setDisplayedSubMenu('');
516
728
  };
517
729
 
518
- 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) {
519
- return props.$bodyWidth;
520
- }, function (props) {
521
- return props.theme.colors.base || 'black';
522
- }, function (props) {
523
- return getBodyStyle(props);
524
- }, function (props) {
525
- return getAfterStyling(props);
526
- });
730
+ var onCloseSideNav = function onCloseSideNav(e) {
731
+ onMenuClick();
732
+ setSubMenuOpen(false);
733
+ setDisplayedSubMenu('');
527
734
 
528
- var _templateObject$2;
529
- var Container = styled__default.div(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n ", ";\n cursor: pointer;\n &:hover ", " {\n opacity: 1;\n visibility: visible;\n }\n"])), relativeInlineStyle, Body);
530
-
531
- var theme = {
532
- breakpoints: ['40em', '52em', '64em'],
533
- space: ['0px', '4px', '8px', '16px', '32px', '64px', '128px', '256px', '512px'],
534
- fontSizes: ['12px', '14px', '16px', '20px', '24px', '32px', '48px', '64px', '72px'],
535
- marginPaddings: ['0.5rem', '1rem', '1.5rem', '2rem', '2.5rem', '3rem', '3.5rem', '4rem', '4.5rem', '5rem', '5.5rem', '6rem'],
536
- letterSpacings: ['-0.5px', '0px', '+0.5px'],
537
- radii: ['0px', '2px', '4px', '8px'],
538
- borderRadius: '6px',
539
- colors: {
540
- primary: '#000',
541
- base: '#4e4949',
542
- baseLt: '#817c7c',
543
- borderColor: '#d8d8d8',
544
- ntrlMin: '#fff',
545
- ntrlMinTen: '#e6e6e6',
546
- gray: '#efefef',
547
- darkerGray: '#454141'
548
- },
549
- rareStepColors: {
550
- primary: '#202b58',
551
- secondary: '#ef5c2d',
552
- ntrlMin: '#ffffff',
553
- ntrl40: '#f4f4f4',
554
- ntrl50: '#808080',
555
- ntrl60: '#e8e8e8',
556
- ntrl70: '#252525',
557
- ntrlMax: '#000000'
558
- },
559
- rareStepFontWeights: {
560
- normal: 400,
561
- medium: 500,
562
- semiBold: 600,
563
- bold: 700
564
- },
565
- rareStepFontSize: {
566
- h1: '36px',
567
- h2: '30px',
568
- h3: '24px',
569
- h4: '20px',
570
- h5: '16px',
571
- h6: '14px',
572
- footerTitle: '16px'
573
- },
574
- rareStepPageSizes: {
575
- mobile: '500px',
576
- tablet: '768px',
577
- desktop: '992px',
578
- screenl: '1280px',
579
- screenxl: '1680px',
580
- screenxxl: '1920px',
581
- container: '1600px'
735
+ if (e && e.key === 'Enter') {
736
+ e.preventDefault();
582
737
  }
583
738
  };
584
739
 
585
- var themed = (function (Component) {
586
- return /*#__PURE__*/React.forwardRef(function (props, ref) {
587
- return /*#__PURE__*/React__default.createElement(styled.ThemeProvider, {
588
- theme: theme
589
- }, /*#__PURE__*/React__default.createElement(Component, _extends({}, props, {
590
- ref: ref
591
- })));
740
+ function addCategoryToElements(elements, categoryName) {
741
+ return elements.map(function (element) {
742
+ return _objectSpread2(_objectSpread2({}, element), {}, {
743
+ category: categoryName
744
+ });
592
745
  });
593
- });
594
-
595
- /* eslint-disable react/require-default-props */
596
-
597
- var Tooltip = function Tooltip(_ref) {
598
- var _ref$children = _ref.children,
599
- children = _ref$children === void 0 ? null : _ref$children,
600
- _ref$toolTipText = _ref.toolTipText,
601
- toolTipText = _ref$toolTipText === void 0 ? '' : _ref$toolTipText,
602
- _ref$toolTipPosition = _ref.toolTipPosition,
603
- toolTipPosition = _ref$toolTipPosition === void 0 ? 'top' : _ref$toolTipPosition,
604
- _ref$bodyWidth = _ref.bodyWidth,
605
- bodyWidth = _ref$bodyWidth === void 0 ? '8em' : _ref$bodyWidth,
606
- _ref$apexWidth = _ref.apexWidth,
607
- apexWidth = _ref$apexWidth === void 0 ? '5px' : _ref$apexWidth,
608
- _ref$containerClassNa = _ref.containerClassName,
609
- containerClassName = _ref$containerClassNa === void 0 ? '' : _ref$containerClassNa,
610
- _ref$bodyClassName = _ref.bodyClassName,
611
- bodyClassName = _ref$bodyClassName === void 0 ? '' : _ref$bodyClassName;
612
- return /*#__PURE__*/React__default.createElement(Container, {
613
- className: containerClassName
614
- }, children, /*#__PURE__*/React__default.createElement(Body, {
615
- $toolTipPosition: toolTipPosition,
616
- $bodyWidth: bodyWidth,
617
- $apexWidth: apexWidth,
618
- className: bodyClassName
619
- }, toolTipText));
620
- };
746
+ }
621
747
 
622
- var Tooltip$1 = themed(Tooltip);
748
+ useMemo(function () {
749
+ setLoading(true);
750
+ axios.get("".concat(categoryConfig.menuData)).then(function (_ref2) {
751
+ var data = _ref2.data;
752
+ setLoading(false);
753
+ setDropdownData(data);
754
+ }).catch(function () {
755
+ return setHasError(true);
756
+ });
757
+ }, [categoryConfig.menuData]);
623
758
 
624
- var CurrencySelect = function CurrencySelect(_ref) {
625
- var currency = _ref.currency,
626
- currencyOptions = _ref.currencyOptions,
627
- onCurrencyChange = _ref.onCurrencyChange,
628
- _ref$isCurrencySelect = _ref.isCurrencySelectionDisabled,
629
- isCurrencySelectionDisabled = _ref$isCurrencySelect === void 0 ? false : _ref$isCurrencySelect,
630
- _ref$tooltipContent = _ref.tooltipContent,
631
- tooltipContent = _ref$tooltipContent === void 0 ? '' : _ref$tooltipContent;
759
+ var renderMenuItems = function renderMenuItems() {
760
+ return categoryConfig.categories.map(function (category) {
761
+ var title = category.title,
762
+ categorySlug = category.categorySlug;
763
+ var slug = categorySlug;
632
764
 
633
- if (!currencyOptions || currencyOptions.length === 0) {
634
- return null;
635
- }
765
+ if (categorySlug === 'brands') {
766
+ slug = 'new';
767
+ }
636
768
 
637
- var selectedOption = currencyOptions.find(function (opt) {
638
- return opt.value === currency;
769
+ return /*#__PURE__*/React.createElement("div", {
770
+ className: "side-nav__menu-item",
771
+ key: slug
772
+ }, /*#__PURE__*/React.createElement("button", {
773
+ type: "button",
774
+ className: "side-nav__menu-title-wrapper",
775
+ onClick: function onClick() {
776
+ return onSubMenuClick(slug);
777
+ }
778
+ }, /*#__PURE__*/React.createElement("span", {
779
+ className: "side-nav__menu-title"
780
+ }, title), /*#__PURE__*/React.createElement("img", {
781
+ src: accordionIcon,
782
+ alt: "accordion-icon",
783
+ className: "side-nav__accordion-icon"
784
+ })));
639
785
  });
640
-
641
- if (!selectedOption) {
642
- return null;
643
- }
644
-
645
- return /*#__PURE__*/React__default.createElement(Tooltip$1, {
646
- toolTipText: isCurrencySelectionDisabled ? tooltipContent : '',
647
- toolTipPosition: "bottom",
648
- bodyWidth: "160px"
649
- }, /*#__PURE__*/React__default.createElement("div", {
650
- className: "currency-select-container ".concat(isCurrencySelectionDisabled ? 'disabled' : '')
651
- }, /*#__PURE__*/React__default.createElement("div", {
652
- className: "currency-flag"
653
- }, /*#__PURE__*/React__default.createElement("img", {
654
- src: selectedOption.flagSrc,
655
- alt: "".concat(currency, " flag")
656
- })), /*#__PURE__*/React__default.createElement("select", {
657
- value: currency,
658
- onChange: function onChange(e) {
659
- return onCurrencyChange(e.target.value);
660
- },
661
- className: "currency-select",
662
- disabled: isCurrencySelectionDisabled
663
- }, currencyOptions.map(function (option) {
664
- return /*#__PURE__*/React__default.createElement("option", {
665
- key: option.value,
666
- value: option.value
667
- }, option.value, " (", option.symbol, ")");
668
- }))));
669
786
  };
670
787
 
671
- var LuxitySideNav = function LuxitySideNav(_ref) {
672
- var accordionIcon = _ref.accordionIcon,
673
- closeIcon = _ref.closeIcon,
674
- backIcon = _ref.backIcon,
675
- productUrl = _ref.productUrl,
676
- onAccountClick = _ref.onAccountClick,
677
- onCartClick = _ref.onCartClick,
678
- onContactUsClick = _ref.onContactUsClick,
679
- onOurStoryClick = _ref.onOurStoryClick,
680
- onBlogClick = _ref.onBlogClick,
681
- onSellToUsClick = _ref.onSellToUsClick,
682
- stores = _ref.stores,
683
- categoryElements = _ref.categoryElements,
684
- showSideNav = _ref.showSideNav,
685
- onMenuClick = _ref.onMenuClick,
686
- currency = _ref.currency,
687
- currencyOptions = _ref.currencyOptions,
688
- onCurrencyChange = _ref.onCurrencyChange,
689
- isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
690
- tooltipContent = _ref.tooltipContent,
691
- LinkComponent = _ref.LinkComponent,
692
- categoryConfig = _ref.categoryConfig;
693
-
694
- var _useState = React.useState(false),
695
- _useState2 = _slicedToArray(_useState, 2),
696
- subMenuOpen = _useState2[0],
697
- setSubMenuOpen = _useState2[1];
698
-
699
- var _useState3 = React.useState(''),
700
- _useState4 = _slicedToArray(_useState3, 2),
701
- displayedSubMenu = _useState4[0],
702
- setDisplayedSubMenu = _useState4[1];
703
-
704
- var _useState5 = React.useState(false),
705
- _useState6 = _slicedToArray(_useState5, 2),
706
- loading = _useState6[0],
707
- setLoading = _useState6[1];
708
-
709
- var _useState7 = React.useState({}),
710
- _useState8 = _slicedToArray(_useState7, 2),
711
- dropdownData = _useState8[0],
712
- setDropdownData = _useState8[1];
713
-
714
- var _useState9 = React.useState(false),
715
- _useState10 = _slicedToArray(_useState9, 2),
716
- hasError = _useState10[0],
717
- setHasError = _useState10[1];
718
-
719
- var onSubMenuClick = function onSubMenuClick(subMenu) {
720
- setSubMenuOpen(function (prev) {
721
- return !prev;
722
- });
723
- setDisplayedSubMenu(subMenu);
724
- };
788
+ var renderDropdownLinks = function renderDropdownLinks() {
789
+ return categoryConfig.categories.map(function (category) {
790
+ var categorySlug = category.categorySlug,
791
+ categoryName = category.categoryName,
792
+ elementsKey = category.elementsKey,
793
+ subCategoryElementsKey = category.subCategoryElementsKey,
794
+ styleElementsKey = category.styleElementsKey;
795
+ var categoryElementsProcessed = categoryElements;
796
+
797
+ if (subCategoryElementsKey && dropdownData[subCategoryElementsKey]) {
798
+ // show subcategory elements
799
+ categoryElementsProcessed = removeCategoryByName(dropdownData[subCategoryElementsKey], categoryName);
800
+ } else if (styleElementsKey && dropdownData[styleElementsKey]) {
801
+ categoryElementsProcessed = addCategoryToElements(dropdownData[styleElementsKey], categorySlug);
802
+ } else {
803
+ categoryElementsProcessed = addCategoryToElements(categoryElementsProcessed, categorySlug);
804
+ }
725
805
 
726
- var onStoresClick = function onStoresClick() {
727
- setSubMenuOpen(false);
728
- setDisplayedSubMenu('stores');
729
- };
806
+ var subMenuTitle = 'Brands';
730
807
 
731
- var onBackClick = function onBackClick() {
732
- setSubMenuOpen(false);
733
- setDisplayedSubMenu('');
734
- };
808
+ if (categorySlug !== 'brands') {
809
+ subMenuTitle = "".concat(categoryName, " Brands");
810
+ }
735
811
 
736
- var onCloseSideNav = function onCloseSideNav(e) {
737
- onMenuClick();
738
- setSubMenuOpen(false);
739
- setDisplayedSubMenu('');
812
+ var subMenu = categorySlug;
740
813
 
741
- if (e && e.key === 'Enter') {
742
- e.preventDefault();
814
+ if (subMenu === 'brands') {
815
+ subMenu = 'new';
743
816
  }
744
- };
745
-
746
- function addCategoryToElements(elements, categoryName) {
747
- return elements.map(function (element) {
748
- return _objectSpread2(_objectSpread2({}, element), {}, {
749
- category: categoryName
750
- });
751
- });
752
- }
753
817
 
754
- React.useMemo(function () {
755
- setLoading(true);
756
- axios.get("".concat(categoryConfig.menuData)).then(function (_ref2) {
757
- var data = _ref2.data;
758
- setLoading(false);
759
- setDropdownData(data);
760
- }).catch(function () {
761
- return setHasError(true);
818
+ return /*#__PURE__*/React.createElement(BrandsDropDown, {
819
+ key: categorySlug,
820
+ subMenuOpen: subMenuOpen && displayedSubMenu === subMenu,
821
+ onBackClick: onBackClick,
822
+ backIcon: backIcon,
823
+ subMenuCategoryTitle: "Department",
824
+ productUrl: productUrl,
825
+ categoryElements: categoryElementsProcessed,
826
+ subMenuBrandsTitle: subMenuTitle,
827
+ brandsList: dropdownData[elementsKey],
828
+ categorySlug: displayedSubMenu,
829
+ isLoading: loading,
830
+ hasError: hasError,
831
+ onCloseSideNav: onCloseSideNav,
832
+ LinkComponent: LinkComponent
762
833
  });
763
- }, [categoryConfig.menuData]);
764
-
765
- var renderMenuItems = function renderMenuItems() {
766
- return categoryConfig.categories.map(function (category) {
767
- var title = category.title,
768
- categorySlug = category.categorySlug;
769
- var slug = categorySlug;
770
-
771
- if (categorySlug === 'brands') {
772
- slug = 'new';
773
- }
834
+ });
835
+ };
774
836
 
775
- return /*#__PURE__*/React__default.createElement("div", {
776
- className: "side-nav__menu-item",
777
- key: slug
778
- }, /*#__PURE__*/React__default.createElement("button", {
779
- type: "button",
780
- className: "side-nav__menu-title-wrapper",
781
- onClick: function onClick() {
782
- return onSubMenuClick(slug);
783
- }
784
- }, /*#__PURE__*/React__default.createElement("span", {
785
- className: "side-nav__menu-title"
786
- }, title), /*#__PURE__*/React__default.createElement("img", {
787
- src: accordionIcon,
788
- alt: "accordion-icon",
789
- className: "side-nav__accordion-icon"
790
- })));
791
- });
837
+ return /*#__PURE__*/React.createElement("div", {
838
+ className: "side-nav"
839
+ }, /*#__PURE__*/React.createElement("div", {
840
+ role: "button",
841
+ tabIndex: 0,
842
+ className: "side-nav__overlay ".concat(showSideNav ? 'side-nav__overlay--visible' : 'side-nav__overlay--hidden', " "),
843
+ onClick: onCloseSideNav,
844
+ onKeyDown: onCloseSideNav
845
+ }), /*#__PURE__*/React.createElement("div", {
846
+ className: "side-nav__content ".concat(subMenuOpen ? 'side-nav__content--hidden' : '', " ").concat(showSideNav ? 'side-nav__content--open' : 'side-nav__content--closed')
847
+ }, /*#__PURE__*/React.createElement("button", {
848
+ type: "button",
849
+ onClick: onMenuClick,
850
+ className: "side-nav__icon-container"
851
+ }, /*#__PURE__*/React.createElement("img", {
852
+ src: closeIcon,
853
+ alt: "close-icon",
854
+ className: "side-nav__close-icon"
855
+ })), /*#__PURE__*/React.createElement("div", {
856
+ className: "side-nav__menu-items-wrapper"
857
+ }, renderMenuItems(), !!stores.length && /*#__PURE__*/React.createElement("div", {
858
+ className: "side-nav__menu-item",
859
+ key: "stores"
860
+ }, /*#__PURE__*/React.createElement("button", {
861
+ type: "button",
862
+ className: "side-nav__menu-title-wrapper",
863
+ onClick: onStoresClick
864
+ }, /*#__PURE__*/React.createElement("span", {
865
+ className: "side-nav__menu-title"
866
+ }, "Our Stores"), /*#__PURE__*/React.createElement("img", {
867
+ src: accordionIcon,
868
+ alt: "accordion-icon",
869
+ className: "side-nav__accordion-icon"
870
+ }))), /*#__PURE__*/React.createElement("div", {
871
+ className: "side-nav__menu-item",
872
+ key: "sell-to-us"
873
+ }, /*#__PURE__*/React.createElement("button", {
874
+ type: "button",
875
+ className: "side-nav__block-button",
876
+ onClick: onSellToUsClick
877
+ }, "Sell To Us")), /*#__PURE__*/React.createElement("div", {
878
+ className: "side-nav__menu-item",
879
+ key: "our-story"
880
+ }, /*#__PURE__*/React.createElement("button", {
881
+ type: "button",
882
+ className: "side-nav__sub-link",
883
+ onClick: onOurStoryClick
884
+ }, "Our Story")), typeof onBlogClick === 'function' && /*#__PURE__*/React.createElement("div", {
885
+ className: "side-nav__menu-item",
886
+ key: "blog"
887
+ }, /*#__PURE__*/React.createElement("button", {
888
+ type: "button",
889
+ className: "side-nav__sub-link",
890
+ onClick: onBlogClick
891
+ }, "Blog")), /*#__PURE__*/React.createElement("div", {
892
+ className: "side-nav__menu-item",
893
+ key: "contact-us"
894
+ }, /*#__PURE__*/React.createElement("button", {
895
+ type: "button",
896
+ className: "side-nav__sub-link",
897
+ onClick: onContactUsClick
898
+ }, "Contact Us")), /*#__PURE__*/React.createElement("div", {
899
+ className: "side-nav__menu-item",
900
+ key: "my-account"
901
+ }, /*#__PURE__*/React.createElement("button", {
902
+ type: "button",
903
+ className: "side-nav__sub-link",
904
+ onClick: onAccountClick
905
+ }, "My Account")), /*#__PURE__*/React.createElement("div", {
906
+ className: "side-nav__menu-item",
907
+ key: "my-cart"
908
+ }, /*#__PURE__*/React.createElement("button", {
909
+ type: "button",
910
+ className: "side-nav__sub-link",
911
+ onClick: onCartClick
912
+ }, "My Cart")), /*#__PURE__*/React.createElement(CurrencySelect, {
913
+ key: "currency",
914
+ currency: currency,
915
+ currencyOptions: currencyOptions,
916
+ onCurrencyChange: onCurrencyChange,
917
+ isCurrencySelectionDisabled: isCurrencySelectionDisabled,
918
+ tooltipContent: tooltipContent
919
+ }))), renderDropdownLinks(), displayedSubMenu === 'stores' && /*#__PURE__*/React.createElement("div", {
920
+ className: "side-nav__content"
921
+ }, /*#__PURE__*/React.createElement(StoresDropdown, {
922
+ key: "stores",
923
+ backIcon: backIcon,
924
+ onBackClick: onBackClick,
925
+ stores: stores,
926
+ onContactUsClick: onContactUsClick
927
+ })));
928
+ };
929
+
930
+ var SearchResults = function SearchResults(_ref) {
931
+ var _searchResults$brands, _searchResults$produc, _initialSearchData$tr, _initialSearchData$la;
932
+
933
+ var searchValue = _ref.searchValue,
934
+ searchResults = _ref.searchResults,
935
+ onViewAll = _ref.onViewAll,
936
+ searchResultsRef = _ref.searchResultsRef,
937
+ onSearchSubmit = _ref.onSearchSubmit,
938
+ setSearchValue = _ref.setSearchValue,
939
+ initialSearchData = _ref.initialSearchData,
940
+ isSearchFocused = _ref.isSearchFocused,
941
+ setIsSearchFocused = _ref.setIsSearchFocused,
942
+ currency = _ref.currency,
943
+ currencySymbol = _ref.currencySymbol,
944
+ onProductSearchResultClick = _ref.onProductSearchResultClick,
945
+ onBrandSearchResultClick = _ref.onBrandSearchResultClick,
946
+ onCreateInterests = _ref.onCreateInterests,
947
+ noResultsImage = _ref.noResultsImage,
948
+ showNoResults = _ref.showNoResults,
949
+ _ref$isLoading = _ref.isLoading,
950
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
951
+ _ref$showCreateIntere = _ref.showCreateInterest,
952
+ showCreateInterest = _ref$showCreateIntere === void 0 ? true : _ref$showCreateIntere;
953
+
954
+ var _useState = useState(false),
955
+ _useState2 = _slicedToArray(_useState, 2),
956
+ isMobile = _useState2[0],
957
+ setIsMobile = _useState2[1];
958
+
959
+ useEffect(function () {
960
+ var checkIfMobile = function checkIfMobile() {
961
+ setIsMobile(window.innerWidth <= 1024);
792
962
  };
793
963
 
794
- var renderDropdownLinks = function renderDropdownLinks() {
795
- return categoryConfig.categories.map(function (category) {
796
- var categorySlug = category.categorySlug,
797
- categoryName = category.categoryName,
798
- elementsKey = category.elementsKey,
799
- subCategoryElementsKey = category.subCategoryElementsKey,
800
- styleElementsKey = category.styleElementsKey;
801
- var categoryElementsProcessed = categoryElements;
802
-
803
- if (subCategoryElementsKey && dropdownData[subCategoryElementsKey]) {
804
- // show subcategory elements
805
- categoryElementsProcessed = removeCategoryByName(dropdownData[subCategoryElementsKey], categoryName);
806
- } else if (styleElementsKey && dropdownData[styleElementsKey]) {
807
- categoryElementsProcessed = addCategoryToElements(dropdownData[styleElementsKey], categorySlug);
808
- } else {
809
- categoryElementsProcessed = addCategoryToElements(categoryElementsProcessed, categorySlug);
810
- }
811
-
812
- var subMenuTitle = 'Brands';
813
-
814
- if (categorySlug !== 'brands') {
815
- subMenuTitle = "".concat(categoryName, " Brands");
816
- }
817
-
818
- var subMenu = categorySlug;
819
-
820
- if (subMenu === 'brands') {
821
- subMenu = 'new';
822
- }
823
-
824
- return /*#__PURE__*/React__default.createElement(BrandsDropDown, {
825
- key: categorySlug,
826
- subMenuOpen: subMenuOpen && displayedSubMenu === subMenu,
827
- onBackClick: onBackClick,
828
- backIcon: backIcon,
829
- subMenuCategoryTitle: "Department",
830
- productUrl: productUrl,
831
- categoryElements: categoryElementsProcessed,
832
- subMenuBrandsTitle: subMenuTitle,
833
- brandsList: dropdownData[elementsKey],
834
- categorySlug: displayedSubMenu,
835
- isLoading: loading,
836
- hasError: hasError,
837
- onCloseSideNav: onCloseSideNav,
838
- LinkComponent: LinkComponent
839
- });
840
- });
964
+ checkIfMobile();
965
+ window.addEventListener('resize', checkIfMobile);
966
+ return function () {
967
+ window.removeEventListener('resize', checkIfMobile);
841
968
  };
969
+ }, []);
970
+ var hasSearchBeenPerformed = (searchValue === null || searchValue === void 0 ? void 0 : searchValue.trim().length) >= 3;
971
+ var hasResults = (searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$brands = searchResults.brands) === null || _searchResults$brands === void 0 ? void 0 : _searchResults$brands.length) > 0 || (searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$produc = searchResults.products) === null || _searchResults$produc === void 0 ? void 0 : _searchResults$produc.length) > 0;
972
+ 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;
973
+ var shouldShowInitialData = isSearchFocused && (!hasSearchBeenPerformed || !hasResults && !showNoResults);
974
+
975
+ if (!isSearchFocused) {
976
+ return null;
977
+ }
842
978
 
843
- return /*#__PURE__*/React__default.createElement("div", {
844
- className: "side-nav"
845
- }, /*#__PURE__*/React__default.createElement("div", {
846
- role: "button",
847
- tabIndex: 0,
848
- className: "side-nav__overlay ".concat(showSideNav ? 'side-nav__overlay--visible' : 'side-nav__overlay--hidden', " "),
849
- onClick: onCloseSideNav,
850
- onKeyDown: onCloseSideNav
851
- }), /*#__PURE__*/React__default.createElement("div", {
852
- className: "side-nav__content ".concat(subMenuOpen ? 'side-nav__content--hidden' : '', " ").concat(showSideNav ? 'side-nav__content--open' : 'side-nav__content--closed')
853
- }, /*#__PURE__*/React__default.createElement("button", {
854
- type: "button",
855
- onClick: onMenuClick,
856
- className: "side-nav__icon-container"
857
- }, /*#__PURE__*/React__default.createElement("img", {
858
- src: closeIcon,
859
- alt: "close-icon",
860
- className: "side-nav__close-icon"
861
- })), /*#__PURE__*/React__default.createElement("div", {
862
- className: "side-nav__menu-items-wrapper"
863
- }, renderMenuItems(), !!stores.length && /*#__PURE__*/React__default.createElement("div", {
864
- className: "side-nav__menu-item",
865
- key: "stores"
866
- }, /*#__PURE__*/React__default.createElement("button", {
867
- type: "button",
868
- className: "side-nav__menu-title-wrapper",
869
- onClick: onStoresClick
870
- }, /*#__PURE__*/React__default.createElement("span", {
871
- className: "side-nav__menu-title"
872
- }, "Our Stores"), /*#__PURE__*/React__default.createElement("img", {
873
- src: accordionIcon,
874
- alt: "accordion-icon",
875
- className: "side-nav__accordion-icon"
876
- }))), /*#__PURE__*/React__default.createElement("div", {
877
- className: "side-nav__menu-item",
878
- key: "sell-to-us"
879
- }, /*#__PURE__*/React__default.createElement("button", {
880
- type: "button",
881
- className: "side-nav__block-button",
882
- onClick: onSellToUsClick
883
- }, "Sell To Us")), /*#__PURE__*/React__default.createElement("div", {
884
- className: "side-nav__menu-item",
885
- key: "our-story"
886
- }, /*#__PURE__*/React__default.createElement("button", {
887
- type: "button",
888
- className: "side-nav__sub-link",
889
- onClick: onOurStoryClick
890
- }, "Our Story")), typeof onBlogClick === 'function' && /*#__PURE__*/React__default.createElement("div", {
891
- className: "side-nav__menu-item",
892
- key: "blog"
893
- }, /*#__PURE__*/React__default.createElement("button", {
894
- type: "button",
895
- className: "side-nav__sub-link",
896
- onClick: onBlogClick
897
- }, "Blog")), /*#__PURE__*/React__default.createElement("div", {
898
- className: "side-nav__menu-item",
899
- key: "contact-us"
900
- }, /*#__PURE__*/React__default.createElement("button", {
901
- type: "button",
902
- className: "side-nav__sub-link",
903
- onClick: onContactUsClick
904
- }, "Contact Us")), /*#__PURE__*/React__default.createElement("div", {
905
- className: "side-nav__menu-item",
906
- key: "my-account"
907
- }, /*#__PURE__*/React__default.createElement("button", {
908
- type: "button",
909
- className: "side-nav__sub-link",
910
- onClick: onAccountClick
911
- }, "My Account")), /*#__PURE__*/React__default.createElement("div", {
912
- className: "side-nav__menu-item",
913
- key: "my-cart"
914
- }, /*#__PURE__*/React__default.createElement("button", {
915
- type: "button",
916
- className: "side-nav__sub-link",
917
- onClick: onCartClick
918
- }, "My Cart")), /*#__PURE__*/React__default.createElement(CurrencySelect, {
919
- key: "currency",
920
- currency: currency,
921
- currencyOptions: currencyOptions,
922
- onCurrencyChange: onCurrencyChange,
923
- isCurrencySelectionDisabled: isCurrencySelectionDisabled,
924
- tooltipContent: tooltipContent
925
- }))), renderDropdownLinks(), displayedSubMenu === 'stores' && /*#__PURE__*/React__default.createElement("div", {
926
- className: "side-nav__content"
927
- }, /*#__PURE__*/React__default.createElement(StoresDropdown, {
928
- key: "stores",
929
- backIcon: backIcon,
930
- onBackClick: onBackClick,
931
- stores: stores,
932
- onContactUsClick: onContactUsClick
933
- })));
934
- };
935
-
936
- var SearchResults = function SearchResults(_ref) {
937
- var _searchResults$brands, _searchResults$produc, _initialSearchData$tr, _initialSearchData$la;
938
-
939
- var searchValue = _ref.searchValue,
940
- searchResults = _ref.searchResults,
941
- onViewAll = _ref.onViewAll,
942
- searchResultsRef = _ref.searchResultsRef,
943
- onSearchSubmit = _ref.onSearchSubmit,
944
- setSearchValue = _ref.setSearchValue,
945
- initialSearchData = _ref.initialSearchData,
946
- isSearchFocused = _ref.isSearchFocused,
947
- setIsSearchFocused = _ref.setIsSearchFocused,
948
- currency = _ref.currency,
949
- currencySymbol = _ref.currencySymbol,
950
- onProductSearchResultClick = _ref.onProductSearchResultClick,
951
- onBrandSearchResultClick = _ref.onBrandSearchResultClick,
952
- onCreateInterests = _ref.onCreateInterests,
953
- noResultsImage = _ref.noResultsImage,
954
- showNoResults = _ref.showNoResults,
955
- _ref$isLoading = _ref.isLoading,
956
- isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
957
- _ref$showCreateIntere = _ref.showCreateInterest,
958
- showCreateInterest = _ref$showCreateIntere === void 0 ? true : _ref$showCreateIntere;
959
-
960
- var _useState = React.useState(false),
961
- _useState2 = _slicedToArray(_useState, 2),
962
- isMobile = _useState2[0],
963
- setIsMobile = _useState2[1];
964
-
965
- React.useEffect(function () {
966
- var checkIfMobile = function checkIfMobile() {
967
- setIsMobile(window.innerWidth <= 1024);
968
- };
969
-
970
- checkIfMobile();
971
- window.addEventListener('resize', checkIfMobile);
972
- return function () {
973
- window.removeEventListener('resize', checkIfMobile);
974
- };
975
- }, []);
976
- var hasSearchBeenPerformed = (searchValue === null || searchValue === void 0 ? void 0 : searchValue.trim().length) >= 3;
977
- var hasResults = (searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$brands = searchResults.brands) === null || _searchResults$brands === void 0 ? void 0 : _searchResults$brands.length) > 0 || (searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$produc = searchResults.products) === null || _searchResults$produc === void 0 ? void 0 : _searchResults$produc.length) > 0;
978
- 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;
979
- var shouldShowInitialData = isSearchFocused && (!hasSearchBeenPerformed || !hasResults && !showNoResults);
980
-
981
- if (!isSearchFocused) {
982
- return null;
983
- }
979
+ if (!hasResults && !hasInitialData && !showNoResults) {
980
+ return null;
981
+ }
984
982
 
985
- if (!hasResults && !hasInitialData && !showNoResults) {
986
- return null;
987
- }
983
+ var formatPrice = function formatPrice(price) {
984
+ var formatter = new Intl.NumberFormat(undefined, {
985
+ minimumFractionDigits: 0,
986
+ maximumFractionDigits: 2
987
+ });
988
+ return "".concat(currencySymbol).concat(formatter.format(price));
989
+ };
988
990
 
989
- var formatPrice = function formatPrice(price) {
990
- var formatter = new Intl.NumberFormat(undefined, {
991
- minimumFractionDigits: 0,
992
- maximumFractionDigits: 2
993
- });
994
- return "".concat(currencySymbol).concat(formatter.format(price));
995
- };
991
+ var renderBrandSkeleton = function renderBrandSkeleton() {
992
+ return /*#__PURE__*/React.createElement("div", {
993
+ className: "brand-skeleton"
994
+ }, /*#__PURE__*/React.createElement("div", {
995
+ className: "brand-skeleton__item shimmer"
996
+ }), /*#__PURE__*/React.createElement("div", {
997
+ className: "brand-skeleton__item shimmer"
998
+ }), /*#__PURE__*/React.createElement("div", {
999
+ className: "brand-skeleton__item shimmer"
1000
+ }), /*#__PURE__*/React.createElement("div", {
1001
+ className: "brand-skeleton__item shimmer"
1002
+ }));
1003
+ };
996
1004
 
997
- var renderBrandSkeleton = function renderBrandSkeleton() {
998
- return /*#__PURE__*/React__default.createElement("div", {
999
- className: "brand-skeleton"
1000
- }, /*#__PURE__*/React__default.createElement("div", {
1001
- className: "brand-skeleton__item shimmer"
1002
- }), /*#__PURE__*/React__default.createElement("div", {
1003
- className: "brand-skeleton__item shimmer"
1004
- }), /*#__PURE__*/React__default.createElement("div", {
1005
- className: "brand-skeleton__item shimmer"
1006
- }), /*#__PURE__*/React__default.createElement("div", {
1007
- className: "brand-skeleton__item shimmer"
1008
- }));
1009
- };
1005
+ var renderProductSkeleton = function renderProductSkeleton() {
1006
+ return /*#__PURE__*/React.createElement(React.Fragment, null, _toConsumableArray(Array(3)).map(function (_, index) {
1007
+ return /*#__PURE__*/React.createElement("div", {
1008
+ key: index,
1009
+ className: "product-skeleton"
1010
+ }, /*#__PURE__*/React.createElement("div", {
1011
+ className: "product-skeleton__image shimmer"
1012
+ }), /*#__PURE__*/React.createElement("div", {
1013
+ className: "product-skeleton__content"
1014
+ }, /*#__PURE__*/React.createElement("div", {
1015
+ className: "product-skeleton__title shimmer"
1016
+ }), /*#__PURE__*/React.createElement("div", {
1017
+ className: "product-skeleton__subtitle shimmer"
1018
+ }), /*#__PURE__*/React.createElement("div", {
1019
+ className: "product-skeleton__price shimmer"
1020
+ })));
1021
+ }));
1022
+ };
1010
1023
 
1011
- var renderProductSkeleton = function renderProductSkeleton() {
1012
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, _toConsumableArray(Array(3)).map(function (_, index) {
1013
- return /*#__PURE__*/React__default.createElement("div", {
1014
- key: index,
1015
- className: "product-skeleton"
1016
- }, /*#__PURE__*/React__default.createElement("div", {
1017
- className: "product-skeleton__image shimmer"
1018
- }), /*#__PURE__*/React__default.createElement("div", {
1019
- className: "product-skeleton__content"
1020
- }, /*#__PURE__*/React__default.createElement("div", {
1021
- className: "product-skeleton__title shimmer"
1022
- }), /*#__PURE__*/React__default.createElement("div", {
1023
- className: "product-skeleton__subtitle shimmer"
1024
- }), /*#__PURE__*/React__default.createElement("div", {
1025
- className: "product-skeleton__price shimmer"
1026
- })));
1027
- }));
1024
+ var renderProductCard = function renderProductCard(product) {
1025
+ var selectedPrice = product.prices ? product.prices.find(function (p) {
1026
+ return p.currency === currency;
1027
+ }) : {
1028
+ price: product.price,
1029
+ retail_price: product.est_retail_price
1028
1030
  };
1029
-
1030
- var renderProductCard = function renderProductCard(product) {
1031
- var selectedPrice = product.prices ? product.prices.find(function (p) {
1032
- return p.currency === currency;
1033
- }) : {
1034
- price: product.price,
1035
- retail_price: product.est_retail_price
1036
- };
1037
- var displayPrice = product.on_promotion && product.promotion_price ? product.promotion_price : selectedPrice.price;
1038
- var hasPromotion = product.on_promotion && product.promotion_price;
1039
- return /*#__PURE__*/React__default.createElement("a", {
1040
- key: product.link,
1041
- href: product.link,
1042
- className: "product-card",
1043
- onClick: function onClick() {
1044
- if (typeof onProductSearchResultClick === 'function') {
1045
- onProductSearchResultClick({
1046
- product_name: product.name,
1047
- product_brand: product.brand,
1048
- product_link: product.link,
1049
- search_string: searchValue,
1050
- is_popular: shouldShowInitialData
1051
- });
1052
- }
1031
+ var displayPrice = product.on_promotion && product.promotion_price ? product.promotion_price : selectedPrice.price;
1032
+ var hasPromotion = product.on_promotion && product.promotion_price;
1033
+ return /*#__PURE__*/React.createElement("a", {
1034
+ key: product.link,
1035
+ href: product.link,
1036
+ className: "product-card",
1037
+ onClick: function onClick() {
1038
+ if (typeof onProductSearchResultClick === 'function') {
1039
+ onProductSearchResultClick({
1040
+ product_name: product.name,
1041
+ product_brand: product.brand,
1042
+ product_link: product.link,
1043
+ search_string: searchValue,
1044
+ is_popular: shouldShowInitialData
1045
+ });
1053
1046
  }
1054
- }, product.featured_image && /*#__PURE__*/React__default.createElement("div", {
1055
- className: "product-card__image-container"
1056
- }, /*#__PURE__*/React__default.createElement("img", {
1057
- src: product.featured_image,
1058
- alt: product.name,
1059
- className: "product-card__image"
1060
- })), /*#__PURE__*/React__default.createElement("div", {
1061
- className: "product-card__details"
1062
- }, /*#__PURE__*/React__default.createElement("h3", {
1063
- className: "product-card__name"
1064
- }, shouldShowInitialData ? /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement("span", {
1065
- className: "product-card__brand-name"
1066
- }, product.brand.toUpperCase()), ' ', product.name) : /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement("span", {
1067
- className: "product-card__brand-name"
1068
- }, product.brand.toUpperCase()), ' ', product.name)), /*#__PURE__*/React__default.createElement("div", {
1069
- className: "product-card__info-row"
1070
- }, /*#__PURE__*/React__default.createElement("div", {
1071
- className: "product-card__price-group"
1072
- }, hasPromotion ? /*#__PURE__*/React__default.createElement("div", {
1073
- className: "product-card__price-with-promotion"
1074
- }, /*#__PURE__*/React__default.createElement("div", {
1075
- className: "product-card__price product-card__price--promotion"
1076
- }, formatPrice(displayPrice)), /*#__PURE__*/React__default.createElement("div", {
1077
- className: "product-card__price product-card__price--original"
1078
- }, formatPrice(selectedPrice.price))) : /*#__PURE__*/React__default.createElement("div", {
1079
- className: "product-card__price"
1080
- }, formatPrice(displayPrice)), selectedPrice.retail_price > 1 && selectedPrice.retail_price > displayPrice && /*#__PURE__*/React__default.createElement("div", {
1081
- className: "product-card__retail-price"
1082
- }, "Est. Retail: ", formatPrice(selectedPrice.retail_price))), product.condition && /*#__PURE__*/React__default.createElement("div", {
1083
- className: "product-card__condition"
1084
- }, /*#__PURE__*/React__default.createElement("span", {
1085
- className: "product-card__condition-label"
1086
- }, "Condition:"), product.condition))));
1087
- };
1047
+ }
1048
+ }, product.featured_image && /*#__PURE__*/React.createElement("div", {
1049
+ className: "product-card__image-container"
1050
+ }, /*#__PURE__*/React.createElement("img", {
1051
+ src: product.featured_image,
1052
+ alt: product.name,
1053
+ className: "product-card__image"
1054
+ })), /*#__PURE__*/React.createElement("div", {
1055
+ className: "product-card__details"
1056
+ }, /*#__PURE__*/React.createElement("h3", {
1057
+ className: "product-card__name"
1058
+ }, shouldShowInitialData ? /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement("span", {
1059
+ className: "product-card__brand-name"
1060
+ }, product.brand.toUpperCase()), ' ', product.name) : /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement("span", {
1061
+ className: "product-card__brand-name"
1062
+ }, product.brand.toUpperCase()), ' ', product.name)), /*#__PURE__*/React.createElement("div", {
1063
+ className: "product-card__info-row"
1064
+ }, /*#__PURE__*/React.createElement("div", {
1065
+ className: "product-card__price-group"
1066
+ }, hasPromotion ? /*#__PURE__*/React.createElement("div", {
1067
+ className: "product-card__price-with-promotion"
1068
+ }, /*#__PURE__*/React.createElement("div", {
1069
+ className: "product-card__price product-card__price--promotion"
1070
+ }, formatPrice(displayPrice)), /*#__PURE__*/React.createElement("div", {
1071
+ className: "product-card__price product-card__price--original"
1072
+ }, formatPrice(selectedPrice.price))) : /*#__PURE__*/React.createElement("div", {
1073
+ className: "product-card__price"
1074
+ }, formatPrice(displayPrice)), selectedPrice.retail_price > 1 && selectedPrice.retail_price > displayPrice && /*#__PURE__*/React.createElement("div", {
1075
+ className: "product-card__retail-price"
1076
+ }, "Est. Retail: ", formatPrice(selectedPrice.retail_price))), product.condition && /*#__PURE__*/React.createElement("div", {
1077
+ className: "product-card__condition"
1078
+ }, /*#__PURE__*/React.createElement("span", {
1079
+ className: "product-card__condition-label"
1080
+ }, "Condition:"), product.condition))));
1081
+ };
1088
1082
 
1089
- var getBrandLink = function getBrandLink(brand) {
1090
- return "/products/brands/".concat(brand.slug);
1091
- };
1083
+ var getBrandLink = function getBrandLink(brand) {
1084
+ return "/products/brands/".concat(brand.slug);
1085
+ };
1092
1086
 
1093
- var limitBrands = function limitBrands(brands) {
1094
- if (isMobile && brands && brands.length > 4) {
1095
- return brands.slice(0, 4);
1096
- }
1087
+ var limitBrands = function limitBrands(brands) {
1088
+ if (isMobile && brands && brands.length > 4) {
1089
+ return brands.slice(0, 4);
1090
+ }
1097
1091
 
1098
- return brands;
1099
- };
1092
+ return brands;
1093
+ };
1100
1094
 
1101
- var renderBrandsList = function renderBrandsList() {
1102
- var _limitBrands2;
1095
+ var renderBrandsList = function renderBrandsList() {
1096
+ var _limitBrands2;
1103
1097
 
1104
- if (isLoading) {
1105
- return renderBrandSkeleton();
1106
- }
1098
+ if (isLoading) {
1099
+ return renderBrandSkeleton();
1100
+ }
1107
1101
 
1108
- if (shouldShowInitialData) {
1109
- var _limitBrands;
1110
-
1111
- return (_limitBrands = limitBrands(initialSearchData === null || initialSearchData === void 0 ? void 0 : initialSearchData.trending_brands)) === null || _limitBrands === void 0 ? void 0 : _limitBrands.map(function (brand) {
1112
- return /*#__PURE__*/React__default.createElement("a", {
1113
- key: brand.id,
1114
- href: getBrandLink(brand),
1115
- className: "search-results__item",
1116
- onClick: function onClick() {
1117
- if (typeof onBrandSearchResultClick === 'function') {
1118
- onBrandSearchResultClick({
1119
- brand_name: brand.name,
1120
- brand_link: getBrandLink(brand),
1121
- search_string: searchValue,
1122
- is_trending: true
1123
- });
1124
- }
1125
- }
1126
- }, brand.name);
1127
- });
1128
- }
1102
+ if (shouldShowInitialData) {
1103
+ var _limitBrands;
1129
1104
 
1130
- return (_limitBrands2 = limitBrands(searchResults === null || searchResults === void 0 ? void 0 : searchResults.brands)) === null || _limitBrands2 === void 0 ? void 0 : _limitBrands2.map(function (brand) {
1131
- return /*#__PURE__*/React__default.createElement("a", {
1132
- key: brand.link,
1133
- href: brand.link,
1105
+ return (_limitBrands = limitBrands(initialSearchData === null || initialSearchData === void 0 ? void 0 : initialSearchData.trending_brands)) === null || _limitBrands === void 0 ? void 0 : _limitBrands.map(function (brand) {
1106
+ return /*#__PURE__*/React.createElement("a", {
1107
+ key: brand.id,
1108
+ href: getBrandLink(brand),
1134
1109
  className: "search-results__item",
1135
1110
  onClick: function onClick() {
1136
1111
  if (typeof onBrandSearchResultClick === 'function') {
1137
1112
  onBrandSearchResultClick({
1138
1113
  brand_name: brand.name,
1139
- brand_link: brand.link,
1114
+ brand_link: getBrandLink(brand),
1140
1115
  search_string: searchValue,
1141
- is_trending: false
1116
+ is_trending: true
1142
1117
  });
1143
1118
  }
1144
1119
  }
1145
1120
  }, brand.name);
1146
1121
  });
1147
- };
1122
+ }
1148
1123
 
1149
- var renderProductsList = function renderProductsList() {
1150
- var _searchResults$produc2;
1124
+ return (_limitBrands2 = limitBrands(searchResults === null || searchResults === void 0 ? void 0 : searchResults.brands)) === null || _limitBrands2 === void 0 ? void 0 : _limitBrands2.map(function (brand) {
1125
+ return /*#__PURE__*/React.createElement("a", {
1126
+ key: brand.link,
1127
+ href: brand.link,
1128
+ className: "search-results__item",
1129
+ onClick: function onClick() {
1130
+ if (typeof onBrandSearchResultClick === 'function') {
1131
+ onBrandSearchResultClick({
1132
+ brand_name: brand.name,
1133
+ brand_link: brand.link,
1134
+ search_string: searchValue,
1135
+ is_trending: false
1136
+ });
1137
+ }
1138
+ }
1139
+ }, brand.name);
1140
+ });
1141
+ };
1151
1142
 
1152
- if (isLoading) {
1153
- return renderProductSkeleton();
1154
- }
1143
+ var renderProductsList = function renderProductsList() {
1144
+ var _searchResults$produc2;
1155
1145
 
1156
- if (shouldShowInitialData) {
1157
- var _initialSearchData$la2;
1146
+ if (isLoading) {
1147
+ return renderProductSkeleton();
1148
+ }
1158
1149
 
1159
- return initialSearchData === null || initialSearchData === void 0 ? void 0 : (_initialSearchData$la2 = initialSearchData.latest_products) === null || _initialSearchData$la2 === void 0 ? void 0 : _initialSearchData$la2.map(renderProductCard);
1160
- }
1150
+ if (shouldShowInitialData) {
1151
+ var _initialSearchData$la2;
1161
1152
 
1162
- return searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$produc2 = searchResults.products) === null || _searchResults$produc2 === void 0 ? void 0 : _searchResults$produc2.map(renderProductCard);
1163
- }; // Show no results state
1164
-
1165
-
1166
- if (showNoResults) {
1167
- return /*#__PURE__*/React__default.createElement("div", {
1168
- className: "search-results",
1169
- ref: searchResultsRef
1170
- }, /*#__PURE__*/React__default.createElement("div", {
1171
- className: "search-results__no-results"
1172
- }, /*#__PURE__*/React__default.createElement("h2", {
1173
- className: "search-results__header"
1174
- }, "TOP MATCHES"), /*#__PURE__*/React__default.createElement("div", {
1175
- className: "search-results__no-results-content"
1176
- }, /*#__PURE__*/React__default.createElement("div", {
1177
- className: "search-results__no-results-image"
1178
- }, /*#__PURE__*/React__default.createElement("img", {
1179
- src: noResultsImage,
1180
- alt: "No results"
1181
- })), /*#__PURE__*/React__default.createElement("div", {
1182
- className: "search-results__no-results-text"
1183
- }, /*#__PURE__*/React__default.createElement("p", {
1184
- className: "search-results__no-results-title"
1185
- }, "There are currently no products in stock that match your selection"), showCreateInterest && /*#__PURE__*/React__default.createElement("p", {
1186
- className: "search-results__no-results-description"
1187
- }, "Create an interest now and receive instant notifications as your interests list."))), showCreateInterest && /*#__PURE__*/React__default.createElement("button", {
1188
- type: "button",
1189
- className: "search-results__create-interest-button",
1190
- onClick: onCreateInterests
1191
- }, "Create Interests")));
1153
+ return initialSearchData === null || initialSearchData === void 0 ? void 0 : (_initialSearchData$la2 = initialSearchData.latest_products) === null || _initialSearchData$la2 === void 0 ? void 0 : _initialSearchData$la2.map(renderProductCard);
1192
1154
  }
1193
1155
 
1194
- return /*#__PURE__*/React__default.createElement("div", {
1156
+ return searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$produc2 = searchResults.products) === null || _searchResults$produc2 === void 0 ? void 0 : _searchResults$produc2.map(renderProductCard);
1157
+ }; // Show no results state
1158
+
1159
+
1160
+ if (showNoResults) {
1161
+ return /*#__PURE__*/React.createElement("div", {
1195
1162
  className: "search-results",
1196
1163
  ref: searchResultsRef
1197
- }, /*#__PURE__*/React__default.createElement("div", {
1198
- className: "search-results__section"
1199
- }, /*#__PURE__*/React__default.createElement("h2", {
1200
- className: "search-results__header"
1201
- }, shouldShowInitialData ? 'TRENDING SEARCHES' : 'BRANDS'), /*#__PURE__*/React__default.createElement("div", {
1202
- className: "search-results__list"
1203
- }, renderBrandsList())), /*#__PURE__*/React__default.createElement("div", {
1204
- className: "search-results__section"
1205
- }, /*#__PURE__*/React__default.createElement("div", {
1206
- className: "search-results__section-header"
1207
- }, /*#__PURE__*/React__default.createElement("h2", {
1164
+ }, /*#__PURE__*/React.createElement("div", {
1165
+ className: "search-results__no-results"
1166
+ }, /*#__PURE__*/React.createElement("h2", {
1208
1167
  className: "search-results__header"
1209
- }, shouldShowInitialData ? 'POPULAR' : 'TOP MATCHES'), /*#__PURE__*/React__default.createElement("button", {
1210
- type: "button",
1211
- className: "search-results__view-all-link",
1212
- onClick: function onClick() {
1213
- onViewAll();
1214
- }
1215
- }, "View all items")), /*#__PURE__*/React__default.createElement("div", {
1216
- className: "search-results__product-list"
1217
- }, renderProductsList()), /*#__PURE__*/React__default.createElement("button", {
1168
+ }, "TOP MATCHES"), /*#__PURE__*/React.createElement("div", {
1169
+ className: "search-results__no-results-content"
1170
+ }, /*#__PURE__*/React.createElement("div", {
1171
+ className: "search-results__no-results-image"
1172
+ }, /*#__PURE__*/React.createElement("img", {
1173
+ src: noResultsImage,
1174
+ alt: "No results"
1175
+ })), /*#__PURE__*/React.createElement("div", {
1176
+ className: "search-results__no-results-text"
1177
+ }, /*#__PURE__*/React.createElement("p", {
1178
+ className: "search-results__no-results-title"
1179
+ }, "There are currently no products in stock that match your selection"), showCreateInterest && /*#__PURE__*/React.createElement("p", {
1180
+ className: "search-results__no-results-description"
1181
+ }, "Create an interest now and receive instant notifications as your interests list."))), showCreateInterest && /*#__PURE__*/React.createElement("button", {
1218
1182
  type: "button",
1219
- className: "search-results__view-all-button",
1220
- onClick: function onClick() {
1221
- onViewAll();
1183
+ className: "search-results__create-interest-button",
1184
+ onClick: onCreateInterests
1185
+ }, "Create Interests")));
1186
+ }
1222
1187
 
1223
- if (!shouldShowInitialData) {
1224
- onSearchSubmit(searchValue);
1225
- setSearchValue('');
1226
- setIsSearchFocused(false);
1227
- }
1188
+ return /*#__PURE__*/React.createElement("div", {
1189
+ className: "search-results",
1190
+ ref: searchResultsRef
1191
+ }, /*#__PURE__*/React.createElement("div", {
1192
+ className: "search-results__section"
1193
+ }, /*#__PURE__*/React.createElement("h2", {
1194
+ className: "search-results__header"
1195
+ }, shouldShowInitialData ? 'TRENDING SEARCHES' : 'BRANDS'), /*#__PURE__*/React.createElement("div", {
1196
+ className: "search-results__list"
1197
+ }, renderBrandsList())), /*#__PURE__*/React.createElement("div", {
1198
+ className: "search-results__section"
1199
+ }, /*#__PURE__*/React.createElement("div", {
1200
+ className: "search-results__section-header"
1201
+ }, /*#__PURE__*/React.createElement("h2", {
1202
+ className: "search-results__header"
1203
+ }, shouldShowInitialData ? 'POPULAR' : 'TOP MATCHES'), /*#__PURE__*/React.createElement("button", {
1204
+ type: "button",
1205
+ className: "search-results__view-all-link",
1206
+ onClick: function onClick() {
1207
+ onViewAll();
1208
+ }
1209
+ }, "View all items")), /*#__PURE__*/React.createElement("div", {
1210
+ className: "search-results__product-list"
1211
+ }, renderProductsList()), /*#__PURE__*/React.createElement("button", {
1212
+ type: "button",
1213
+ className: "search-results__view-all-button",
1214
+ onClick: function onClick() {
1215
+ onViewAll();
1216
+
1217
+ if (!shouldShowInitialData) {
1218
+ onSearchSubmit(searchValue);
1219
+ setSearchValue('');
1220
+ setIsSearchFocused(false);
1228
1221
  }
1229
- }, "View all items")));
1222
+ }
1223
+ }, "View all items")));
1224
+ };
1225
+
1226
+ var searchBrandsAggregations = function searchBrandsAggregations(search, currencyCode) {
1227
+ return {
1228
+ query: "\n query GetProductFilterAggregations($search: String!) {\n luxity_products_aggregations(search: $search) {\n luxity_brand {\n name\n }\n }\n }\n ",
1229
+ variables: {
1230
+ search: search,
1231
+ currency_code: currencyCode
1232
+ }
1230
1233
  };
1231
-
1232
- var searchBrandsAggregations = function searchBrandsAggregations(search, currencyCode) {
1233
- return {
1234
- query: "\n query GetProductFilterAggregations($search: String!) {\n luxity_products_aggregations(search: $search) {\n luxity_brand {\n name\n }\n }\n }\n ",
1235
- variables: {
1236
- search: search,
1237
- currency_code: currencyCode
1234
+ }; // NEW: Get top products for search dropdown (right side)
1235
+
1236
+ var searchProductsFilter = function searchProductsFilter(search, limit, currencyCode) {
1237
+ return {
1238
+ query: "\n query LUXITY_PRODUCTS_FILTER(\n $search: String!\n $limit: Int!\n $page: Int!\n $sort_by: String!\n $with_sold: Boolean!\n $currency_code: String!\n ) {\n luxity_products_filter(\n search: $search\n limit: $limit\n page: $page\n sort_by: $sort_by\n with_sold: $with_sold\n ) {\n data {\n id\n product {\n sku\n name\n price(currency_code: $currency_code)\n promotion_price(currency_code: $currency_code)\n est_retail_price(currency_code: $currency_code)\n condition\n currency_symbol(currency_code: $currency_code)\n }\n product_slug\n category_type\n gender\n status\n featured_image\n on_promotion\n promotion_discount\n luxity_brand {\n id\n name\n slug\n }\n }\n total\n }\n }\n ",
1239
+ variables: {
1240
+ search: search,
1241
+ limit: limit,
1242
+ page: 1,
1243
+ sort_by: 'newest',
1244
+ with_sold: false,
1245
+ currency_code: currencyCode
1246
+ }
1247
+ };
1248
+ };
1249
+
1250
+ var useSearch = function useSearch(_ref) {
1251
+ var endpoint = _ref.endpoint,
1252
+ onSearchLoading = _ref.onSearchLoading,
1253
+ currency = _ref.currency,
1254
+ onSearchPreview = _ref.onSearchPreview,
1255
+ onNoResults = _ref.onNoResults;
1256
+ var currentSearchRequestToken = useRef(null);
1257
+ var debounce = useCallback(function (func, wait) {
1258
+ var timeout;
1259
+ return function executedFunction() {
1260
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1261
+ args[_key] = arguments[_key];
1238
1262
  }
1263
+
1264
+ var later = function later() {
1265
+ clearTimeout(timeout);
1266
+ func.apply(void 0, args);
1267
+ };
1268
+
1269
+ clearTimeout(timeout);
1270
+ timeout = setTimeout(later, wait);
1239
1271
  };
1240
- }; // NEW: Get top products for search dropdown (right side)
1241
-
1242
- var searchProductsFilter = function searchProductsFilter(search, limit, currencyCode) {
1243
- return {
1244
- query: "\n query LUXITY_PRODUCTS_FILTER(\n $search: String!\n $limit: Int!\n $page: Int!\n $sort_by: String!\n $with_sold: Boolean!\n $currency_code: String!\n ) {\n luxity_products_filter(\n search: $search\n limit: $limit\n page: $page\n sort_by: $sort_by\n with_sold: $with_sold\n ) {\n data {\n id\n product {\n sku\n name\n price(currency_code: $currency_code)\n promotion_price(currency_code: $currency_code)\n est_retail_price(currency_code: $currency_code)\n condition\n currency_symbol(currency_code: $currency_code)\n }\n product_slug\n category_type\n gender\n status\n featured_image\n on_promotion\n promotion_discount\n luxity_brand {\n id\n name\n slug\n }\n }\n total\n }\n }\n ",
1245
- variables: {
1246
- search: search,
1247
- limit: limit,
1248
- page: 1,
1249
- sort_by: 'newest',
1250
- with_sold: false,
1251
- currency_code: currencyCode
1272
+ }, []);
1273
+ var fetchInitialSearchData = useCallback(function (initialSearchDataUrl, setInitialSearchView) {
1274
+ axios.get("".concat(initialSearchDataUrl)).then(function (_ref2) {
1275
+ var data = _ref2.data;
1276
+ setInitialSearchView({
1277
+ trending_brands: data.trending_brands,
1278
+ latest_products: data.latest_products
1279
+ });
1280
+ }).catch(function () {
1281
+ setInitialSearchView({
1282
+ trending_brands: [],
1283
+ latest_products: []
1284
+ });
1285
+ });
1286
+ }, []);
1287
+ var performSearch = useCallback(function (searchQuery, setSearchResults) {
1288
+ if (!searchQuery || searchQuery.trim() === '') {
1289
+ setSearchResults({
1290
+ brands: [],
1291
+ products: []
1292
+ }); // Reset no results state when clearing search
1293
+
1294
+ if (typeof onNoResults === 'function') {
1295
+ onNoResults(false);
1252
1296
  }
1253
- };
1254
- };
1255
1297
 
1256
- var useSearch = function useSearch(_ref) {
1257
- var endpoint = _ref.endpoint,
1258
- onSearchLoading = _ref.onSearchLoading,
1259
- currency = _ref.currency,
1260
- onSearchPreview = _ref.onSearchPreview,
1261
- onNoResults = _ref.onNoResults;
1262
- var currentSearchRequestToken = React.useRef(null);
1263
- var debounce = React.useCallback(function (func, wait) {
1264
- var timeout;
1265
- return function executedFunction() {
1266
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1267
- args[_key] = arguments[_key];
1268
- }
1298
+ return;
1299
+ } // Cancel any ongoing search request to prevent race conditions
1269
1300
 
1270
- var later = function later() {
1271
- clearTimeout(timeout);
1272
- func.apply(void 0, args);
1273
- };
1274
1301
 
1275
- clearTimeout(timeout);
1276
- timeout = setTimeout(later, wait);
1277
- };
1278
- }, []);
1279
- var fetchInitialSearchData = React.useCallback(function (initialSearchDataUrl, setInitialSearchView) {
1280
- axios.get("".concat(initialSearchDataUrl)).then(function (_ref2) {
1281
- var data = _ref2.data;
1282
- setInitialSearchView({
1283
- trending_brands: data.trending_brands,
1284
- latest_products: data.latest_products
1285
- });
1286
- }).catch(function () {
1287
- setInitialSearchView({
1288
- trending_brands: [],
1289
- latest_products: []
1290
- });
1291
- });
1292
- }, []);
1293
- var performSearch = React.useCallback(function (searchQuery, setSearchResults) {
1294
- if (!searchQuery || searchQuery.trim() === '') {
1295
- setSearchResults({
1296
- brands: [],
1297
- products: []
1298
- }); // Reset no results state when clearing search
1302
+ if (currentSearchRequestToken.current) {
1303
+ currentSearchRequestToken.current.cancel();
1304
+ } // Create a new token for this specific search request
1299
1305
 
1300
- if (typeof onNoResults === 'function') {
1301
- onNoResults(false);
1302
- }
1303
1306
 
1304
- return;
1305
- } // Cancel any ongoing search request to prevent race conditions
1307
+ var newSearchToken = axios.CancelToken.source();
1308
+ currentSearchRequestToken.current = newSearchToken; // Reset no results state when starting new search (user is typing)
1306
1309
 
1310
+ if (typeof onNoResults === 'function') {
1311
+ onNoResults(false);
1312
+ } // Set loading to true when starting the search request
1307
1313
 
1308
- if (currentSearchRequestToken.current) {
1309
- currentSearchRequestToken.current.cancel();
1310
- } // Create a new token for this specific search request
1311
1314
 
1315
+ if (typeof onSearchLoading === 'function') {
1316
+ onSearchLoading(true);
1317
+ } // Make TWO parallel queries: brands aggregations + products filter
1312
1318
 
1313
- var newSearchToken = axios.CancelToken.source();
1314
- currentSearchRequestToken.current = newSearchToken; // Reset no results state when starting new search (user is typing)
1315
1319
 
1316
- if (typeof onNoResults === 'function') {
1317
- onNoResults(false);
1318
- } // Set loading to true when starting the search request
1319
-
1320
-
1321
- if (typeof onSearchLoading === 'function') {
1322
- onSearchLoading(true);
1323
- } // Make TWO parallel queries: brands aggregations + products filter
1324
-
1325
-
1326
- Promise.all([// Query 1: Get brands aggregations
1327
- axios.post(endpoint, searchBrandsAggregations(searchQuery, currency), {
1328
- cancelToken: newSearchToken.token
1329
- }), // Query 2: Get top 3 products
1330
- axios.post(endpoint, searchProductsFilter(searchQuery, 3, currency), {
1331
- cancelToken: newSearchToken.token
1332
- })]).then(function (_ref3) {
1333
- var _ref4 = _slicedToArray(_ref3, 2),
1334
- brandsResponse = _ref4[0],
1335
- productsResponse = _ref4[1];
1336
-
1337
- if (currentSearchRequestToken.current === newSearchToken) {
1338
- var _brandsResponse$data$, _productsResponse$dat, _productsResponse$dat2;
1339
-
1340
- // Set loading to false when search completes
1341
- if (typeof onSearchLoading === 'function') {
1342
- onSearchLoading(false);
1343
- } // Extract brands from aggregations
1344
-
1345
-
1346
- var brandsData = ((_brandsResponse$data$ = brandsResponse.data.data.luxity_products_aggregations) === null || _brandsResponse$data$ === void 0 ? void 0 : _brandsResponse$data$.luxity_brand) || []; // Extract products from filter
1347
-
1348
- var productsData = ((_productsResponse$dat = productsResponse.data.data.luxity_products_filter) === null || _productsResponse$dat === void 0 ? void 0 : _productsResponse$dat.data) || [];
1349
- var totalResults = ((_productsResponse$dat2 = productsResponse.data.data.luxity_products_filter) === null || _productsResponse$dat2 === void 0 ? void 0 : _productsResponse$dat2.total) || 0; // Map brands to old structure: { name, link }
1350
-
1351
- var brands = brandsData.slice(0, 10).map(function (brand) {
1352
- return {
1353
- name: brand.name,
1354
- link: "/products/brands/".concat(brand.name.toLowerCase().replace(/\s+/g, '-')) // Convert to slug
1355
-
1356
- };
1357
- }); // Map products to old structure with prices
1358
-
1359
- var products = productsData.map(function (product) {
1360
- // Generate product link: /products/{category_type}/{brand_slug}/{product_slug}
1361
- var categorySlug = product.category_type.toLowerCase().replace(/\s+/g, '-');
1362
- var brandSlug = product.luxity_brand.slug;
1363
- var productSlug = product.product_slug;
1364
- var link = "/products/".concat(categorySlug, "/").concat(brandSlug, "/").concat(productSlug);
1365
- return {
1366
- name: product.product.name,
1367
- brand: product.luxity_brand.name,
1368
- link: link,
1369
- price: product.product.price || 0,
1370
- promotion_price: product.product.promotion_price || null,
1371
- est_retail_price: product.product.est_retail_price || 0,
1372
- condition: product.product.condition || '',
1373
- currency_symbol: product.product.currency_symbol || '',
1374
- featured_image: product.featured_image,
1375
- on_promotion: product.on_promotion || false,
1376
- promotion_discount: product.promotion_discount || 0,
1377
- id: product.id,
1378
- category_type: product.category_type,
1379
- product_slug: product.product_slug,
1380
- luxity_brand: product.luxity_brand
1381
- };
1382
- });
1383
- var searchResults = {
1384
- brands: brands,
1385
- products: products,
1386
- total: totalResults
1387
- };
1388
- setSearchResults(searchResults); // Check if we have no results (empty aggregations)
1320
+ Promise.all([// Query 1: Get brands aggregations
1321
+ axios.post(endpoint, searchBrandsAggregations(searchQuery, currency), {
1322
+ cancelToken: newSearchToken.token
1323
+ }), // Query 2: Get top 3 products
1324
+ axios.post(endpoint, searchProductsFilter(searchQuery, 3, currency), {
1325
+ cancelToken: newSearchToken.token
1326
+ })]).then(function (_ref3) {
1327
+ var _ref4 = _slicedToArray(_ref3, 2),
1328
+ brandsResponse = _ref4[0],
1329
+ productsResponse = _ref4[1];
1389
1330
 
1390
- var hasNoResults = brandsData.length === 0 && productsData.length === 0;
1331
+ if (currentSearchRequestToken.current === newSearchToken) {
1332
+ var _brandsResponse$data$, _productsResponse$dat, _productsResponse$dat2;
1391
1333
 
1392
- if (typeof onNoResults === 'function') {
1393
- onNoResults(hasNoResults);
1394
- }
1334
+ // Set loading to false when search completes
1335
+ if (typeof onSearchLoading === 'function') {
1336
+ onSearchLoading(false);
1337
+ } // Extract brands from aggregations
1395
1338
 
1396
- if (typeof onSearchPreview === 'function') {
1397
- var hasResults = brands.length > 0 || products.length > 0;
1398
- onSearchPreview({
1399
- search_string: searchQuery,
1400
- has_results: hasResults
1401
- });
1402
- }
1403
1339
 
1404
- currentSearchRequestToken.current = null;
1405
- }
1406
- }).catch(function (error) {
1407
- if (!axios.isCancel(error)) {
1408
- // Set loading to false when search fails
1409
- if (typeof onSearchLoading === 'function') {
1410
- onSearchLoading(false);
1411
- }
1340
+ var brandsData = ((_brandsResponse$data$ = brandsResponse.data.data.luxity_products_aggregations) === null || _brandsResponse$data$ === void 0 ? void 0 : _brandsResponse$data$.luxity_brand) || []; // Extract products from filter
1412
1341
 
1413
- setSearchResults({
1414
- brands: [],
1415
- products: []
1416
- });
1417
- currentSearchRequestToken.current = null;
1418
- }
1419
- });
1420
- }, [endpoint, currency, onSearchPreview, onSearchLoading, onNoResults]);
1421
- var debouncedSearch = React.useMemo(function () {
1422
- return debounce(function (searchQuery, setSearchResults) {
1423
- return performSearch(searchQuery, setSearchResults);
1424
- }, 500);
1425
- }, [debounce, performSearch]);
1426
- var createDebouncedSearch = React.useCallback(function (setSearchResults) {
1427
- return function (searchQuery) {
1428
- return debouncedSearch(searchQuery, setSearchResults);
1429
- };
1430
- }, [debouncedSearch]);
1431
- var createImmediateSearch = React.useCallback(function (setSearchValue, setSearchResults, onSearchSubmit) {
1432
- return function (searchQuery) {
1433
- /*
1434
- * Cancel any pending search request when immediate search is performed
1435
- * Immediate search is when the user types a search query and presses enter
1436
- */
1437
- if (currentSearchRequestToken.current) {
1438
- currentSearchRequestToken.current.cancel();
1439
- currentSearchRequestToken.current = null;
1440
- }
1342
+ var productsData = ((_productsResponse$dat = productsResponse.data.data.luxity_products_filter) === null || _productsResponse$dat === void 0 ? void 0 : _productsResponse$dat.data) || [];
1343
+ var totalResults = ((_productsResponse$dat2 = productsResponse.data.data.luxity_products_filter) === null || _productsResponse$dat2 === void 0 ? void 0 : _productsResponse$dat2.total) || 0; // Map brands to old structure: { name, link }
1441
1344
 
1442
- setSearchValue('');
1443
- setSearchResults({
1444
- brands: [],
1445
- products: []
1345
+ var brands = brandsData.slice(0, 10).map(function (brand) {
1346
+ return {
1347
+ name: brand.name,
1348
+ link: "/products/brands/".concat(brand.name.toLowerCase().replace(/\s+/g, '-')) // Convert to slug
1349
+
1350
+ };
1351
+ }); // Map products to old structure with prices
1352
+
1353
+ var products = productsData.map(function (product) {
1354
+ // Generate product link: /products/{category_type}/{brand_slug}/{product_slug}
1355
+ var categorySlug = product.category_type.toLowerCase().replace(/\s+/g, '-');
1356
+ var brandSlug = product.luxity_brand.slug;
1357
+ var productSlug = product.product_slug;
1358
+ var link = "/products/".concat(categorySlug, "/").concat(brandSlug, "/").concat(productSlug);
1359
+ return {
1360
+ name: product.product.name,
1361
+ brand: product.luxity_brand.name,
1362
+ link: link,
1363
+ price: product.product.price || 0,
1364
+ promotion_price: product.product.promotion_price || null,
1365
+ est_retail_price: product.product.est_retail_price || 0,
1366
+ condition: product.product.condition || '',
1367
+ currency_symbol: product.product.currency_symbol || '',
1368
+ featured_image: product.featured_image,
1369
+ on_promotion: product.on_promotion || false,
1370
+ promotion_discount: product.promotion_discount || 0,
1371
+ id: product.id,
1372
+ category_type: product.category_type,
1373
+ product_slug: product.product_slug,
1374
+ luxity_brand: product.luxity_brand
1375
+ };
1446
1376
  });
1447
- onSearchSubmit(searchQuery);
1448
- };
1449
- }, []);
1450
- return {
1451
- fetchInitialSearchData: fetchInitialSearchData,
1452
- createDebouncedSearch: createDebouncedSearch,
1453
- createImmediateSearch: createImmediateSearch
1454
- };
1455
- };
1377
+ var searchResults = {
1378
+ brands: brands,
1379
+ products: products,
1380
+ total: totalResults
1381
+ };
1382
+ setSearchResults(searchResults); // Check if we have no results (empty aggregations)
1456
1383
 
1457
- var useSearchClickOutside = function useSearchClickOutside(ref, searchResults, setCachedResults, setIsSearchFocused, setSearchResults) {
1458
- var setSearchValue = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
1459
- var setShowNoResults = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
1460
- React.useEffect(function () {
1461
- var handleClickOutside = function handleClickOutside(event) {
1462
- if (ref.current && !ref.current.contains(event.target)) {
1463
- setCachedResults(searchResults);
1464
- setIsSearchFocused(false);
1465
- setSearchResults({
1466
- brands: [],
1467
- products: []
1468
- }); // Reset search value and no results state when closing
1469
-
1470
- if (setSearchValue) {
1471
- setSearchValue('');
1472
- }
1384
+ var hasNoResults = brandsData.length === 0 && productsData.length === 0;
1473
1385
 
1474
- if (setShowNoResults) {
1475
- setShowNoResults(false);
1476
- }
1386
+ if (typeof onNoResults === 'function') {
1387
+ onNoResults(hasNoResults);
1477
1388
  }
1478
- };
1479
1389
 
1480
- document.addEventListener('mousedown', handleClickOutside);
1481
- return function () {
1482
- document.removeEventListener('mousedown', handleClickOutside);
1483
- };
1484
- }, [ref, searchResults, setCachedResults, setIsSearchFocused, setSearchResults, setSearchValue, setShowNoResults]);
1485
- };
1486
- var useSearchInputChange = function useSearchInputChange(setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults) {
1487
- var app = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
1488
- var productsUrl = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
1489
- return React.useCallback(function (event) {
1490
- var value = event.target.value;
1491
-
1492
- if (app && productsUrl && value.trim().length > 0) {
1493
- window.location.href = productsUrl;
1494
- return;
1495
- }
1390
+ if (typeof onSearchPreview === 'function') {
1391
+ var hasResults = brands.length > 0 || products.length > 0;
1392
+ onSearchPreview({
1393
+ search_string: searchQuery,
1394
+ has_results: hasResults
1395
+ });
1396
+ }
1496
1397
 
1497
- setSearchValue(value);
1498
- setIsSearchFocused(true);
1398
+ currentSearchRequestToken.current = null;
1399
+ }
1400
+ }).catch(function (error) {
1401
+ if (!axios.isCancel(error)) {
1402
+ // Set loading to false when search fails
1403
+ if (typeof onSearchLoading === 'function') {
1404
+ onSearchLoading(false);
1405
+ }
1499
1406
 
1500
- if (value.trim().length >= 3) {
1501
- debouncedSearch(value);
1502
- } else {
1503
1407
  setSearchResults({
1504
1408
  brands: [],
1505
1409
  products: []
1506
1410
  });
1507
- setCachedResults({
1508
- brands: [],
1509
- products: []
1510
- });
1411
+ currentSearchRequestToken.current = null;
1511
1412
  }
1512
- }, [setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults, app, productsUrl]);
1513
- };
1514
- var useSearchInputFocus = function useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults) {
1515
- var handleSearchClick = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;
1516
- var setShowNoResults = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
1517
- return React.useCallback(function () {
1518
- setIsSearchFocused(true); // Reset no results state when reopening search
1519
-
1520
- if (setShowNoResults) {
1521
- setShowNoResults(false);
1413
+ });
1414
+ }, [endpoint, currency, onSearchPreview, onSearchLoading, onNoResults]);
1415
+ var debouncedSearch = useMemo(function () {
1416
+ return debounce(function (searchQuery, setSearchResults) {
1417
+ return performSearch(searchQuery, setSearchResults);
1418
+ }, 500);
1419
+ }, [debounce, performSearch]);
1420
+ var createDebouncedSearch = useCallback(function (setSearchResults) {
1421
+ return function (searchQuery) {
1422
+ return debouncedSearch(searchQuery, setSearchResults);
1423
+ };
1424
+ }, [debouncedSearch]);
1425
+ var createImmediateSearch = useCallback(function (setSearchValue, setSearchResults, onSearchSubmit) {
1426
+ return function (searchQuery) {
1427
+ /*
1428
+ * Cancel any pending search request when immediate search is performed
1429
+ * Immediate search is when the user types a search query and presses enter
1430
+ */
1431
+ if (currentSearchRequestToken.current) {
1432
+ currentSearchRequestToken.current.cancel();
1433
+ currentSearchRequestToken.current = null;
1522
1434
  }
1523
1435
 
1524
- if (typeof handleSearchClick === 'function') {
1525
- handleSearchClick();
1526
- } else if (searchValue.trim().length >= 3) {
1527
- setSearchResults(cachedResults);
1528
- }
1529
- }, [searchValue, setIsSearchFocused, cachedResults, setSearchResults, handleSearchClick, setShowNoResults]);
1436
+ setSearchValue('');
1437
+ setSearchResults({
1438
+ brands: [],
1439
+ products: []
1440
+ });
1441
+ onSearchSubmit(searchQuery);
1442
+ };
1443
+ }, []);
1444
+ return {
1445
+ fetchInitialSearchData: fetchInitialSearchData,
1446
+ createDebouncedSearch: createDebouncedSearch,
1447
+ createImmediateSearch: createImmediateSearch
1530
1448
  };
1531
- var useSearchInputKeyDown = function useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused) {
1532
- var setSearchValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
1533
- return React.useCallback(function (event) {
1534
- if (event.key === 'Enter') {
1535
- event.preventDefault();
1536
-
1537
- if (searchValue.trim().length >= 3) {
1538
- immediateSearch(searchValue);
1539
- }
1540
-
1541
- setIsSearchFocused(false);
1542
- } else if (event.key === 'Escape' && setSearchValue) {
1543
- setSearchValue('');
1449
+ };
1450
+
1451
+ var useSearchClickOutside = function useSearchClickOutside(ref, searchResults, setCachedResults, setIsSearchFocused, setSearchResults) {
1452
+ var setSearchValue = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
1453
+ var setShowNoResults = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
1454
+ useEffect(function () {
1455
+ var handleClickOutside = function handleClickOutside(event) {
1456
+ if (ref.current && !ref.current.contains(event.target)) {
1457
+ setCachedResults(searchResults);
1544
1458
  setIsSearchFocused(false);
1545
- }
1546
- }, [searchValue, immediateSearch, setIsSearchFocused, setSearchValue]);
1547
- };
1459
+ setSearchResults({
1460
+ brands: [],
1461
+ products: []
1462
+ }); // Reset search value and no results state when closing
1548
1463
 
1549
- var LuxityMobileHeader = function LuxityMobileHeader(_ref) {
1550
- var logoSrc = _ref.logoSrc,
1551
- menuIcon = _ref.menuIcon,
1552
- inputSearchIcon = _ref.inputSearchIcon,
1553
- onCartClick = _ref.onCartClick,
1554
- cartIcon = _ref.cartIcon,
1555
- cartCount = _ref.cartCount,
1556
- closeIcon = _ref.closeIcon,
1557
- accountIcon = _ref.accountIcon,
1558
- saleIcon = _ref.saleIcon,
1559
- orderIcon = _ref.orderIcon,
1560
- accordionIcon = _ref.accordionIcon,
1561
- backIcon = _ref.backIcon,
1562
- productsUrl = _ref.productsUrl,
1563
- stores = _ref.stores,
1564
- categoryElements = _ref.categoryElements,
1565
- onAccountClick = _ref.onAccountClick,
1566
- onDashboardClick = _ref.onDashboardClick,
1567
- onContactUsClick = _ref.onContactUsClick,
1568
- onOurStoryClick = _ref.onOurStoryClick,
1569
- _ref$onBlogClick = _ref.onBlogClick,
1570
- onBlogClick = _ref$onBlogClick === void 0 ? undefined : _ref$onBlogClick,
1571
- bugReportLink = _ref.bugReportLink,
1572
- onSellToUsClick = _ref.onSellToUsClick,
1573
- onLogoClick = _ref.onLogoClick,
1574
- onLuxityShopClick = _ref.onLuxityShopClick,
1575
- endpoint = _ref.endpoint,
1576
- initialSearchData = _ref.initialSearchData,
1577
- onSearchSubmit = _ref.onSearchSubmit,
1578
- onSearchBarClick = _ref.onSearchBarClick,
1579
- onSearchPreview = _ref.onSearchPreview,
1580
- onProductSearchResultClick = _ref.onProductSearchResultClick,
1581
- onBrandSearchResultClick = _ref.onBrandSearchResultClick,
1582
- _onSearchLoading = _ref.onSearchLoading,
1583
- onLogoutClick = _ref.onLogoutClick,
1584
- onInterestClick = _ref.onInterestClick,
1585
- onAddressClick = _ref.onAddressClick,
1586
- onCouponsClick = _ref.onCouponsClick,
1587
- onEditProfileClick = _ref.onEditProfileClick,
1588
- onCurrentOrdersClick = _ref.onCurrentOrdersClick,
1589
- onPastOrdersClick = _ref.onPastOrdersClick,
1590
- onSubmissionsClick = _ref.onSubmissionsClick,
1591
- onPastSalesClick = _ref.onPastSalesClick,
1592
- onPaidOutClick = _ref.onPaidOutClick,
1593
- currency = _ref.currency,
1594
- currencySymbol = _ref.currencySymbol,
1595
- currencyOptions = _ref.currencyOptions,
1596
- onCurrencyChange = _ref.onCurrencyChange,
1597
- isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
1598
- tooltipContent = _ref.tooltipContent,
1599
- LinkComponent = _ref.LinkComponent,
1600
- shop = _ref.shop,
1601
- app = _ref.app,
1602
- categoryConfig = _ref.categoryConfig,
1603
- name = _ref.name,
1604
- onCreateInterests = _ref.onCreateInterests,
1605
- noResultsImage = _ref.noResultsImage,
1606
- _ref$showCreateIntere = _ref.showCreateInterest,
1607
- showCreateInterest = _ref$showCreateIntere === void 0 ? true : _ref$showCreateIntere;
1608
-
1609
- var _useState = React.useState(false),
1610
- _useState2 = _slicedToArray(_useState, 2),
1611
- showNoResults = _useState2[0],
1612
- setShowNoResults = _useState2[1];
1613
-
1614
- var _useState3 = React.useState(false),
1615
- _useState4 = _slicedToArray(_useState3, 2),
1616
- searchLoading = _useState4[0],
1617
- setSearchLoading = _useState4[1];
1618
-
1619
- var _useSearch = useSearch({
1620
- endpoint: endpoint,
1621
- onSearchLoading: function onSearchLoading(isLoading) {
1622
- setSearchLoading(isLoading);
1623
-
1624
- if (typeof _onSearchLoading === 'function') {
1625
- _onSearchLoading(isLoading);
1464
+ if (setSearchValue) {
1465
+ setSearchValue('');
1626
1466
  }
1627
- },
1628
- currency: currency,
1629
- onSearchPreview: onSearchPreview,
1630
- onNoResults: setShowNoResults
1631
- }),
1632
- fetchInitialSearchData = _useSearch.fetchInitialSearchData,
1633
- createDebouncedSearch = _useSearch.createDebouncedSearch,
1634
- createImmediateSearch = _useSearch.createImmediateSearch;
1635
-
1636
- var _useState5 = React.useState(''),
1637
- _useState6 = _slicedToArray(_useState5, 2),
1638
- searchValue = _useState6[0],
1639
- setSearchValue = _useState6[1];
1640
-
1641
- var _useState7 = React.useState(false),
1642
- _useState8 = _slicedToArray(_useState7, 2),
1643
- showSearchBar = _useState8[0],
1644
- setShowSearchbar = _useState8[1];
1645
-
1646
- var _useState9 = React.useState(false),
1647
- _useState10 = _slicedToArray(_useState9, 2),
1648
- showSideNav = _useState10[0],
1649
- setShowSideNav = _useState10[1];
1650
-
1651
- var _useState11 = React.useState({
1652
- brands: [],
1653
- products: []
1654
- }),
1655
- _useState12 = _slicedToArray(_useState11, 2),
1656
- searchResults = _useState12[0],
1657
- setSearchResults = _useState12[1];
1658
-
1659
- var _useState13 = React.useState({
1660
- brands: [],
1661
- products: []
1662
- }),
1663
- _useState14 = _slicedToArray(_useState13, 2),
1664
- cachedResults = _useState14[0],
1665
- setCachedResults = _useState14[1];
1666
-
1667
- var _useState15 = React.useState(false),
1668
- _useState16 = _slicedToArray(_useState15, 2),
1669
- isSearchFocused = _useState16[0],
1670
- setIsSearchFocused = _useState16[1];
1671
-
1672
- var _useState17 = React.useState({
1673
- trending_brands: [],
1674
- latest_products: []
1675
- }),
1676
- _useState18 = _slicedToArray(_useState17, 2),
1677
- initialSearchView = _useState18[0],
1678
- setInitialSearchView = _useState18[1];
1679
-
1680
- var searchResultsRef = React.useRef(null);
1681
- var searchInputRef = React.useRef(null);
1682
- var debouncedSearch = createDebouncedSearch(function (results) {
1683
- setSearchResults(results);
1684
- setCachedResults(results);
1685
- });
1686
- var immediateSearch = createImmediateSearch(setSearchValue, setSearchResults, onSearchSubmit);
1687
- var handleChange = useSearchInputChange(setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults, app, productsUrl);
1688
- var handleKeyDown = useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused, setSearchValue);
1689
- React.useMemo(function () {
1690
- if (!initialSearchData) {
1691
- return;
1692
- }
1693
1467
 
1694
- fetchInitialSearchData(initialSearchData, setInitialSearchView);
1695
- }, [initialSearchData, fetchInitialSearchData]);
1696
- useSearchClickOutside(searchResultsRef, searchResults, setCachedResults, setIsSearchFocused, setSearchResults, setSearchValue, setShowNoResults);
1697
- var handleSearchFocus = useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults, undefined, setShowNoResults);
1698
- React.useEffect(function () {
1699
- if (showSearchBar && searchInputRef.current) {
1700
- searchInputRef.current.focus();
1468
+ if (setShowNoResults) {
1469
+ setShowNoResults(false);
1470
+ }
1701
1471
  }
1702
- }, [showSearchBar]);
1472
+ };
1703
1473
 
1704
- var onSearchClick = function onSearchClick() {
1705
- if (!showSearchBar && typeof onSearchBarClick === 'function') {
1706
- onSearchBarClick();
1707
- }
1474
+ document.addEventListener('mousedown', handleClickOutside);
1475
+ return function () {
1476
+ document.removeEventListener('mousedown', handleClickOutside);
1477
+ };
1478
+ }, [ref, searchResults, setCachedResults, setIsSearchFocused, setSearchResults, setSearchValue, setShowNoResults]);
1479
+ };
1480
+ var useSearchInputChange = function useSearchInputChange(setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults) {
1481
+ var app = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
1482
+ var productsUrl = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
1483
+ return useCallback(function (event) {
1484
+ var value = event.target.value;
1485
+
1486
+ if (app && productsUrl && value.trim().length > 0) {
1487
+ window.location.href = productsUrl;
1488
+ return;
1489
+ }
1490
+
1491
+ setSearchValue(value);
1492
+ setIsSearchFocused(true);
1708
1493
 
1709
- setShowSearchbar(function (prev) {
1710
- return !prev;
1494
+ if (value.trim().length >= 3) {
1495
+ debouncedSearch(value);
1496
+ } else {
1497
+ setSearchResults({
1498
+ brands: [],
1499
+ products: []
1711
1500
  });
1712
- setSearchValue('');
1713
- setIsSearchFocused(!showSearchBar);
1501
+ setCachedResults({
1502
+ brands: [],
1503
+ products: []
1504
+ });
1505
+ }
1506
+ }, [setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults, app, productsUrl]);
1507
+ };
1508
+ var useSearchInputFocus = function useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults) {
1509
+ var handleSearchClick = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;
1510
+ var setShowNoResults = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
1511
+ return useCallback(function () {
1512
+ setIsSearchFocused(true); // Reset no results state when reopening search
1513
+
1514
+ if (setShowNoResults) {
1515
+ setShowNoResults(false);
1516
+ }
1714
1517
 
1715
- if (showSearchBar) {
1716
- setSearchResults({
1717
- brands: [],
1718
- products: []
1719
- });
1720
- setShowNoResults(false);
1518
+ if (typeof handleSearchClick === 'function') {
1519
+ handleSearchClick();
1520
+ } else if (searchValue.trim().length >= 3) {
1521
+ setSearchResults(cachedResults);
1522
+ }
1523
+ }, [searchValue, setIsSearchFocused, cachedResults, setSearchResults, handleSearchClick, setShowNoResults]);
1524
+ };
1525
+ var useSearchInputKeyDown = function useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused) {
1526
+ var setSearchValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
1527
+ return useCallback(function (event) {
1528
+ if (event.key === 'Enter') {
1529
+ event.preventDefault();
1530
+
1531
+ if (searchValue.trim().length >= 3) {
1532
+ immediateSearch(searchValue);
1721
1533
  }
1722
- };
1723
1534
 
1724
- var onMenuClick = function onMenuClick() {
1725
- setShowSideNav(function (prev) {
1726
- return !prev;
1727
- });
1728
- };
1535
+ setIsSearchFocused(false);
1536
+ } else if (event.key === 'Escape' && setSearchValue) {
1537
+ setSearchValue('');
1538
+ setIsSearchFocused(false);
1539
+ }
1540
+ }, [searchValue, immediateSearch, setIsSearchFocused, setSearchValue]);
1541
+ };
1542
+
1543
+ var LuxityMobileHeader = function LuxityMobileHeader(_ref) {
1544
+ var logoSrc = _ref.logoSrc,
1545
+ menuIcon = _ref.menuIcon,
1546
+ inputSearchIcon = _ref.inputSearchIcon,
1547
+ onCartClick = _ref.onCartClick,
1548
+ cartIcon = _ref.cartIcon,
1549
+ cartCount = _ref.cartCount,
1550
+ closeIcon = _ref.closeIcon,
1551
+ accountIcon = _ref.accountIcon,
1552
+ saleIcon = _ref.saleIcon,
1553
+ orderIcon = _ref.orderIcon,
1554
+ accordionIcon = _ref.accordionIcon,
1555
+ backIcon = _ref.backIcon,
1556
+ productsUrl = _ref.productsUrl,
1557
+ stores = _ref.stores,
1558
+ categoryElements = _ref.categoryElements,
1559
+ onAccountClick = _ref.onAccountClick,
1560
+ onDashboardClick = _ref.onDashboardClick,
1561
+ onContactUsClick = _ref.onContactUsClick,
1562
+ onOurStoryClick = _ref.onOurStoryClick,
1563
+ _ref$onBlogClick = _ref.onBlogClick,
1564
+ onBlogClick = _ref$onBlogClick === void 0 ? undefined : _ref$onBlogClick,
1565
+ bugReportLink = _ref.bugReportLink,
1566
+ onSellToUsClick = _ref.onSellToUsClick,
1567
+ onLogoClick = _ref.onLogoClick,
1568
+ onLuxityShopClick = _ref.onLuxityShopClick,
1569
+ endpoint = _ref.endpoint,
1570
+ initialSearchData = _ref.initialSearchData,
1571
+ onSearchSubmit = _ref.onSearchSubmit,
1572
+ onSearchBarClick = _ref.onSearchBarClick,
1573
+ onSearchPreview = _ref.onSearchPreview,
1574
+ onProductSearchResultClick = _ref.onProductSearchResultClick,
1575
+ onBrandSearchResultClick = _ref.onBrandSearchResultClick,
1576
+ _onSearchLoading = _ref.onSearchLoading,
1577
+ onLogoutClick = _ref.onLogoutClick,
1578
+ onInterestClick = _ref.onInterestClick,
1579
+ onAddressClick = _ref.onAddressClick,
1580
+ onCouponsClick = _ref.onCouponsClick,
1581
+ onEditProfileClick = _ref.onEditProfileClick,
1582
+ onCurrentOrdersClick = _ref.onCurrentOrdersClick,
1583
+ onPastOrdersClick = _ref.onPastOrdersClick,
1584
+ onSubmissionsClick = _ref.onSubmissionsClick,
1585
+ onPastSalesClick = _ref.onPastSalesClick,
1586
+ onPaidOutClick = _ref.onPaidOutClick,
1587
+ currency = _ref.currency,
1588
+ currencySymbol = _ref.currencySymbol,
1589
+ currencyOptions = _ref.currencyOptions,
1590
+ onCurrencyChange = _ref.onCurrencyChange,
1591
+ isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
1592
+ tooltipContent = _ref.tooltipContent,
1593
+ LinkComponent = _ref.LinkComponent,
1594
+ shop = _ref.shop,
1595
+ app = _ref.app,
1596
+ categoryConfig = _ref.categoryConfig,
1597
+ name = _ref.name,
1598
+ onCreateInterests = _ref.onCreateInterests,
1599
+ noResultsImage = _ref.noResultsImage,
1600
+ _ref$showCreateIntere = _ref.showCreateInterest,
1601
+ showCreateInterest = _ref$showCreateIntere === void 0 ? true : _ref$showCreateIntere;
1602
+
1603
+ var _useState = useState(false),
1604
+ _useState2 = _slicedToArray(_useState, 2),
1605
+ showNoResults = _useState2[0],
1606
+ setShowNoResults = _useState2[1];
1607
+
1608
+ var _useState3 = useState(false),
1609
+ _useState4 = _slicedToArray(_useState3, 2),
1610
+ searchLoading = _useState4[0],
1611
+ setSearchLoading = _useState4[1];
1612
+
1613
+ var _useSearch = useSearch({
1614
+ endpoint: endpoint,
1615
+ onSearchLoading: function onSearchLoading(isLoading) {
1616
+ setSearchLoading(isLoading);
1617
+
1618
+ if (typeof _onSearchLoading === 'function') {
1619
+ _onSearchLoading(isLoading);
1620
+ }
1621
+ },
1622
+ currency: currency,
1623
+ onSearchPreview: onSearchPreview,
1624
+ onNoResults: setShowNoResults
1625
+ }),
1626
+ fetchInitialSearchData = _useSearch.fetchInitialSearchData,
1627
+ createDebouncedSearch = _useSearch.createDebouncedSearch,
1628
+ createImmediateSearch = _useSearch.createImmediateSearch;
1629
+
1630
+ var _useState5 = useState(''),
1631
+ _useState6 = _slicedToArray(_useState5, 2),
1632
+ searchValue = _useState6[0],
1633
+ setSearchValue = _useState6[1];
1634
+
1635
+ var _useState7 = useState(false),
1636
+ _useState8 = _slicedToArray(_useState7, 2),
1637
+ showSearchBar = _useState8[0],
1638
+ setShowSearchbar = _useState8[1];
1639
+
1640
+ var _useState9 = useState(false),
1641
+ _useState10 = _slicedToArray(_useState9, 2),
1642
+ showSideNav = _useState10[0],
1643
+ setShowSideNav = _useState10[1];
1644
+
1645
+ var _useState11 = useState({
1646
+ brands: [],
1647
+ products: []
1648
+ }),
1649
+ _useState12 = _slicedToArray(_useState11, 2),
1650
+ searchResults = _useState12[0],
1651
+ setSearchResults = _useState12[1];
1652
+
1653
+ var _useState13 = useState({
1654
+ brands: [],
1655
+ products: []
1656
+ }),
1657
+ _useState14 = _slicedToArray(_useState13, 2),
1658
+ cachedResults = _useState14[0],
1659
+ setCachedResults = _useState14[1];
1660
+
1661
+ var _useState15 = useState(false),
1662
+ _useState16 = _slicedToArray(_useState15, 2),
1663
+ isSearchFocused = _useState16[0],
1664
+ setIsSearchFocused = _useState16[1];
1665
+
1666
+ var _useState17 = useState({
1667
+ trending_brands: [],
1668
+ latest_products: []
1669
+ }),
1670
+ _useState18 = _slicedToArray(_useState17, 2),
1671
+ initialSearchView = _useState18[0],
1672
+ setInitialSearchView = _useState18[1];
1673
+
1674
+ var searchResultsRef = useRef(null);
1675
+ var searchInputRef = useRef(null);
1676
+ var debouncedSearch = createDebouncedSearch(function (results) {
1677
+ setSearchResults(results);
1678
+ setCachedResults(results);
1679
+ });
1680
+ var immediateSearch = createImmediateSearch(setSearchValue, setSearchResults, onSearchSubmit);
1681
+ var handleChange = useSearchInputChange(setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults, app, productsUrl);
1682
+ var handleKeyDown = useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused, setSearchValue);
1683
+ useMemo(function () {
1684
+ if (!initialSearchData) {
1685
+ return;
1686
+ }
1729
1687
 
1730
- var handleClick = function handleClick(callback) {
1731
- callback();
1732
- setShowSideNav(false);
1733
- };
1688
+ fetchInitialSearchData(initialSearchData, setInitialSearchView);
1689
+ }, [initialSearchData, fetchInitialSearchData]);
1690
+ useSearchClickOutside(searchResultsRef, searchResults, setCachedResults, setIsSearchFocused, setSearchResults, setSearchValue, setShowNoResults);
1691
+ var handleSearchFocus = useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults, undefined, setShowNoResults);
1692
+ useEffect(function () {
1693
+ if (showSearchBar && searchInputRef.current) {
1694
+ searchInputRef.current.focus();
1695
+ }
1696
+ }, [showSearchBar]);
1734
1697
 
1735
- var handleDashboardClick = function handleDashboardClick() {
1736
- return handleClick(onDashboardClick);
1737
- };
1698
+ var onSearchClick = function onSearchClick() {
1699
+ if (!showSearchBar && typeof onSearchBarClick === 'function') {
1700
+ onSearchBarClick();
1701
+ }
1738
1702
 
1739
- var handleSellToUsClick = function handleSellToUsClick() {
1740
- return handleClick(onSellToUsClick);
1741
- };
1703
+ setShowSearchbar(function (prev) {
1704
+ return !prev;
1705
+ });
1706
+ setSearchValue('');
1707
+ setIsSearchFocused(!showSearchBar);
1742
1708
 
1743
- var handleCartClick = function handleCartClick() {
1744
- return handleClick(onCartClick);
1745
- };
1709
+ if (showSearchBar) {
1710
+ setSearchResults({
1711
+ brands: [],
1712
+ products: []
1713
+ });
1714
+ setShowNoResults(false);
1715
+ }
1716
+ };
1746
1717
 
1747
- var handleLuxityShopClick = function handleLuxityShopClick() {
1748
- return handleClick(onLuxityShopClick);
1749
- };
1718
+ var onMenuClick = function onMenuClick() {
1719
+ setShowSideNav(function (prev) {
1720
+ return !prev;
1721
+ });
1722
+ };
1750
1723
 
1751
- var handleLogoutClick = function handleLogoutClick() {
1752
- return handleClick(onLogoutClick);
1753
- };
1724
+ var handleClick = function handleClick(callback) {
1725
+ callback();
1726
+ setShowSideNav(false);
1727
+ };
1754
1728
 
1755
- var handleInterestClick = function handleInterestClick() {
1756
- return handleClick(onInterestClick);
1757
- };
1729
+ var handleDashboardClick = function handleDashboardClick() {
1730
+ return handleClick(onDashboardClick);
1731
+ };
1758
1732
 
1759
- var handleAddressClick = function handleAddressClick() {
1760
- return handleClick(onAddressClick);
1761
- };
1733
+ var handleSellToUsClick = function handleSellToUsClick() {
1734
+ return handleClick(onSellToUsClick);
1735
+ };
1762
1736
 
1763
- var handleCouponsClick = function handleCouponsClick() {
1764
- return handleClick(onCouponsClick);
1765
- };
1737
+ var handleCartClick = function handleCartClick() {
1738
+ return handleClick(onCartClick);
1739
+ };
1766
1740
 
1767
- var handleEditProfileClick = function handleEditProfileClick() {
1768
- return handleClick(onEditProfileClick);
1769
- };
1741
+ var handleLuxityShopClick = function handleLuxityShopClick() {
1742
+ return handleClick(onLuxityShopClick);
1743
+ };
1770
1744
 
1771
- var handleCurrentOrdersClick = function handleCurrentOrdersClick() {
1772
- return handleClick(onCurrentOrdersClick);
1773
- };
1745
+ var handleLogoutClick = function handleLogoutClick() {
1746
+ return handleClick(onLogoutClick);
1747
+ };
1774
1748
 
1775
- var handlePastOrdersClick = function handlePastOrdersClick() {
1776
- return handleClick(onPastOrdersClick);
1777
- };
1749
+ var handleInterestClick = function handleInterestClick() {
1750
+ return handleClick(onInterestClick);
1751
+ };
1778
1752
 
1779
- var handlePastSalesClick = function handlePastSalesClick() {
1780
- return handleClick(onPastSalesClick);
1781
- };
1753
+ var handleAddressClick = function handleAddressClick() {
1754
+ return handleClick(onAddressClick);
1755
+ };
1782
1756
 
1783
- var handlePaidOutClick = function handlePaidOutClick() {
1784
- return handleClick(onPaidOutClick);
1785
- };
1757
+ var handleCouponsClick = function handleCouponsClick() {
1758
+ return handleClick(onCouponsClick);
1759
+ };
1786
1760
 
1787
- var handleSubmissionsClick = function handleSubmissionsClick() {
1788
- return handleClick(onSubmissionsClick);
1789
- };
1761
+ var handleEditProfileClick = function handleEditProfileClick() {
1762
+ return handleClick(onEditProfileClick);
1763
+ };
1790
1764
 
1791
- var handleAccountClick = function handleAccountClick() {
1792
- return handleClick(onAccountClick);
1793
- };
1765
+ var handleCurrentOrdersClick = function handleCurrentOrdersClick() {
1766
+ return handleClick(onCurrentOrdersClick);
1767
+ };
1794
1768
 
1795
- var handleContactUsClick = function handleContactUsClick() {
1796
- return handleClick(onContactUsClick);
1797
- };
1769
+ var handlePastOrdersClick = function handlePastOrdersClick() {
1770
+ return handleClick(onPastOrdersClick);
1771
+ };
1798
1772
 
1799
- var handleOurStoryClick = function handleOurStoryClick() {
1800
- return handleClick(onOurStoryClick);
1801
- };
1773
+ var handlePastSalesClick = function handlePastSalesClick() {
1774
+ return handleClick(onPastSalesClick);
1775
+ };
1802
1776
 
1803
- var handleBlogClick = onBlogClick ? function () {
1804
- return handleClick(onBlogClick);
1805
- } : undefined;
1777
+ var handlePaidOutClick = function handlePaidOutClick() {
1778
+ return handleClick(onPaidOutClick);
1779
+ };
1806
1780
 
1807
- var getInitials = function getInitials(fullName) {
1808
- if (!fullName) return '';
1809
- return fullName.split(' ').map(function (n) {
1810
- return n[0];
1811
- }).join('').slice(0, 2);
1812
- };
1781
+ var handleSubmissionsClick = function handleSubmissionsClick() {
1782
+ return handleClick(onSubmissionsClick);
1783
+ };
1813
1784
 
1814
- return /*#__PURE__*/React__default.createElement(React.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
1815
- className: "navbar navbar__mobile-wrapper"
1816
- }, /*#__PURE__*/React__default.createElement("div", {
1817
- className: "navbar__wrapper"
1818
- }, /*#__PURE__*/React__default.createElement("button", {
1819
- type: "button",
1820
- className: "navbar__menu-icon-wrapper",
1821
- onClick: onMenuClick
1822
- }, /*#__PURE__*/React__default.createElement("img", {
1823
- src: menuIcon,
1824
- alt: "menu-icon",
1825
- className: "navbar__menu-icon"
1826
- })), /*#__PURE__*/React__default.createElement("div", {
1827
- className: "navbar__search-wrapper"
1828
- }, /*#__PURE__*/React__default.createElement("button", {
1829
- type: "button",
1830
- onClick: onLogoClick,
1831
- className: "navbar__logo"
1832
- }, /*#__PURE__*/React__default.createElement("img", {
1833
- src: logoSrc,
1834
- alt: "luxity-logo",
1835
- loading: "eager"
1836
- }))), /*#__PURE__*/React__default.createElement("div", {
1837
- className: "navbar__icons-wrapper"
1838
- }, /*#__PURE__*/React__default.createElement("div", {
1839
- className: "navbar__icons"
1840
- }, shop && /*#__PURE__*/React__default.createElement("button", {
1841
- type: "button",
1842
- className: "navbar__icon",
1843
- onClick: onSearchClick
1844
- }, /*#__PURE__*/React__default.createElement("img", {
1845
- src: inputSearchIcon,
1846
- className: "navbar__icon",
1847
- alt: "interest-icon",
1848
- width: 20,
1849
- height: 20
1850
- })), /*#__PURE__*/React__default.createElement("button", {
1851
- type: "button",
1852
- className: "navbar__cart-icon navbar__icon",
1853
- onClick: onCartClick
1854
- }, /*#__PURE__*/React__default.createElement("img", {
1855
- src: cartIcon,
1856
- alt: "cart-icon",
1857
- width: 20,
1858
- height: 20
1859
- }), shop && cartCount > 0 && /*#__PURE__*/React__default.createElement("div", {
1860
- className: "navbar__cart-count"
1861
- }, cartCount)), shop && /*#__PURE__*/React__default.createElement("button", {
1862
- type: "button",
1863
- className: "navbar__icon",
1864
- onClick: handleAccountClick
1865
- }, name ? /*#__PURE__*/React__default.createElement("div", {
1866
- className: "navbar__account-initials"
1867
- }, getInitials(name)) : /*#__PURE__*/React__default.createElement("img", {
1868
- src: accountIcon,
1869
- alt: "account-icon",
1870
- width: 20,
1871
- height: 20
1872
- }))))), showSearchBar && /*#__PURE__*/React__default.createElement("div", {
1873
- className: "navbar__search-container"
1874
- }, /*#__PURE__*/React__default.createElement("div", {
1875
- className: "navbar__product-search-wrapper"
1876
- }, /*#__PURE__*/React__default.createElement("div", {
1877
- className: "navbar__product-search"
1878
- }, /*#__PURE__*/React__default.createElement("input", {
1879
- ref: searchInputRef,
1880
- className: "navbar__form-input",
1881
- type: "text",
1882
- placeholder: "Search for items and designs",
1883
- value: searchValue,
1884
- onChange: handleChange,
1885
- onKeyDown: handleKeyDown,
1886
- onFocus: handleSearchFocus,
1887
- autoComplete: "off",
1888
- readOnly: app
1889
- })), /*#__PURE__*/React__default.createElement("button", {
1890
- type: "button",
1891
- onClick: onSearchClick
1892
- }, /*#__PURE__*/React__default.createElement("img", {
1893
- src: closeIcon,
1894
- alt: "close-icon",
1895
- className: "navbar__input-close-icon"
1896
- }))), isSearchFocused && /*#__PURE__*/React__default.createElement(SearchResults, {
1897
- searchValue: searchValue,
1898
- searchResults: searchResults,
1899
- onViewAll: function onViewAll() {
1900
- onSearchSubmit(searchValue);
1901
- setSearchValue('');
1902
- setSearchResults({
1903
- brands: [],
1904
- products: []
1905
- });
1906
- setIsSearchFocused(false);
1907
- setShowNoResults(false);
1908
- },
1909
- onSearchSubmit: onSearchSubmit,
1910
- setSearchValue: setSearchValue,
1911
- searchResultsRef: searchResultsRef,
1912
- initialSearchData: initialSearchView,
1913
- isSearchFocused: isSearchFocused,
1914
- setIsSearchFocused: setIsSearchFocused,
1915
- currency: currency,
1916
- currencySymbol: currencySymbol,
1917
- onProductSearchResultClick: onProductSearchResultClick,
1918
- onBrandSearchResultClick: onBrandSearchResultClick,
1919
- onCreateInterests: onCreateInterests,
1920
- noResultsImage: noResultsImage,
1921
- showNoResults: showNoResults,
1922
- isLoading: searchLoading,
1923
- showCreateInterest: showCreateInterest
1924
- }))), shop && /*#__PURE__*/React__default.createElement(LuxitySideNav, {
1925
- accordionIcon: accordionIcon,
1926
- logoSrc: logoSrc,
1927
- closeIcon: closeIcon,
1928
- backIcon: backIcon,
1929
- productUrl: productsUrl,
1930
- onAccountClick: handleAccountClick,
1931
- onCartClick: handleCartClick,
1932
- onContactUsClick: handleContactUsClick,
1933
- onOurStoryClick: handleOurStoryClick,
1934
- onBlogClick: handleBlogClick,
1935
- onSellToUsClick: handleSellToUsClick,
1936
- stores: stores,
1937
- categoryElements: categoryElements,
1938
- showSideNav: showSideNav,
1939
- onMenuClick: onMenuClick,
1940
- endpoint: endpoint,
1941
- currency: currency,
1942
- currencyOptions: currencyOptions,
1943
- onCurrencyChange: onCurrencyChange,
1944
- isCurrencySelectionDisabled: isCurrencySelectionDisabled,
1945
- tooltipContent: tooltipContent,
1946
- LinkComponent: LinkComponent,
1947
- categoryConfig: categoryConfig
1948
- }), app && /*#__PURE__*/React__default.createElement(LuxityAppSideNav, {
1949
- accordionIcon: accordionIcon,
1950
- closeIcon: closeIcon,
1951
- accountIcon: accountIcon,
1952
- orderIcon: orderIcon,
1953
- saleIcon: saleIcon,
1954
- onDashboardClick: handleDashboardClick,
1955
- onLogoutClick: handleLogoutClick,
1956
- bugReportLink: bugReportLink,
1957
- onLuxityShopClick: handleLuxityShopClick,
1958
- showSideNav: showSideNav,
1959
- onMenuClick: onMenuClick,
1960
- onInterestClick: handleInterestClick,
1961
- onAddressClick: handleAddressClick,
1962
- onCouponsClick: handleCouponsClick,
1963
- onEditProfileClick: handleEditProfileClick,
1964
- onCurrentOrdersClick: handleCurrentOrdersClick,
1965
- onPastOrdersClick: handlePastOrdersClick,
1966
- onSubmissionsClick: handleSubmissionsClick,
1967
- onPastSalesClick: handlePastSalesClick,
1968
- onPaidOutClick: handlePaidOutClick
1969
- }));
1785
+ var handleAccountClick = function handleAccountClick() {
1786
+ return handleClick(onAccountClick);
1787
+ };
1788
+
1789
+ var handleContactUsClick = function handleContactUsClick() {
1790
+ return handleClick(onContactUsClick);
1791
+ };
1792
+
1793
+ var handleOurStoryClick = function handleOurStoryClick() {
1794
+ return handleClick(onOurStoryClick);
1970
1795
  };
1971
1796
 
1972
- return LuxityMobileHeader;
1797
+ var handleBlogClick = onBlogClick ? function () {
1798
+ return handleClick(onBlogClick);
1799
+ } : undefined;
1800
+
1801
+ var getInitials = function getInitials(fullName) {
1802
+ if (!fullName) return '';
1803
+ return fullName.split(' ').map(function (n) {
1804
+ return n[0];
1805
+ }).join('').slice(0, 2);
1806
+ };
1973
1807
 
1974
- })));
1808
+ return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("div", {
1809
+ className: "navbar navbar__mobile-wrapper"
1810
+ }, /*#__PURE__*/React.createElement("div", {
1811
+ className: "navbar__wrapper"
1812
+ }, /*#__PURE__*/React.createElement("button", {
1813
+ type: "button",
1814
+ className: "navbar__menu-icon-wrapper",
1815
+ onClick: onMenuClick
1816
+ }, /*#__PURE__*/React.createElement("img", {
1817
+ src: menuIcon,
1818
+ alt: "menu-icon",
1819
+ className: "navbar__menu-icon"
1820
+ })), /*#__PURE__*/React.createElement("div", {
1821
+ className: "navbar__search-wrapper"
1822
+ }, /*#__PURE__*/React.createElement("button", {
1823
+ type: "button",
1824
+ onClick: onLogoClick,
1825
+ className: "navbar__logo"
1826
+ }, /*#__PURE__*/React.createElement("img", {
1827
+ src: logoSrc,
1828
+ alt: "luxity-logo",
1829
+ loading: "eager"
1830
+ }))), /*#__PURE__*/React.createElement("div", {
1831
+ className: "navbar__icons-wrapper"
1832
+ }, /*#__PURE__*/React.createElement("div", {
1833
+ className: "navbar__icons"
1834
+ }, shop && /*#__PURE__*/React.createElement("button", {
1835
+ type: "button",
1836
+ className: "navbar__icon",
1837
+ onClick: onSearchClick
1838
+ }, /*#__PURE__*/React.createElement("img", {
1839
+ src: inputSearchIcon,
1840
+ className: "navbar__icon",
1841
+ alt: "interest-icon",
1842
+ width: 20,
1843
+ height: 20
1844
+ })), /*#__PURE__*/React.createElement("button", {
1845
+ type: "button",
1846
+ className: "navbar__cart-icon navbar__icon",
1847
+ onClick: onCartClick
1848
+ }, /*#__PURE__*/React.createElement("img", {
1849
+ src: cartIcon,
1850
+ alt: "cart-icon",
1851
+ width: 20,
1852
+ height: 20
1853
+ }), shop && cartCount > 0 && /*#__PURE__*/React.createElement("div", {
1854
+ className: "navbar__cart-count"
1855
+ }, cartCount)), shop && /*#__PURE__*/React.createElement("button", {
1856
+ type: "button",
1857
+ className: "navbar__icon",
1858
+ onClick: handleAccountClick
1859
+ }, name ? /*#__PURE__*/React.createElement("div", {
1860
+ className: "navbar__account-initials"
1861
+ }, getInitials(name)) : /*#__PURE__*/React.createElement("img", {
1862
+ src: accountIcon,
1863
+ alt: "account-icon",
1864
+ width: 20,
1865
+ height: 20
1866
+ }))))), showSearchBar && /*#__PURE__*/React.createElement("div", {
1867
+ className: "navbar__search-container"
1868
+ }, /*#__PURE__*/React.createElement("div", {
1869
+ className: "navbar__product-search-wrapper"
1870
+ }, /*#__PURE__*/React.createElement("div", {
1871
+ className: "navbar__product-search"
1872
+ }, /*#__PURE__*/React.createElement("input", {
1873
+ ref: searchInputRef,
1874
+ className: "navbar__form-input",
1875
+ type: "text",
1876
+ placeholder: "Search for items and designs",
1877
+ value: searchValue,
1878
+ onChange: handleChange,
1879
+ onKeyDown: handleKeyDown,
1880
+ onFocus: handleSearchFocus,
1881
+ autoComplete: "off",
1882
+ readOnly: app
1883
+ })), /*#__PURE__*/React.createElement("button", {
1884
+ type: "button",
1885
+ onClick: onSearchClick
1886
+ }, /*#__PURE__*/React.createElement("img", {
1887
+ src: closeIcon,
1888
+ alt: "close-icon",
1889
+ className: "navbar__input-close-icon"
1890
+ }))), isSearchFocused && /*#__PURE__*/React.createElement(SearchResults, {
1891
+ searchValue: searchValue,
1892
+ searchResults: searchResults,
1893
+ onViewAll: function onViewAll() {
1894
+ onSearchSubmit(searchValue);
1895
+ setSearchValue('');
1896
+ setSearchResults({
1897
+ brands: [],
1898
+ products: []
1899
+ });
1900
+ setIsSearchFocused(false);
1901
+ setShowNoResults(false);
1902
+ },
1903
+ onSearchSubmit: onSearchSubmit,
1904
+ setSearchValue: setSearchValue,
1905
+ searchResultsRef: searchResultsRef,
1906
+ initialSearchData: initialSearchView,
1907
+ isSearchFocused: isSearchFocused,
1908
+ setIsSearchFocused: setIsSearchFocused,
1909
+ currency: currency,
1910
+ currencySymbol: currencySymbol,
1911
+ onProductSearchResultClick: onProductSearchResultClick,
1912
+ onBrandSearchResultClick: onBrandSearchResultClick,
1913
+ onCreateInterests: onCreateInterests,
1914
+ noResultsImage: noResultsImage,
1915
+ showNoResults: showNoResults,
1916
+ isLoading: searchLoading,
1917
+ showCreateInterest: showCreateInterest
1918
+ }))), shop && /*#__PURE__*/React.createElement(LuxitySideNav, {
1919
+ accordionIcon: accordionIcon,
1920
+ logoSrc: logoSrc,
1921
+ closeIcon: closeIcon,
1922
+ backIcon: backIcon,
1923
+ productUrl: productsUrl,
1924
+ onAccountClick: handleAccountClick,
1925
+ onCartClick: handleCartClick,
1926
+ onContactUsClick: handleContactUsClick,
1927
+ onOurStoryClick: handleOurStoryClick,
1928
+ onBlogClick: handleBlogClick,
1929
+ onSellToUsClick: handleSellToUsClick,
1930
+ stores: stores,
1931
+ categoryElements: categoryElements,
1932
+ showSideNav: showSideNav,
1933
+ onMenuClick: onMenuClick,
1934
+ endpoint: endpoint,
1935
+ currency: currency,
1936
+ currencyOptions: currencyOptions,
1937
+ onCurrencyChange: onCurrencyChange,
1938
+ isCurrencySelectionDisabled: isCurrencySelectionDisabled,
1939
+ tooltipContent: tooltipContent,
1940
+ LinkComponent: LinkComponent,
1941
+ categoryConfig: categoryConfig
1942
+ }), app && /*#__PURE__*/React.createElement(LuxityAppSideNav, {
1943
+ accordionIcon: accordionIcon,
1944
+ closeIcon: closeIcon,
1945
+ accountIcon: accountIcon,
1946
+ orderIcon: orderIcon,
1947
+ saleIcon: saleIcon,
1948
+ onDashboardClick: handleDashboardClick,
1949
+ onLogoutClick: handleLogoutClick,
1950
+ bugReportLink: bugReportLink,
1951
+ onLuxityShopClick: handleLuxityShopClick,
1952
+ showSideNav: showSideNav,
1953
+ onMenuClick: onMenuClick,
1954
+ onInterestClick: handleInterestClick,
1955
+ onAddressClick: handleAddressClick,
1956
+ onCouponsClick: handleCouponsClick,
1957
+ onEditProfileClick: handleEditProfileClick,
1958
+ onCurrentOrdersClick: handleCurrentOrdersClick,
1959
+ onPastOrdersClick: handlePastOrdersClick,
1960
+ onSubmissionsClick: handleSubmissionsClick,
1961
+ onPastSalesClick: handlePastSalesClick,
1962
+ onPaidOutClick: handlePaidOutClick
1963
+ }));
1964
+ };
1965
+
1966
+ export default LuxityMobileHeader;