@bonlineza/luxity-lib 2.39.6 → 2.39.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/Accordion.js +352 -342
  2. package/AddInterest.js +3179 -3136
  3. package/AddProductInterest.js +7584 -1011
  4. package/BrandSelector.js +861 -854
  5. package/Checkbox.js +250 -240
  6. package/CheckboxButton.js +236 -229
  7. package/CommunicationPreferenceOptionsRenderer.js +568 -560
  8. package/CommunicationPreferenceSection.js +659 -651
  9. package/CommunicationPreferences.js +2402 -2394
  10. package/ConditionSelector.js +859 -852
  11. package/CountryCodeSelect.js +6650 -79
  12. package/CurrencyInputFormatter.js +96 -86
  13. package/CurrencySelect.js +227 -219
  14. package/DropdownSelector.js +6820 -211
  15. package/GALink.js +51 -43
  16. package/GenderSelector.js +362 -355
  17. package/GraphQLDropdownSelector.js +11914 -5307
  18. package/GraphQLMultiSelector.js +601 -593
  19. package/IconHeader.js +126 -118
  20. package/IconWrapper.js +25 -17
  21. package/InterestCatSelector.js +432 -424
  22. package/InterestItem.js +470 -462
  23. package/Interests.js +11324 -4717
  24. package/InterestsSubheading.js +41 -33
  25. package/InvertedTextButton.js +175 -167
  26. package/LuxityAppSideNav.js +189 -181
  27. package/LuxityDesktopHeader.js +1363 -1355
  28. package/LuxityFooter.js +2236 -2228
  29. package/LuxityGraphQLDropdownSelector.js +11999 -5392
  30. package/LuxityGraphQLMultiselector.js +785 -778
  31. package/LuxityMobileHeader.js +1794 -1786
  32. package/LuxityPageReady.js +209 -199
  33. package/LuxityProductInterestItem.js +367 -359
  34. package/LuxitySideNav.js +673 -665
  35. package/MaterialSelector.js +12029 -5422
  36. package/ModelSelector.js +12029 -5422
  37. package/NotificationDropDown.js +7029 -459
  38. package/Notify.js +32 -20
  39. package/OutlinePrimaryButton.js +142 -134
  40. package/PriceRangeSelector.js +1277 -1264
  41. package/PrimaryButton.js +137 -129
  42. package/RadioButtons.js +318 -308
  43. package/RangeSlider.js +1039 -1033
  44. package/RareStepFooter.js +264 -257
  45. package/RareStepHeader.js +808 -801
  46. package/ReactSelectWrapper.js +6604 -33
  47. package/SecondaryButton.js +152 -144
  48. package/ShoeSizeRangeSelector.js +1153 -1147
  49. package/ShoeSizeSelector.js +1198 -1146
  50. package/SimpleErrorBoundary.js +138 -130
  51. package/StyleSelector.js +861 -854
  52. package/TextButton.js +143 -135
  53. package/Tooltip.js +184 -176
  54. package/Tracking.js +25 -15
  55. package/WrapperButton.js +58 -50
  56. package/build/bundle.css +1 -1
  57. package/build/bundle.js +17272 -10631
  58. package/build/constants.js +45 -32
  59. package/package.json +3 -2
  60. package/svg/Accessories.js +42 -34
  61. package/svg/Account.js +38 -30
  62. package/svg/Add.js +39 -31
  63. package/svg/ArrowRight.js +36 -28
  64. package/svg/Bags.js +48 -40
  65. package/svg/BurgerMenu.js +32 -24
  66. package/svg/Calendar.js +106 -98
  67. package/svg/CalendarCircled.js +108 -100
  68. package/svg/CheckCircled.js +40 -32
  69. package/svg/Close.js +37 -29
  70. package/svg/Clothing.js +44 -36
  71. package/svg/Dot.js +40 -32
  72. package/svg/Edit.js +35 -27
  73. package/svg/Eye.js +36 -28
  74. package/svg/FileAttach.js +36 -28
  75. package/svg/FileAttachCircled.js +38 -30
  76. package/svg/Jewellery.js +57 -49
  77. package/svg/LightBulb.js +66 -58
  78. package/svg/Logo.js +140 -132
  79. package/svg/LuxityMenu.js +36 -28
  80. package/svg/Minus.js +37 -29
  81. package/svg/MobileAvatar.js +36 -28
  82. package/svg/MyOrder.js +44 -36
  83. package/svg/MyPayment.js +44 -36
  84. package/svg/MyProfile.js +52 -44
  85. package/svg/MySale.js +39 -31
  86. package/svg/Notification.js +38 -30
  87. package/svg/PointerDown.js +36 -28
  88. package/svg/Search.js +35 -27
  89. package/svg/Shoes.js +45 -37
  90. package/svg/SvgWrapper.js +21 -13
  91. package/svg/Trash.js +40 -32
  92. package/svg/Watches.js +55 -47
@@ -1,1966 +1,1974 @@
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);
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;
13
22
  }
14
23
 
15
- return keys;
16
- }
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
+ }
17
33
 
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
- });
34
+ return target;
26
35
  }
27
36
 
28
- return target;
29
- }
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
+ }
30
48
 
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;
49
+ return obj;
41
50
  }
42
51
 
43
- return obj;
44
- }
45
-
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];
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];
50
56
 
51
- for (var key in source) {
52
- if (Object.prototype.hasOwnProperty.call(source, key)) {
53
- target[key] = source[key];
57
+ for (var key in source) {
58
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
59
+ target[key] = source[key];
60
+ }
54
61
  }
55
62
  }
56
- }
57
63
 
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);
64
+ return target;
65
+ };
66
+ return _extends.apply(this, arguments);
66
67
  }
67
68
 
68
- return Object.freeze(Object.defineProperties(strings, {
69
- raw: {
70
- value: Object.freeze(raw)
69
+ function _taggedTemplateLiteral(strings, raw) {
70
+ if (!raw) {
71
+ raw = strings.slice(0);
71
72
  }
72
- }));
73
- }
74
73
 
75
- function _slicedToArray(arr, i) {
76
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
77
- }
74
+ return Object.freeze(Object.defineProperties(strings, {
75
+ raw: {
76
+ value: Object.freeze(raw)
77
+ }
78
+ }));
79
+ }
78
80
 
79
- function _toConsumableArray(arr) {
80
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
81
- }
81
+ function _slicedToArray(arr, i) {
82
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
83
+ }
82
84
 
83
- function _arrayWithoutHoles(arr) {
84
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
85
- }
85
+ function _toConsumableArray(arr) {
86
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
87
+ }
86
88
 
87
- function _arrayWithHoles(arr) {
88
- if (Array.isArray(arr)) return arr;
89
- }
89
+ function _arrayWithoutHoles(arr) {
90
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
91
+ }
90
92
 
91
- function _iterableToArray(iter) {
92
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
93
- }
93
+ function _arrayWithHoles(arr) {
94
+ if (Array.isArray(arr)) return arr;
95
+ }
94
96
 
95
- function _iterableToArrayLimit(arr, i) {
96
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
97
+ function _iterableToArray(iter) {
98
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
99
+ }
97
100
 
98
- if (_i == null) return;
99
- var _arr = [];
100
- var _n = true;
101
- var _d = false;
101
+ function _iterableToArrayLimit(arr, i) {
102
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
102
103
 
103
- var _s, _e;
104
+ if (_i == null) return;
105
+ var _arr = [];
106
+ var _n = true;
107
+ var _d = false;
104
108
 
105
- try {
106
- for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
107
- _arr.push(_s.value);
109
+ var _s, _e;
108
110
 
109
- if (i && _arr.length === i) break;
110
- }
111
- } catch (err) {
112
- _d = true;
113
- _e = err;
114
- } finally {
115
111
  try {
116
- if (!_n && _i["return"] != null) _i["return"]();
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;
117
120
  } finally {
118
- if (_d) throw _e;
121
+ try {
122
+ if (!_n && _i["return"] != null) _i["return"]();
123
+ } finally {
124
+ if (_d) throw _e;
125
+ }
119
126
  }
127
+
128
+ return _arr;
120
129
  }
121
130
 
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
- }
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
+ }
155
+
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")))));
177
338
  };
178
339
 
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", {
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", {
369
348
  type: "button",
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;
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
+ })));
398
380
  };
399
381
 
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),
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),
448
448
  onClick: handleLinkClick,
449
449
  className: "side-nav__element"
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
- };
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
+ };
495
459
 
496
- var getAfterStyling = function getAfterStyling() {
497
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
498
- var $toolTipPosition = props.$toolTipPosition;
460
+ var removeCategoryByName = function removeCategoryByName(categories, name) {
461
+ var _categories$filter;
499
462
 
500
- switch ($toolTipPosition) {
501
- case 'top':
502
- return getTopMiddleArrowAfterStyle(props);
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
+ };
503
467
 
504
- case 'bottom':
505
- return getBottomMiddleArrowAfterStyle(props);
468
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
469
+ /* position relative is required for the Body element to be positioned correctly */
506
470
 
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
- }
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
+ };
630
482
 
631
- var selectedOption = currencyOptions.find(function (opt) {
632
- return opt.value === currency;
633
- });
483
+ var _templateObject$1;
634
484
 
635
- if (!selectedOption) {
636
- return null;
637
- }
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;
638
489
 
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);
718
- };
490
+ switch ($toolTipPosition) {
491
+ case 'top':
492
+ return topMiddleBodyStyle;
493
+
494
+ case 'bottom':
495
+ return getBottomMiddleBodyStyle(props);
719
496
 
720
- var onStoresClick = function onStoresClick() {
721
- setSubMenuOpen(false);
722
- setDisplayedSubMenu('stores');
497
+ default:
498
+ return null;
499
+ }
723
500
  };
724
501
 
725
- var onBackClick = function onBackClick() {
726
- setSubMenuOpen(false);
727
- setDisplayedSubMenu('');
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);
512
+
513
+ default:
514
+ return '';
515
+ }
728
516
  };
729
517
 
730
- var onCloseSideNav = function onCloseSideNav(e) {
731
- onMenuClick();
732
- setSubMenuOpen(false);
733
- setDisplayedSubMenu('');
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
+ });
734
527
 
735
- if (e && e.key === 'Enter') {
736
- e.preventDefault();
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'
737
582
  }
738
583
  };
739
584
 
740
- function addCategoryToElements(elements, categoryName) {
741
- return elements.map(function (element) {
742
- return _objectSpread2(_objectSpread2({}, element), {}, {
743
- category: categoryName
744
- });
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
+ })));
745
592
  });
746
- }
593
+ });
747
594
 
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]);
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
+ };
758
621
 
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;
622
+ var Tooltip$1 = themed(Tooltip);
764
623
 
765
- if (categorySlug === 'brands') {
766
- slug = 'new';
767
- }
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;
768
632
 
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
- })));
633
+ if (!currencyOptions || currencyOptions.length === 0) {
634
+ return null;
635
+ }
636
+
637
+ var selectedOption = currencyOptions.find(function (opt) {
638
+ return opt.value === currency;
785
639
  });
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
+ }))));
786
669
  };
787
670
 
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
- }
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
+ };
805
725
 
806
- var subMenuTitle = 'Brands';
726
+ var onStoresClick = function onStoresClick() {
727
+ setSubMenuOpen(false);
728
+ setDisplayedSubMenu('stores');
729
+ };
807
730
 
808
- if (categorySlug !== 'brands') {
809
- subMenuTitle = "".concat(categoryName, " Brands");
810
- }
731
+ var onBackClick = function onBackClick() {
732
+ setSubMenuOpen(false);
733
+ setDisplayedSubMenu('');
734
+ };
811
735
 
812
- var subMenu = categorySlug;
736
+ var onCloseSideNav = function onCloseSideNav(e) {
737
+ onMenuClick();
738
+ setSubMenuOpen(false);
739
+ setDisplayedSubMenu('');
813
740
 
814
- if (subMenu === 'brands') {
815
- subMenu = 'new';
741
+ if (e && e.key === 'Enter') {
742
+ e.preventDefault();
816
743
  }
744
+ };
817
745
 
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
746
+ function addCategoryToElements(elements, categoryName) {
747
+ return elements.map(function (element) {
748
+ return _objectSpread2(_objectSpread2({}, element), {}, {
749
+ category: categoryName
750
+ });
833
751
  });
834
- });
835
- };
752
+ }
836
753
 
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);
962
- };
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);
762
+ });
763
+ }, [categoryConfig.menuData]);
963
764
 
964
- checkIfMobile();
965
- window.addEventListener('resize', checkIfMobile);
966
- return function () {
967
- window.removeEventListener('resize', checkIfMobile);
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
+ }
774
+
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
+ });
968
792
  };
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
- }
978
793
 
979
- if (!hasResults && !hasInitialData && !showNoResults) {
980
- return null;
981
- }
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
+ }
982
811
 
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
- };
812
+ var subMenuTitle = 'Brands';
990
813
 
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
- };
814
+ if (categorySlug !== 'brands') {
815
+ subMenuTitle = "".concat(categoryName, " Brands");
816
+ }
1004
817
 
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
- };
818
+ var subMenu = categorySlug;
1023
819
 
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
1030
- };
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
- });
820
+ if (subMenu === 'brands') {
821
+ subMenu = 'new';
1046
822
  }
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
- };
1082
823
 
1083
- var getBrandLink = function getBrandLink(brand) {
1084
- return "/products/brands/".concat(brand.slug);
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
+ });
841
+ };
842
+
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
+ })));
1085
934
  };
1086
935
 
1087
- var limitBrands = function limitBrands(brands) {
1088
- if (isMobile && brands && brands.length > 4) {
1089
- return brands.slice(0, 4);
1090
- }
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
+ };
1091
969
 
1092
- return brands;
1093
- };
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);
1094
980
 
1095
- var renderBrandsList = function renderBrandsList() {
1096
- var _limitBrands2;
981
+ if (!isSearchFocused) {
982
+ return null;
983
+ }
1097
984
 
1098
- if (isLoading) {
1099
- return renderBrandSkeleton();
985
+ if (!hasResults && !hasInitialData && !showNoResults) {
986
+ return null;
1100
987
  }
1101
988
 
1102
- if (shouldShowInitialData) {
1103
- var _limitBrands;
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
+ };
996
+
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
+ };
1104
1010
 
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),
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
+ }));
1028
+ };
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
+ }
1053
+ }
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
+ };
1088
+
1089
+ var getBrandLink = function getBrandLink(brand) {
1090
+ return "/products/brands/".concat(brand.slug);
1091
+ };
1092
+
1093
+ var limitBrands = function limitBrands(brands) {
1094
+ if (isMobile && brands && brands.length > 4) {
1095
+ return brands.slice(0, 4);
1096
+ }
1097
+
1098
+ return brands;
1099
+ };
1100
+
1101
+ var renderBrandsList = function renderBrandsList() {
1102
+ var _limitBrands2;
1103
+
1104
+ if (isLoading) {
1105
+ return renderBrandSkeleton();
1106
+ }
1107
+
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
+ }
1129
+
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,
1109
1134
  className: "search-results__item",
1110
1135
  onClick: function onClick() {
1111
1136
  if (typeof onBrandSearchResultClick === 'function') {
1112
1137
  onBrandSearchResultClick({
1113
1138
  brand_name: brand.name,
1114
- brand_link: getBrandLink(brand),
1139
+ brand_link: brand.link,
1115
1140
  search_string: searchValue,
1116
- is_trending: true
1141
+ is_trending: false
1117
1142
  });
1118
1143
  }
1119
1144
  }
1120
1145
  }, brand.name);
1121
1146
  });
1122
- }
1147
+ };
1123
1148
 
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
- };
1149
+ var renderProductsList = function renderProductsList() {
1150
+ var _searchResults$produc2;
1142
1151
 
1143
- var renderProductsList = function renderProductsList() {
1144
- var _searchResults$produc2;
1152
+ if (isLoading) {
1153
+ return renderProductSkeleton();
1154
+ }
1145
1155
 
1146
- if (isLoading) {
1147
- return renderProductSkeleton();
1148
- }
1156
+ if (shouldShowInitialData) {
1157
+ var _initialSearchData$la2;
1149
1158
 
1150
- if (shouldShowInitialData) {
1151
- var _initialSearchData$la2;
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
+ }
1152
1161
 
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);
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")));
1154
1192
  }
1155
1193
 
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", {
1194
+ return /*#__PURE__*/React__default.createElement("div", {
1162
1195
  className: "search-results",
1163
1196
  ref: searchResultsRef
1164
- }, /*#__PURE__*/React.createElement("div", {
1165
- className: "search-results__no-results"
1166
- }, /*#__PURE__*/React.createElement("h2", {
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", {
1167
1208
  className: "search-results__header"
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", {
1209
+ }, shouldShowInitialData ? 'POPULAR' : 'TOP MATCHES'), /*#__PURE__*/React__default.createElement("button", {
1182
1210
  type: "button",
1183
- className: "search-results__create-interest-button",
1184
- onClick: onCreateInterests
1185
- }, "Create Interests")));
1186
- }
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", {
1218
+ type: "button",
1219
+ className: "search-results__view-all-button",
1220
+ onClick: function onClick() {
1221
+ onViewAll();
1187
1222
 
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);
1223
+ if (!shouldShowInitialData) {
1224
+ onSearchSubmit(searchValue);
1225
+ setSearchValue('');
1226
+ setIsSearchFocused(false);
1227
+ }
1221
1228
  }
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
- }
1233
- };
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
- }
1229
+ }, "View all items")));
1247
1230
  };
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];
1262
- }
1263
1231
 
1264
- var later = function later() {
1265
- clearTimeout(timeout);
1266
- func.apply(void 0, args);
1267
- };
1268
-
1269
- clearTimeout(timeout);
1270
- timeout = setTimeout(later, wait);
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
1238
+ }
1271
1239
  };
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);
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
1296
1252
  }
1253
+ };
1254
+ };
1297
1255
 
1298
- return;
1299
- } // Cancel any ongoing search request to prevent race conditions
1300
-
1301
-
1302
- if (currentSearchRequestToken.current) {
1303
- currentSearchRequestToken.current.cancel();
1304
- } // Create a new token for this specific search request
1305
-
1306
-
1307
- var newSearchToken = axios.CancelToken.source();
1308
- currentSearchRequestToken.current = newSearchToken; // Reset no results state when starting new search (user is typing)
1309
-
1310
- if (typeof onNoResults === 'function') {
1311
- onNoResults(false);
1312
- } // Set loading to true when starting the search request
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
+ }
1313
1269
 
1270
+ var later = function later() {
1271
+ clearTimeout(timeout);
1272
+ func.apply(void 0, args);
1273
+ };
1314
1274
 
1315
- if (typeof onSearchLoading === 'function') {
1316
- onSearchLoading(true);
1317
- } // Make TWO parallel queries: brands aggregations + products filter
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
1318
1299
 
1300
+ if (typeof onNoResults === 'function') {
1301
+ onNoResults(false);
1302
+ }
1319
1303
 
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];
1304
+ return;
1305
+ } // Cancel any ongoing search request to prevent race conditions
1330
1306
 
1331
- if (currentSearchRequestToken.current === newSearchToken) {
1332
- var _brandsResponse$data$, _productsResponse$dat, _productsResponse$dat2;
1333
1307
 
1334
- // Set loading to false when search completes
1335
- if (typeof onSearchLoading === 'function') {
1336
- onSearchLoading(false);
1337
- } // Extract brands from aggregations
1308
+ if (currentSearchRequestToken.current) {
1309
+ currentSearchRequestToken.current.cancel();
1310
+ } // Create a new token for this specific search request
1338
1311
 
1339
1312
 
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
1313
+ var newSearchToken = axios.CancelToken.source();
1314
+ currentSearchRequestToken.current = newSearchToken; // Reset no results state when starting new search (user is typing)
1341
1315
 
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 }
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)
1344
1389
 
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
1390
+ var hasNoResults = brandsData.length === 0 && productsData.length === 0;
1349
1391
 
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
- };
1376
- });
1377
- var searchResults = {
1378
- brands: brands,
1379
- products: products,
1380
- total: totalResults
1381
- };
1382
- setSearchResults(searchResults); // Check if we have no results (empty aggregations)
1392
+ if (typeof onNoResults === 'function') {
1393
+ onNoResults(hasNoResults);
1394
+ }
1383
1395
 
1384
- var hasNoResults = brandsData.length === 0 && productsData.length === 0;
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
+ }
1385
1403
 
1386
- if (typeof onNoResults === 'function') {
1387
- onNoResults(hasNoResults);
1404
+ currentSearchRequestToken.current = null;
1388
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
+ }
1389
1412
 
1390
- if (typeof onSearchPreview === 'function') {
1391
- var hasResults = brands.length > 0 || products.length > 0;
1392
- onSearchPreview({
1393
- search_string: searchQuery,
1394
- has_results: hasResults
1413
+ setSearchResults({
1414
+ brands: [],
1415
+ products: []
1395
1416
  });
1417
+ currentSearchRequestToken.current = null;
1396
1418
  }
1397
-
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);
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;
1405
1440
  }
1406
1441
 
1442
+ setSearchValue('');
1407
1443
  setSearchResults({
1408
1444
  brands: [],
1409
1445
  products: []
1410
1446
  });
1411
- currentSearchRequestToken.current = null;
1412
- }
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;
1434
- }
1435
-
1436
- setSearchValue('');
1437
- setSearchResults({
1438
- brands: [],
1439
- products: []
1440
- });
1441
- onSearchSubmit(searchQuery);
1447
+ onSearchSubmit(searchQuery);
1448
+ };
1449
+ }, []);
1450
+ return {
1451
+ fetchInitialSearchData: fetchInitialSearchData,
1452
+ createDebouncedSearch: createDebouncedSearch,
1453
+ createImmediateSearch: createImmediateSearch
1442
1454
  };
1443
- }, []);
1444
- return {
1445
- fetchInitialSearchData: fetchInitialSearchData,
1446
- createDebouncedSearch: createDebouncedSearch,
1447
- createImmediateSearch: createImmediateSearch
1448
1455
  };
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);
1458
- setIsSearchFocused(false);
1459
- setSearchResults({
1460
- brands: [],
1461
- products: []
1462
- }); // Reset search value and no results state when closing
1463
1456
 
1464
- if (setSearchValue) {
1465
- setSearchValue('');
1466
- }
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
+ }
1467
1473
 
1468
- if (setShowNoResults) {
1469
- setShowNoResults(false);
1474
+ if (setShowNoResults) {
1475
+ setShowNoResults(false);
1476
+ }
1470
1477
  }
1478
+ };
1479
+
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;
1471
1495
  }
1472
- };
1473
1496
 
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
- }
1497
+ setSearchValue(value);
1498
+ setIsSearchFocused(true);
1490
1499
 
1491
- setSearchValue(value);
1492
- setIsSearchFocused(true);
1500
+ if (value.trim().length >= 3) {
1501
+ debouncedSearch(value);
1502
+ } else {
1503
+ setSearchResults({
1504
+ brands: [],
1505
+ products: []
1506
+ });
1507
+ setCachedResults({
1508
+ brands: [],
1509
+ products: []
1510
+ });
1511
+ }
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);
1522
+ }
1493
1523
 
1494
- if (value.trim().length >= 3) {
1495
- debouncedSearch(value);
1496
- } else {
1497
- setSearchResults({
1498
- brands: [],
1499
- products: []
1500
- });
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
- }
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]);
1530
+ };
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
+ }
1517
1540
 
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();
1541
+ setIsSearchFocused(false);
1542
+ } else if (event.key === 'Escape' && setSearchValue) {
1543
+ setSearchValue('');
1544
+ setIsSearchFocused(false);
1545
+ }
1546
+ }, [searchValue, immediateSearch, setIsSearchFocused, setSearchValue]);
1547
+ };
1530
1548
 
1531
- if (searchValue.trim().length >= 3) {
1532
- immediateSearch(searchValue);
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);
1626
+ }
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;
1533
1692
  }
1534
1693
 
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);
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();
1620
1701
  }
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
- }
1702
+ }, [showSearchBar]);
1687
1703
 
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]);
1704
+ var onSearchClick = function onSearchClick() {
1705
+ if (!showSearchBar && typeof onSearchBarClick === 'function') {
1706
+ onSearchBarClick();
1707
+ }
1697
1708
 
1698
- var onSearchClick = function onSearchClick() {
1699
- if (!showSearchBar && typeof onSearchBarClick === 'function') {
1700
- onSearchBarClick();
1701
- }
1709
+ setShowSearchbar(function (prev) {
1710
+ return !prev;
1711
+ });
1712
+ setSearchValue('');
1713
+ setIsSearchFocused(!showSearchBar);
1702
1714
 
1703
- setShowSearchbar(function (prev) {
1704
- return !prev;
1705
- });
1706
- setSearchValue('');
1707
- setIsSearchFocused(!showSearchBar);
1715
+ if (showSearchBar) {
1716
+ setSearchResults({
1717
+ brands: [],
1718
+ products: []
1719
+ });
1720
+ setShowNoResults(false);
1721
+ }
1722
+ };
1708
1723
 
1709
- if (showSearchBar) {
1710
- setSearchResults({
1711
- brands: [],
1712
- products: []
1724
+ var onMenuClick = function onMenuClick() {
1725
+ setShowSideNav(function (prev) {
1726
+ return !prev;
1713
1727
  });
1714
- setShowNoResults(false);
1715
- }
1716
- };
1728
+ };
1717
1729
 
1718
- var onMenuClick = function onMenuClick() {
1719
- setShowSideNav(function (prev) {
1720
- return !prev;
1721
- });
1722
- };
1730
+ var handleClick = function handleClick(callback) {
1731
+ callback();
1732
+ setShowSideNav(false);
1733
+ };
1723
1734
 
1724
- var handleClick = function handleClick(callback) {
1725
- callback();
1726
- setShowSideNav(false);
1727
- };
1735
+ var handleDashboardClick = function handleDashboardClick() {
1736
+ return handleClick(onDashboardClick);
1737
+ };
1728
1738
 
1729
- var handleDashboardClick = function handleDashboardClick() {
1730
- return handleClick(onDashboardClick);
1731
- };
1739
+ var handleSellToUsClick = function handleSellToUsClick() {
1740
+ return handleClick(onSellToUsClick);
1741
+ };
1732
1742
 
1733
- var handleSellToUsClick = function handleSellToUsClick() {
1734
- return handleClick(onSellToUsClick);
1735
- };
1743
+ var handleCartClick = function handleCartClick() {
1744
+ return handleClick(onCartClick);
1745
+ };
1736
1746
 
1737
- var handleCartClick = function handleCartClick() {
1738
- return handleClick(onCartClick);
1739
- };
1747
+ var handleLuxityShopClick = function handleLuxityShopClick() {
1748
+ return handleClick(onLuxityShopClick);
1749
+ };
1740
1750
 
1741
- var handleLuxityShopClick = function handleLuxityShopClick() {
1742
- return handleClick(onLuxityShopClick);
1743
- };
1751
+ var handleLogoutClick = function handleLogoutClick() {
1752
+ return handleClick(onLogoutClick);
1753
+ };
1744
1754
 
1745
- var handleLogoutClick = function handleLogoutClick() {
1746
- return handleClick(onLogoutClick);
1747
- };
1755
+ var handleInterestClick = function handleInterestClick() {
1756
+ return handleClick(onInterestClick);
1757
+ };
1748
1758
 
1749
- var handleInterestClick = function handleInterestClick() {
1750
- return handleClick(onInterestClick);
1751
- };
1759
+ var handleAddressClick = function handleAddressClick() {
1760
+ return handleClick(onAddressClick);
1761
+ };
1752
1762
 
1753
- var handleAddressClick = function handleAddressClick() {
1754
- return handleClick(onAddressClick);
1755
- };
1763
+ var handleCouponsClick = function handleCouponsClick() {
1764
+ return handleClick(onCouponsClick);
1765
+ };
1756
1766
 
1757
- var handleCouponsClick = function handleCouponsClick() {
1758
- return handleClick(onCouponsClick);
1759
- };
1767
+ var handleEditProfileClick = function handleEditProfileClick() {
1768
+ return handleClick(onEditProfileClick);
1769
+ };
1760
1770
 
1761
- var handleEditProfileClick = function handleEditProfileClick() {
1762
- return handleClick(onEditProfileClick);
1763
- };
1771
+ var handleCurrentOrdersClick = function handleCurrentOrdersClick() {
1772
+ return handleClick(onCurrentOrdersClick);
1773
+ };
1764
1774
 
1765
- var handleCurrentOrdersClick = function handleCurrentOrdersClick() {
1766
- return handleClick(onCurrentOrdersClick);
1767
- };
1775
+ var handlePastOrdersClick = function handlePastOrdersClick() {
1776
+ return handleClick(onPastOrdersClick);
1777
+ };
1768
1778
 
1769
- var handlePastOrdersClick = function handlePastOrdersClick() {
1770
- return handleClick(onPastOrdersClick);
1771
- };
1779
+ var handlePastSalesClick = function handlePastSalesClick() {
1780
+ return handleClick(onPastSalesClick);
1781
+ };
1772
1782
 
1773
- var handlePastSalesClick = function handlePastSalesClick() {
1774
- return handleClick(onPastSalesClick);
1775
- };
1783
+ var handlePaidOutClick = function handlePaidOutClick() {
1784
+ return handleClick(onPaidOutClick);
1785
+ };
1776
1786
 
1777
- var handlePaidOutClick = function handlePaidOutClick() {
1778
- return handleClick(onPaidOutClick);
1779
- };
1787
+ var handleSubmissionsClick = function handleSubmissionsClick() {
1788
+ return handleClick(onSubmissionsClick);
1789
+ };
1780
1790
 
1781
- var handleSubmissionsClick = function handleSubmissionsClick() {
1782
- return handleClick(onSubmissionsClick);
1783
- };
1791
+ var handleAccountClick = function handleAccountClick() {
1792
+ return handleClick(onAccountClick);
1793
+ };
1784
1794
 
1785
- var handleAccountClick = function handleAccountClick() {
1786
- return handleClick(onAccountClick);
1787
- };
1795
+ var handleContactUsClick = function handleContactUsClick() {
1796
+ return handleClick(onContactUsClick);
1797
+ };
1788
1798
 
1789
- var handleContactUsClick = function handleContactUsClick() {
1790
- return handleClick(onContactUsClick);
1791
- };
1799
+ var handleOurStoryClick = function handleOurStoryClick() {
1800
+ return handleClick(onOurStoryClick);
1801
+ };
1792
1802
 
1793
- var handleOurStoryClick = function handleOurStoryClick() {
1794
- return handleClick(onOurStoryClick);
1795
- };
1803
+ var handleBlogClick = onBlogClick ? function () {
1804
+ return handleClick(onBlogClick);
1805
+ } : undefined;
1796
1806
 
1797
- var handleBlogClick = onBlogClick ? function () {
1798
- return handleClick(onBlogClick);
1799
- } : undefined;
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
+ };
1800
1813
 
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);
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
+ }));
1806
1970
  };
1807
1971
 
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;
1972
+ return LuxityMobileHeader;
1973
+
1974
+ })));