@bonlineza/luxity-lib 2.39.6 → 2.39.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Accordion.js +352 -342
- package/AddInterest.js +3141 -3135
- package/AddProductInterest.js +7584 -1011
- package/BrandSelector.js +861 -854
- package/Checkbox.js +250 -240
- package/CheckboxButton.js +236 -229
- package/CommunicationPreferenceOptionsRenderer.js +568 -560
- package/CommunicationPreferenceSection.js +659 -651
- package/CommunicationPreferences.js +2402 -2394
- package/ConditionSelector.js +859 -852
- package/CountryCodeSelect.js +6650 -79
- package/CurrencyInputFormatter.js +96 -86
- package/CurrencySelect.js +227 -219
- package/DropdownSelector.js +6820 -211
- package/GALink.js +51 -43
- package/GenderSelector.js +362 -355
- package/GraphQLDropdownSelector.js +11878 -5308
- package/GraphQLMultiSelector.js +601 -593
- package/IconHeader.js +126 -118
- package/IconWrapper.js +25 -17
- package/InterestCatSelector.js +432 -424
- package/InterestItem.js +470 -462
- package/Interests.js +11286 -4716
- package/InterestsSubheading.js +41 -33
- package/InvertedTextButton.js +175 -167
- package/LuxityAppSideNav.js +189 -181
- package/LuxityDesktopHeader.js +1363 -1355
- package/LuxityFooter.js +2236 -2228
- package/LuxityGraphQLDropdownSelector.js +11963 -5393
- package/LuxityGraphQLMultiselector.js +785 -778
- package/LuxityMobileHeader.js +1794 -1786
- package/LuxityPageReady.js +209 -199
- package/LuxityProductInterestItem.js +367 -359
- package/LuxitySideNav.js +673 -665
- package/MaterialSelector.js +11993 -5423
- package/ModelSelector.js +11993 -5423
- package/NotificationDropDown.js +7029 -459
- package/Notify.js +32 -20
- package/OutlinePrimaryButton.js +142 -134
- package/PriceRangeSelector.js +1270 -1264
- package/PrimaryButton.js +137 -129
- package/RadioButtons.js +318 -308
- package/RangeSlider.js +1039 -1033
- package/RareStepFooter.js +264 -257
- package/RareStepHeader.js +808 -801
- package/ReactSelectWrapper.js +6604 -33
- package/SecondaryButton.js +152 -144
- package/ShoeSizeRangeSelector.js +1153 -1147
- package/ShoeSizeSelector.js +1154 -1146
- package/SimpleErrorBoundary.js +138 -130
- package/StyleSelector.js +861 -854
- package/TextButton.js +143 -135
- package/Tooltip.js +184 -176
- package/Tracking.js +25 -15
- package/WrapperButton.js +58 -50
- package/build/bundle.css +1 -1
- package/build/bundle.js +17236 -10632
- package/build/constants.js +45 -32
- package/package.json +2 -2
- package/svg/Accessories.js +42 -34
- package/svg/Account.js +38 -30
- package/svg/Add.js +39 -31
- package/svg/ArrowRight.js +36 -28
- package/svg/Bags.js +48 -40
- package/svg/BurgerMenu.js +32 -24
- package/svg/Calendar.js +106 -98
- package/svg/CalendarCircled.js +108 -100
- package/svg/CheckCircled.js +40 -32
- package/svg/Close.js +37 -29
- package/svg/Clothing.js +44 -36
- package/svg/Dot.js +40 -32
- package/svg/Edit.js +35 -27
- package/svg/Eye.js +36 -28
- package/svg/FileAttach.js +36 -28
- package/svg/FileAttachCircled.js +38 -30
- package/svg/Jewellery.js +57 -49
- package/svg/LightBulb.js +66 -58
- package/svg/Logo.js +140 -132
- package/svg/LuxityMenu.js +36 -28
- package/svg/Minus.js +37 -29
- package/svg/MobileAvatar.js +36 -28
- package/svg/MyOrder.js +44 -36
- package/svg/MyPayment.js +44 -36
- package/svg/MyProfile.js +52 -44
- package/svg/MySale.js +39 -31
- package/svg/Notification.js +38 -30
- package/svg/PointerDown.js +36 -28
- package/svg/Search.js +35 -27
- package/svg/Shoes.js +45 -37
- package/svg/SvgWrapper.js +21 -13
- package/svg/Trash.js +40 -32
- package/svg/Watches.js +55 -47
package/LuxityDesktopHeader.js
CHANGED
|
@@ -1,1503 +1,1511 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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.LuxityDesktopHeader = 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
44
|
-
|
|
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];
|
|
45
56
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
58
|
-
return target;
|
|
59
|
-
};
|
|
60
|
-
return _extends.apply(this, arguments);
|
|
61
|
-
}
|
|
62
63
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
return target;
|
|
65
|
+
};
|
|
66
|
+
return _extends.apply(this, arguments);
|
|
66
67
|
}
|
|
67
68
|
|
|
68
|
-
|
|
69
|
-
raw
|
|
70
|
-
|
|
69
|
+
function _taggedTemplateLiteral(strings, raw) {
|
|
70
|
+
if (!raw) {
|
|
71
|
+
raw = strings.slice(0);
|
|
71
72
|
}
|
|
72
|
-
}));
|
|
73
|
-
}
|
|
74
73
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
return Object.freeze(Object.defineProperties(strings, {
|
|
75
|
+
raw: {
|
|
76
|
+
value: Object.freeze(raw)
|
|
77
|
+
}
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
78
80
|
|
|
79
|
-
function
|
|
80
|
-
|
|
81
|
-
}
|
|
81
|
+
function _slicedToArray(arr, i) {
|
|
82
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
83
|
+
}
|
|
82
84
|
|
|
83
|
-
function
|
|
84
|
-
|
|
85
|
-
}
|
|
85
|
+
function _toConsumableArray(arr) {
|
|
86
|
+
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
|
87
|
+
}
|
|
86
88
|
|
|
87
|
-
function
|
|
88
|
-
|
|
89
|
-
}
|
|
89
|
+
function _arrayWithoutHoles(arr) {
|
|
90
|
+
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
|
|
91
|
+
}
|
|
90
92
|
|
|
91
|
-
function
|
|
92
|
-
|
|
93
|
-
}
|
|
93
|
+
function _arrayWithHoles(arr) {
|
|
94
|
+
if (Array.isArray(arr)) return arr;
|
|
95
|
+
}
|
|
94
96
|
|
|
95
|
-
function
|
|
96
|
-
|
|
97
|
+
function _iterableToArray(iter) {
|
|
98
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
99
|
+
}
|
|
97
100
|
|
|
98
|
-
|
|
99
|
-
|
|
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
|
-
|
|
104
|
+
if (_i == null) return;
|
|
105
|
+
var _arr = [];
|
|
106
|
+
var _n = true;
|
|
107
|
+
var _d = false;
|
|
104
108
|
|
|
105
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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 Dropdown = function Dropdown(_ref) {
|
|
151
|
-
var title = _ref.title,
|
|
152
|
-
imageSrc = _ref.imageSrc,
|
|
153
|
-
_ref$categoryElements = _ref.categoryElements,
|
|
154
|
-
categoryElements = _ref$categoryElements === void 0 ? [] : _ref$categoryElements,
|
|
155
|
-
_ref$brandElements = _ref.brandElements,
|
|
156
|
-
brandElements = _ref$brandElements === void 0 ? [] : _ref$brandElements,
|
|
157
|
-
productsUrl = _ref.productsUrl,
|
|
158
|
-
LinkComponent = _ref.LinkComponent,
|
|
159
|
-
categorySlug = _ref.categorySlug,
|
|
160
|
-
categoryTitle = _ref.categoryTitle,
|
|
161
|
-
isLoading = _ref.isLoading,
|
|
162
|
-
hasError = _ref.hasError,
|
|
163
|
-
onMenuItemClick = _ref.onMenuItemClick;
|
|
164
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, hasError ? /*#__PURE__*/React.createElement("div", {
|
|
165
|
-
className: "dropdown__errors"
|
|
166
|
-
}, "Failed to load data.") : /*#__PURE__*/React.createElement("div", {
|
|
167
|
-
className: "dropdown"
|
|
168
|
-
}, isLoading ? /*#__PURE__*/React.createElement("div", {
|
|
169
|
-
className: "cover-spinner"
|
|
170
|
-
}) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
171
|
-
className: "dropdown__column"
|
|
172
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
173
|
-
className: "dropdown__title"
|
|
174
|
-
}, title), /*#__PURE__*/React.createElement("div", {
|
|
175
|
-
className: "dropdown__elements dropdown__elements--column"
|
|
176
|
-
}, !!categoryElements.length && categoryElements.map(function (categoryElement) {
|
|
177
|
-
return categoryElement.category ? /*#__PURE__*/React.createElement(LinkComponent, {
|
|
178
|
-
href: "".concat(productsUrl, "/").concat(categoryElement.category, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
|
|
179
|
-
className: "dropdown__element",
|
|
180
|
-
key: categoryElement.name,
|
|
181
|
-
onClick: onMenuItemClick
|
|
182
|
-
}, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase()) : /*#__PURE__*/React.createElement(LinkComponent, {
|
|
183
|
-
href: "".concat(productsUrl, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
|
|
184
|
-
className: "dropdown__element",
|
|
185
|
-
key: categoryElement.name,
|
|
186
|
-
onClick: onMenuItemClick
|
|
187
|
-
}, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase());
|
|
188
|
-
}))), /*#__PURE__*/React.createElement("div", {
|
|
189
|
-
className: "dropdown__column"
|
|
190
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
191
|
-
className: "dropdown__title"
|
|
192
|
-
}, "Brands"), /*#__PURE__*/React.createElement("div", {
|
|
193
|
-
className: "dropdown__brand-elements"
|
|
194
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
195
|
-
className: "dropdown__brand-element"
|
|
196
|
-
}, /*#__PURE__*/React.createElement(LinkComponent, {
|
|
197
|
-
href: "".concat(productsUrl, "/").concat(categorySlug),
|
|
198
|
-
className: "dropdown__element",
|
|
199
|
-
onClick: onMenuItemClick
|
|
200
|
-
}, "All ", categoryTitle)), !!brandElements.length && brandElements.map(function (brand) {
|
|
201
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
202
|
-
className: "dropdown__brand-element",
|
|
203
|
-
key: brand.name
|
|
204
|
-
}, /*#__PURE__*/React.createElement(LinkComponent, {
|
|
205
|
-
href: "".concat(productsUrl, "/").concat(categorySlug, "/").concat(brand === null || brand === void 0 ? void 0 : brand.slug),
|
|
206
|
-
className: "dropdown__element",
|
|
207
|
-
onClick: onMenuItemClick
|
|
208
|
-
}, brand === null || brand === void 0 ? void 0 : brand.name));
|
|
209
|
-
}))), /*#__PURE__*/React.createElement("div", {
|
|
210
|
-
className: "dropdown__column"
|
|
211
|
-
}, /*#__PURE__*/React.createElement("img", {
|
|
212
|
-
src: imageSrc,
|
|
213
|
-
alt: "".concat(title)
|
|
214
|
-
})))));
|
|
215
|
-
};
|
|
216
|
-
|
|
217
|
-
var DropdownLink = function DropdownLink(_ref) {
|
|
218
|
-
var title = _ref.title,
|
|
219
|
-
imageSrc = _ref.imageSrc,
|
|
220
|
-
categoryElements = _ref.categoryElements,
|
|
221
|
-
brandElements = _ref.brandElements,
|
|
222
|
-
productsUrl = _ref.productsUrl,
|
|
223
|
-
LinkComponent = _ref.LinkComponent,
|
|
224
|
-
categorySlug = _ref.categorySlug,
|
|
225
|
-
categoryTitle = _ref.categoryTitle,
|
|
226
|
-
isLoading = _ref.isLoading,
|
|
227
|
-
hasError = _ref.hasError;
|
|
228
|
-
|
|
229
|
-
var _useState = useState(false),
|
|
230
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
231
|
-
dropdownVisible = _useState2[0],
|
|
232
|
-
setDropdownVisible = _useState2[1];
|
|
233
|
-
|
|
234
|
-
var handleMenuItemClick = function handleMenuItemClick() {
|
|
235
|
-
setDropdownVisible(false);
|
|
236
|
-
};
|
|
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
|
+
}
|
|
237
139
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
onMouseEnter: function onMouseEnter() {
|
|
241
|
-
return setDropdownVisible(true);
|
|
242
|
-
},
|
|
243
|
-
onMouseLeave: function onMouseLeave() {
|
|
244
|
-
return setDropdownVisible(false);
|
|
245
|
-
}
|
|
246
|
-
}, /*#__PURE__*/React.createElement(LinkComponent, {
|
|
247
|
-
href: "".concat(productsUrl, "/").concat(categorySlug),
|
|
248
|
-
className: "navbar__link-item navbar__link-item--desktop",
|
|
249
|
-
onClick: handleMenuItemClick
|
|
250
|
-
}, title), dropdownVisible && /*#__PURE__*/React.createElement("div", {
|
|
251
|
-
className: "navbar__dropdown"
|
|
252
|
-
}, /*#__PURE__*/React.createElement(Dropdown, {
|
|
253
|
-
title: "Department",
|
|
254
|
-
imageSrc: imageSrc,
|
|
255
|
-
categoryElements: categoryElements,
|
|
256
|
-
brandElements: brandElements,
|
|
257
|
-
productsUrl: productsUrl,
|
|
258
|
-
categorySlug: categorySlug,
|
|
259
|
-
categoryTitle: categoryTitle,
|
|
260
|
-
isLoading: isLoading,
|
|
261
|
-
hasError: hasError,
|
|
262
|
-
onMenuItemClick: handleMenuItemClick,
|
|
263
|
-
LinkComponent: LinkComponent
|
|
264
|
-
})));
|
|
265
|
-
};
|
|
266
|
-
|
|
267
|
-
var StoresDropdown = function StoresDropdown(_ref) {
|
|
268
|
-
var _ref$stores = _ref.stores,
|
|
269
|
-
stores = _ref$stores === void 0 ? [] : _ref$stores,
|
|
270
|
-
contactNumber = _ref.contactNumber;
|
|
271
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
272
|
-
className: "stores-dropdown"
|
|
273
|
-
}, !!stores.length && stores.map(function (store) {
|
|
274
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
275
|
-
className: "stores-dropdown__store-details",
|
|
276
|
-
key: store.title
|
|
277
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
278
|
-
className: "stores-dropdown__store-image"
|
|
279
|
-
}, /*#__PURE__*/React.createElement("img", {
|
|
280
|
-
className: "stores-dropdown__image",
|
|
281
|
-
src: store.image,
|
|
282
|
-
alt: store.title
|
|
283
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
284
|
-
className: "stores-dropdown__store-info"
|
|
285
|
-
}, /*#__PURE__*/React.createElement("h4", {
|
|
286
|
-
className: "stores-dropdown__title"
|
|
287
|
-
}, store.title, " ", /*#__PURE__*/React.createElement("br", null), " ", store.location), /*#__PURE__*/React.createElement("div", {
|
|
288
|
-
className: "stores-dropdown__open-days"
|
|
289
|
-
}, store.regularOpenDays), /*#__PURE__*/React.createElement("div", {
|
|
290
|
-
className: "stores-dropdown__open-hours"
|
|
291
|
-
}, store.regularOpenHours), /*#__PURE__*/React.createElement("div", {
|
|
292
|
-
className: "stores-dropdown__open-days"
|
|
293
|
-
}, store.holidayOpenDays), /*#__PURE__*/React.createElement("div", {
|
|
294
|
-
className: "stores-dropdown__open-hours"
|
|
295
|
-
}, store.holidayOpenHours), (store === null || store === void 0 ? void 0 : store.weekendOpenDays) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
296
|
-
className: "stores-dropdown__open-days"
|
|
297
|
-
}, store.weekendOpenDays), /*#__PURE__*/React.createElement("div", {
|
|
298
|
-
className: "stores-dropdown__open-hours"
|
|
299
|
-
}, store.weekendOpenHours))));
|
|
300
|
-
}), /*#__PURE__*/React.createElement("div", {
|
|
301
|
-
className: "stores-dropdown__queries"
|
|
302
|
-
}, /*#__PURE__*/React.createElement("h4", {
|
|
303
|
-
className: "stores-dropdown__queries-title"
|
|
304
|
-
}, "Customer Queries: "), /*#__PURE__*/React.createElement("a", {
|
|
305
|
-
className: "stores-dropdown__contact-details",
|
|
306
|
-
href: "tel:".concat(contactNumber)
|
|
307
|
-
}, contactNumber)));
|
|
308
|
-
};
|
|
309
|
-
|
|
310
|
-
var SearchResults = function SearchResults(_ref) {
|
|
311
|
-
var _searchResults$brands, _searchResults$produc, _initialSearchData$tr, _initialSearchData$la;
|
|
312
|
-
|
|
313
|
-
var searchValue = _ref.searchValue,
|
|
314
|
-
searchResults = _ref.searchResults,
|
|
315
|
-
onViewAll = _ref.onViewAll,
|
|
316
|
-
searchResultsRef = _ref.searchResultsRef,
|
|
317
|
-
onSearchSubmit = _ref.onSearchSubmit,
|
|
318
|
-
setSearchValue = _ref.setSearchValue,
|
|
319
|
-
initialSearchData = _ref.initialSearchData,
|
|
320
|
-
isSearchFocused = _ref.isSearchFocused,
|
|
321
|
-
setIsSearchFocused = _ref.setIsSearchFocused,
|
|
322
|
-
currency = _ref.currency,
|
|
323
|
-
currencySymbol = _ref.currencySymbol,
|
|
324
|
-
onProductSearchResultClick = _ref.onProductSearchResultClick,
|
|
325
|
-
onBrandSearchResultClick = _ref.onBrandSearchResultClick,
|
|
326
|
-
onCreateInterests = _ref.onCreateInterests,
|
|
327
|
-
noResultsImage = _ref.noResultsImage,
|
|
328
|
-
showNoResults = _ref.showNoResults,
|
|
329
|
-
_ref$isLoading = _ref.isLoading,
|
|
330
|
-
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
331
|
-
_ref$showCreateIntere = _ref.showCreateInterest,
|
|
332
|
-
showCreateInterest = _ref$showCreateIntere === void 0 ? true : _ref$showCreateIntere;
|
|
333
|
-
|
|
334
|
-
var _useState = useState(false),
|
|
335
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
336
|
-
isMobile = _useState2[0],
|
|
337
|
-
setIsMobile = _useState2[1];
|
|
338
|
-
|
|
339
|
-
useEffect(function () {
|
|
340
|
-
var checkIfMobile = function checkIfMobile() {
|
|
341
|
-
setIsMobile(window.innerWidth <= 1024);
|
|
342
|
-
};
|
|
140
|
+
function _arrayLikeToArray(arr, len) {
|
|
141
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
343
142
|
|
|
344
|
-
|
|
345
|
-
window.addEventListener('resize', checkIfMobile);
|
|
346
|
-
return function () {
|
|
347
|
-
window.removeEventListener('resize', checkIfMobile);
|
|
348
|
-
};
|
|
349
|
-
}, []);
|
|
350
|
-
var hasSearchBeenPerformed = (searchValue === null || searchValue === void 0 ? void 0 : searchValue.trim().length) >= 3;
|
|
351
|
-
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;
|
|
352
|
-
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;
|
|
353
|
-
var shouldShowInitialData = isSearchFocused && (!hasSearchBeenPerformed || !hasResults && !showNoResults);
|
|
354
|
-
|
|
355
|
-
if (!isSearchFocused) {
|
|
356
|
-
return null;
|
|
357
|
-
}
|
|
143
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
358
144
|
|
|
359
|
-
|
|
360
|
-
return null;
|
|
145
|
+
return arr2;
|
|
361
146
|
}
|
|
362
147
|
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
maximumFractionDigits: 2
|
|
367
|
-
});
|
|
368
|
-
return "".concat(currencySymbol).concat(formatter.format(price));
|
|
369
|
-
};
|
|
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
|
+
}
|
|
370
151
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
375
|
-
className: "brand-skeleton__item shimmer"
|
|
376
|
-
}), /*#__PURE__*/React.createElement("div", {
|
|
377
|
-
className: "brand-skeleton__item shimmer"
|
|
378
|
-
}), /*#__PURE__*/React.createElement("div", {
|
|
379
|
-
className: "brand-skeleton__item shimmer"
|
|
380
|
-
}), /*#__PURE__*/React.createElement("div", {
|
|
381
|
-
className: "brand-skeleton__item shimmer"
|
|
382
|
-
}));
|
|
383
|
-
};
|
|
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
|
+
}
|
|
384
155
|
|
|
385
|
-
var
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
})
|
|
156
|
+
var Dropdown = function Dropdown(_ref) {
|
|
157
|
+
var title = _ref.title,
|
|
158
|
+
imageSrc = _ref.imageSrc,
|
|
159
|
+
_ref$categoryElements = _ref.categoryElements,
|
|
160
|
+
categoryElements = _ref$categoryElements === void 0 ? [] : _ref$categoryElements,
|
|
161
|
+
_ref$brandElements = _ref.brandElements,
|
|
162
|
+
brandElements = _ref$brandElements === void 0 ? [] : _ref$brandElements,
|
|
163
|
+
productsUrl = _ref.productsUrl,
|
|
164
|
+
LinkComponent = _ref.LinkComponent,
|
|
165
|
+
categorySlug = _ref.categorySlug,
|
|
166
|
+
categoryTitle = _ref.categoryTitle,
|
|
167
|
+
isLoading = _ref.isLoading,
|
|
168
|
+
hasError = _ref.hasError,
|
|
169
|
+
onMenuItemClick = _ref.onMenuItemClick;
|
|
170
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, hasError ? /*#__PURE__*/React__default.createElement("div", {
|
|
171
|
+
className: "dropdown__errors"
|
|
172
|
+
}, "Failed to load data.") : /*#__PURE__*/React__default.createElement("div", {
|
|
173
|
+
className: "dropdown"
|
|
174
|
+
}, isLoading ? /*#__PURE__*/React__default.createElement("div", {
|
|
175
|
+
className: "cover-spinner"
|
|
176
|
+
}) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
|
|
177
|
+
className: "dropdown__column"
|
|
178
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
179
|
+
className: "dropdown__title"
|
|
180
|
+
}, title), /*#__PURE__*/React__default.createElement("div", {
|
|
181
|
+
className: "dropdown__elements dropdown__elements--column"
|
|
182
|
+
}, !!categoryElements.length && categoryElements.map(function (categoryElement) {
|
|
183
|
+
return categoryElement.category ? /*#__PURE__*/React__default.createElement(LinkComponent, {
|
|
184
|
+
href: "".concat(productsUrl, "/").concat(categoryElement.category, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
|
|
185
|
+
className: "dropdown__element",
|
|
186
|
+
key: categoryElement.name,
|
|
187
|
+
onClick: onMenuItemClick
|
|
188
|
+
}, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase()) : /*#__PURE__*/React__default.createElement(LinkComponent, {
|
|
189
|
+
href: "".concat(productsUrl, "/").concat(categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.slug),
|
|
190
|
+
className: "dropdown__element",
|
|
191
|
+
key: categoryElement.name,
|
|
192
|
+
onClick: onMenuItemClick
|
|
193
|
+
}, categoryElement === null || categoryElement === void 0 ? void 0 : categoryElement.name.toLowerCase());
|
|
194
|
+
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
195
|
+
className: "dropdown__column"
|
|
196
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
197
|
+
className: "dropdown__title"
|
|
198
|
+
}, "Brands"), /*#__PURE__*/React__default.createElement("div", {
|
|
199
|
+
className: "dropdown__brand-elements"
|
|
200
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
201
|
+
className: "dropdown__brand-element"
|
|
202
|
+
}, /*#__PURE__*/React__default.createElement(LinkComponent, {
|
|
203
|
+
href: "".concat(productsUrl, "/").concat(categorySlug),
|
|
204
|
+
className: "dropdown__element",
|
|
205
|
+
onClick: onMenuItemClick
|
|
206
|
+
}, "All ", categoryTitle)), !!brandElements.length && brandElements.map(function (brand) {
|
|
207
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
208
|
+
className: "dropdown__brand-element",
|
|
209
|
+
key: brand.name
|
|
210
|
+
}, /*#__PURE__*/React__default.createElement(LinkComponent, {
|
|
211
|
+
href: "".concat(productsUrl, "/").concat(categorySlug, "/").concat(brand === null || brand === void 0 ? void 0 : brand.slug),
|
|
212
|
+
className: "dropdown__element",
|
|
213
|
+
onClick: onMenuItemClick
|
|
214
|
+
}, brand === null || brand === void 0 ? void 0 : brand.name));
|
|
215
|
+
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
216
|
+
className: "dropdown__column"
|
|
217
|
+
}, /*#__PURE__*/React__default.createElement("img", {
|
|
218
|
+
src: imageSrc,
|
|
219
|
+
alt: "".concat(title)
|
|
220
|
+
})))));
|
|
402
221
|
};
|
|
403
222
|
|
|
404
|
-
var
|
|
405
|
-
var
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
223
|
+
var DropdownLink = function DropdownLink(_ref) {
|
|
224
|
+
var title = _ref.title,
|
|
225
|
+
imageSrc = _ref.imageSrc,
|
|
226
|
+
categoryElements = _ref.categoryElements,
|
|
227
|
+
brandElements = _ref.brandElements,
|
|
228
|
+
productsUrl = _ref.productsUrl,
|
|
229
|
+
LinkComponent = _ref.LinkComponent,
|
|
230
|
+
categorySlug = _ref.categorySlug,
|
|
231
|
+
categoryTitle = _ref.categoryTitle,
|
|
232
|
+
isLoading = _ref.isLoading,
|
|
233
|
+
hasError = _ref.hasError;
|
|
234
|
+
|
|
235
|
+
var _useState = React.useState(false),
|
|
236
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
237
|
+
dropdownVisible = _useState2[0],
|
|
238
|
+
setDropdownVisible = _useState2[1];
|
|
239
|
+
|
|
240
|
+
var handleMenuItemClick = function handleMenuItemClick() {
|
|
241
|
+
setDropdownVisible(false);
|
|
410
242
|
};
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
onProductSearchResultClick({
|
|
420
|
-
product_name: product.name,
|
|
421
|
-
product_brand: product.brand,
|
|
422
|
-
product_link: product.link,
|
|
423
|
-
search_string: searchValue,
|
|
424
|
-
is_popular: shouldShowInitialData
|
|
425
|
-
});
|
|
426
|
-
}
|
|
243
|
+
|
|
244
|
+
return /*#__PURE__*/React__default.createElement("li", {
|
|
245
|
+
className: "navbar__link",
|
|
246
|
+
onMouseEnter: function onMouseEnter() {
|
|
247
|
+
return setDropdownVisible(true);
|
|
248
|
+
},
|
|
249
|
+
onMouseLeave: function onMouseLeave() {
|
|
250
|
+
return setDropdownVisible(false);
|
|
427
251
|
}
|
|
428
|
-
},
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
className: "
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
}
|
|
447
|
-
className: "product-card__price-with-promotion"
|
|
448
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
449
|
-
className: "product-card__price product-card__price--promotion"
|
|
450
|
-
}, formatPrice(displayPrice)), /*#__PURE__*/React.createElement("div", {
|
|
451
|
-
className: "product-card__price product-card__price--original"
|
|
452
|
-
}, formatPrice(selectedPrice.price))) : /*#__PURE__*/React.createElement("div", {
|
|
453
|
-
className: "product-card__price"
|
|
454
|
-
}, formatPrice(displayPrice)), selectedPrice.retail_price > 1 && selectedPrice.retail_price > displayPrice && /*#__PURE__*/React.createElement("div", {
|
|
455
|
-
className: "product-card__retail-price"
|
|
456
|
-
}, "Est. Retail: ", formatPrice(selectedPrice.retail_price))), product.condition && /*#__PURE__*/React.createElement("div", {
|
|
457
|
-
className: "product-card__condition"
|
|
458
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
459
|
-
className: "product-card__condition-label"
|
|
460
|
-
}, "Condition:"), product.condition))));
|
|
252
|
+
}, /*#__PURE__*/React__default.createElement(LinkComponent, {
|
|
253
|
+
href: "".concat(productsUrl, "/").concat(categorySlug),
|
|
254
|
+
className: "navbar__link-item navbar__link-item--desktop",
|
|
255
|
+
onClick: handleMenuItemClick
|
|
256
|
+
}, title), dropdownVisible && /*#__PURE__*/React__default.createElement("div", {
|
|
257
|
+
className: "navbar__dropdown"
|
|
258
|
+
}, /*#__PURE__*/React__default.createElement(Dropdown, {
|
|
259
|
+
title: "Department",
|
|
260
|
+
imageSrc: imageSrc,
|
|
261
|
+
categoryElements: categoryElements,
|
|
262
|
+
brandElements: brandElements,
|
|
263
|
+
productsUrl: productsUrl,
|
|
264
|
+
categorySlug: categorySlug,
|
|
265
|
+
categoryTitle: categoryTitle,
|
|
266
|
+
isLoading: isLoading,
|
|
267
|
+
hasError: hasError,
|
|
268
|
+
onMenuItemClick: handleMenuItemClick,
|
|
269
|
+
LinkComponent: LinkComponent
|
|
270
|
+
})));
|
|
461
271
|
};
|
|
462
272
|
|
|
463
|
-
var
|
|
464
|
-
|
|
273
|
+
var StoresDropdown = function StoresDropdown(_ref) {
|
|
274
|
+
var _ref$stores = _ref.stores,
|
|
275
|
+
stores = _ref$stores === void 0 ? [] : _ref$stores,
|
|
276
|
+
contactNumber = _ref.contactNumber;
|
|
277
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
278
|
+
className: "stores-dropdown"
|
|
279
|
+
}, !!stores.length && stores.map(function (store) {
|
|
280
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
281
|
+
className: "stores-dropdown__store-details",
|
|
282
|
+
key: store.title
|
|
283
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
284
|
+
className: "stores-dropdown__store-image"
|
|
285
|
+
}, /*#__PURE__*/React__default.createElement("img", {
|
|
286
|
+
className: "stores-dropdown__image",
|
|
287
|
+
src: store.image,
|
|
288
|
+
alt: store.title
|
|
289
|
+
})), /*#__PURE__*/React__default.createElement("div", {
|
|
290
|
+
className: "stores-dropdown__store-info"
|
|
291
|
+
}, /*#__PURE__*/React__default.createElement("h4", {
|
|
292
|
+
className: "stores-dropdown__title"
|
|
293
|
+
}, store.title, " ", /*#__PURE__*/React__default.createElement("br", null), " ", store.location), /*#__PURE__*/React__default.createElement("div", {
|
|
294
|
+
className: "stores-dropdown__open-days"
|
|
295
|
+
}, store.regularOpenDays), /*#__PURE__*/React__default.createElement("div", {
|
|
296
|
+
className: "stores-dropdown__open-hours"
|
|
297
|
+
}, store.regularOpenHours), /*#__PURE__*/React__default.createElement("div", {
|
|
298
|
+
className: "stores-dropdown__open-days"
|
|
299
|
+
}, store.holidayOpenDays), /*#__PURE__*/React__default.createElement("div", {
|
|
300
|
+
className: "stores-dropdown__open-hours"
|
|
301
|
+
}, store.holidayOpenHours), (store === null || store === void 0 ? void 0 : store.weekendOpenDays) && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
|
|
302
|
+
className: "stores-dropdown__open-days"
|
|
303
|
+
}, store.weekendOpenDays), /*#__PURE__*/React__default.createElement("div", {
|
|
304
|
+
className: "stores-dropdown__open-hours"
|
|
305
|
+
}, store.weekendOpenHours))));
|
|
306
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
307
|
+
className: "stores-dropdown__queries"
|
|
308
|
+
}, /*#__PURE__*/React__default.createElement("h4", {
|
|
309
|
+
className: "stores-dropdown__queries-title"
|
|
310
|
+
}, "Customer Queries: "), /*#__PURE__*/React__default.createElement("a", {
|
|
311
|
+
className: "stores-dropdown__contact-details",
|
|
312
|
+
href: "tel:".concat(contactNumber)
|
|
313
|
+
}, contactNumber)));
|
|
465
314
|
};
|
|
466
315
|
|
|
467
|
-
var
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
316
|
+
var SearchResults = function SearchResults(_ref) {
|
|
317
|
+
var _searchResults$brands, _searchResults$produc, _initialSearchData$tr, _initialSearchData$la;
|
|
318
|
+
|
|
319
|
+
var searchValue = _ref.searchValue,
|
|
320
|
+
searchResults = _ref.searchResults,
|
|
321
|
+
onViewAll = _ref.onViewAll,
|
|
322
|
+
searchResultsRef = _ref.searchResultsRef,
|
|
323
|
+
onSearchSubmit = _ref.onSearchSubmit,
|
|
324
|
+
setSearchValue = _ref.setSearchValue,
|
|
325
|
+
initialSearchData = _ref.initialSearchData,
|
|
326
|
+
isSearchFocused = _ref.isSearchFocused,
|
|
327
|
+
setIsSearchFocused = _ref.setIsSearchFocused,
|
|
328
|
+
currency = _ref.currency,
|
|
329
|
+
currencySymbol = _ref.currencySymbol,
|
|
330
|
+
onProductSearchResultClick = _ref.onProductSearchResultClick,
|
|
331
|
+
onBrandSearchResultClick = _ref.onBrandSearchResultClick,
|
|
332
|
+
onCreateInterests = _ref.onCreateInterests,
|
|
333
|
+
noResultsImage = _ref.noResultsImage,
|
|
334
|
+
showNoResults = _ref.showNoResults,
|
|
335
|
+
_ref$isLoading = _ref.isLoading,
|
|
336
|
+
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
337
|
+
_ref$showCreateIntere = _ref.showCreateInterest,
|
|
338
|
+
showCreateInterest = _ref$showCreateIntere === void 0 ? true : _ref$showCreateIntere;
|
|
339
|
+
|
|
340
|
+
var _useState = React.useState(false),
|
|
341
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
342
|
+
isMobile = _useState2[0],
|
|
343
|
+
setIsMobile = _useState2[1];
|
|
344
|
+
|
|
345
|
+
React.useEffect(function () {
|
|
346
|
+
var checkIfMobile = function checkIfMobile() {
|
|
347
|
+
setIsMobile(window.innerWidth <= 1024);
|
|
348
|
+
};
|
|
471
349
|
|
|
472
|
-
|
|
473
|
-
|
|
350
|
+
checkIfMobile();
|
|
351
|
+
window.addEventListener('resize', checkIfMobile);
|
|
352
|
+
return function () {
|
|
353
|
+
window.removeEventListener('resize', checkIfMobile);
|
|
354
|
+
};
|
|
355
|
+
}, []);
|
|
356
|
+
var hasSearchBeenPerformed = (searchValue === null || searchValue === void 0 ? void 0 : searchValue.trim().length) >= 3;
|
|
357
|
+
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;
|
|
358
|
+
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;
|
|
359
|
+
var shouldShowInitialData = isSearchFocused && (!hasSearchBeenPerformed || !hasResults && !showNoResults);
|
|
474
360
|
|
|
475
|
-
|
|
476
|
-
|
|
361
|
+
if (!isSearchFocused) {
|
|
362
|
+
return null;
|
|
363
|
+
}
|
|
477
364
|
|
|
478
|
-
if (
|
|
479
|
-
return
|
|
365
|
+
if (!hasResults && !hasInitialData && !showNoResults) {
|
|
366
|
+
return null;
|
|
480
367
|
}
|
|
481
368
|
|
|
482
|
-
|
|
483
|
-
var
|
|
369
|
+
var formatPrice = function formatPrice(price) {
|
|
370
|
+
var formatter = new Intl.NumberFormat(undefined, {
|
|
371
|
+
minimumFractionDigits: 0,
|
|
372
|
+
maximumFractionDigits: 2
|
|
373
|
+
});
|
|
374
|
+
return "".concat(currencySymbol).concat(formatter.format(price));
|
|
375
|
+
};
|
|
376
|
+
|
|
377
|
+
var renderBrandSkeleton = function renderBrandSkeleton() {
|
|
378
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
379
|
+
className: "brand-skeleton"
|
|
380
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
381
|
+
className: "brand-skeleton__item shimmer"
|
|
382
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
383
|
+
className: "brand-skeleton__item shimmer"
|
|
384
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
385
|
+
className: "brand-skeleton__item shimmer"
|
|
386
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
387
|
+
className: "brand-skeleton__item shimmer"
|
|
388
|
+
}));
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
var renderProductSkeleton = function renderProductSkeleton() {
|
|
392
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, _toConsumableArray(Array(3)).map(function (_, index) {
|
|
393
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
394
|
+
key: index,
|
|
395
|
+
className: "product-skeleton"
|
|
396
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
397
|
+
className: "product-skeleton__image shimmer"
|
|
398
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
399
|
+
className: "product-skeleton__content"
|
|
400
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
401
|
+
className: "product-skeleton__title shimmer"
|
|
402
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
403
|
+
className: "product-skeleton__subtitle shimmer"
|
|
404
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
405
|
+
className: "product-skeleton__price shimmer"
|
|
406
|
+
})));
|
|
407
|
+
}));
|
|
408
|
+
};
|
|
409
|
+
|
|
410
|
+
var renderProductCard = function renderProductCard(product) {
|
|
411
|
+
var selectedPrice = product.prices ? product.prices.find(function (p) {
|
|
412
|
+
return p.currency === currency;
|
|
413
|
+
}) : {
|
|
414
|
+
price: product.price,
|
|
415
|
+
retail_price: product.est_retail_price
|
|
416
|
+
};
|
|
417
|
+
var displayPrice = product.on_promotion && product.promotion_price ? product.promotion_price : selectedPrice.price;
|
|
418
|
+
var hasPromotion = product.on_promotion && product.promotion_price;
|
|
419
|
+
return /*#__PURE__*/React__default.createElement("a", {
|
|
420
|
+
key: product.link,
|
|
421
|
+
href: product.link,
|
|
422
|
+
className: "product-card",
|
|
423
|
+
onClick: function onClick() {
|
|
424
|
+
if (typeof onProductSearchResultClick === 'function') {
|
|
425
|
+
onProductSearchResultClick({
|
|
426
|
+
product_name: product.name,
|
|
427
|
+
product_brand: product.brand,
|
|
428
|
+
product_link: product.link,
|
|
429
|
+
search_string: searchValue,
|
|
430
|
+
is_popular: shouldShowInitialData
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}, product.featured_image && /*#__PURE__*/React__default.createElement("div", {
|
|
435
|
+
className: "product-card__image-container"
|
|
436
|
+
}, /*#__PURE__*/React__default.createElement("img", {
|
|
437
|
+
src: product.featured_image,
|
|
438
|
+
alt: product.name,
|
|
439
|
+
className: "product-card__image"
|
|
440
|
+
})), /*#__PURE__*/React__default.createElement("div", {
|
|
441
|
+
className: "product-card__details"
|
|
442
|
+
}, /*#__PURE__*/React__default.createElement("h3", {
|
|
443
|
+
className: "product-card__name"
|
|
444
|
+
}, shouldShowInitialData ? /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement("span", {
|
|
445
|
+
className: "product-card__brand-name"
|
|
446
|
+
}, product.brand.toUpperCase()), ' ', product.name) : /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement("span", {
|
|
447
|
+
className: "product-card__brand-name"
|
|
448
|
+
}, product.brand.toUpperCase()), ' ', product.name)), /*#__PURE__*/React__default.createElement("div", {
|
|
449
|
+
className: "product-card__info-row"
|
|
450
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
451
|
+
className: "product-card__price-group"
|
|
452
|
+
}, hasPromotion ? /*#__PURE__*/React__default.createElement("div", {
|
|
453
|
+
className: "product-card__price-with-promotion"
|
|
454
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
455
|
+
className: "product-card__price product-card__price--promotion"
|
|
456
|
+
}, formatPrice(displayPrice)), /*#__PURE__*/React__default.createElement("div", {
|
|
457
|
+
className: "product-card__price product-card__price--original"
|
|
458
|
+
}, formatPrice(selectedPrice.price))) : /*#__PURE__*/React__default.createElement("div", {
|
|
459
|
+
className: "product-card__price"
|
|
460
|
+
}, formatPrice(displayPrice)), selectedPrice.retail_price > 1 && selectedPrice.retail_price > displayPrice && /*#__PURE__*/React__default.createElement("div", {
|
|
461
|
+
className: "product-card__retail-price"
|
|
462
|
+
}, "Est. Retail: ", formatPrice(selectedPrice.retail_price))), product.condition && /*#__PURE__*/React__default.createElement("div", {
|
|
463
|
+
className: "product-card__condition"
|
|
464
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
465
|
+
className: "product-card__condition-label"
|
|
466
|
+
}, "Condition:"), product.condition))));
|
|
467
|
+
};
|
|
468
|
+
|
|
469
|
+
var getBrandLink = function getBrandLink(brand) {
|
|
470
|
+
return "/products/brands/".concat(brand.slug);
|
|
471
|
+
};
|
|
472
|
+
|
|
473
|
+
var limitBrands = function limitBrands(brands) {
|
|
474
|
+
if (isMobile && brands && brands.length > 4) {
|
|
475
|
+
return brands.slice(0, 4);
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
return brands;
|
|
479
|
+
};
|
|
480
|
+
|
|
481
|
+
var renderBrandsList = function renderBrandsList() {
|
|
482
|
+
var _limitBrands2;
|
|
483
|
+
|
|
484
|
+
if (isLoading) {
|
|
485
|
+
return renderBrandSkeleton();
|
|
486
|
+
}
|
|
484
487
|
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
488
|
+
if (shouldShowInitialData) {
|
|
489
|
+
var _limitBrands;
|
|
490
|
+
|
|
491
|
+
return (_limitBrands = limitBrands(initialSearchData === null || initialSearchData === void 0 ? void 0 : initialSearchData.trending_brands)) === null || _limitBrands === void 0 ? void 0 : _limitBrands.map(function (brand) {
|
|
492
|
+
return /*#__PURE__*/React__default.createElement("a", {
|
|
493
|
+
key: brand.id,
|
|
494
|
+
href: getBrandLink(brand),
|
|
495
|
+
className: "search-results__item",
|
|
496
|
+
onClick: function onClick() {
|
|
497
|
+
if (typeof onBrandSearchResultClick === 'function') {
|
|
498
|
+
onBrandSearchResultClick({
|
|
499
|
+
brand_name: brand.name,
|
|
500
|
+
brand_link: getBrandLink(brand),
|
|
501
|
+
search_string: searchValue,
|
|
502
|
+
is_trending: true
|
|
503
|
+
});
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}, brand.name);
|
|
507
|
+
});
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
return (_limitBrands2 = limitBrands(searchResults === null || searchResults === void 0 ? void 0 : searchResults.brands)) === null || _limitBrands2 === void 0 ? void 0 : _limitBrands2.map(function (brand) {
|
|
511
|
+
return /*#__PURE__*/React__default.createElement("a", {
|
|
512
|
+
key: brand.link,
|
|
513
|
+
href: brand.link,
|
|
489
514
|
className: "search-results__item",
|
|
490
515
|
onClick: function onClick() {
|
|
491
516
|
if (typeof onBrandSearchResultClick === 'function') {
|
|
492
517
|
onBrandSearchResultClick({
|
|
493
518
|
brand_name: brand.name,
|
|
494
|
-
brand_link:
|
|
519
|
+
brand_link: brand.link,
|
|
495
520
|
search_string: searchValue,
|
|
496
|
-
is_trending:
|
|
521
|
+
is_trending: false
|
|
497
522
|
});
|
|
498
523
|
}
|
|
499
524
|
}
|
|
500
525
|
}, brand.name);
|
|
501
526
|
});
|
|
502
|
-
}
|
|
527
|
+
};
|
|
503
528
|
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
key: brand.link,
|
|
507
|
-
href: brand.link,
|
|
508
|
-
className: "search-results__item",
|
|
509
|
-
onClick: function onClick() {
|
|
510
|
-
if (typeof onBrandSearchResultClick === 'function') {
|
|
511
|
-
onBrandSearchResultClick({
|
|
512
|
-
brand_name: brand.name,
|
|
513
|
-
brand_link: brand.link,
|
|
514
|
-
search_string: searchValue,
|
|
515
|
-
is_trending: false
|
|
516
|
-
});
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
}, brand.name);
|
|
520
|
-
});
|
|
521
|
-
};
|
|
529
|
+
var renderProductsList = function renderProductsList() {
|
|
530
|
+
var _searchResults$produc2;
|
|
522
531
|
|
|
523
|
-
|
|
524
|
-
|
|
532
|
+
if (isLoading) {
|
|
533
|
+
return renderProductSkeleton();
|
|
534
|
+
}
|
|
525
535
|
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
}
|
|
536
|
+
if (shouldShowInitialData) {
|
|
537
|
+
var _initialSearchData$la2;
|
|
529
538
|
|
|
530
|
-
|
|
531
|
-
|
|
539
|
+
return initialSearchData === null || initialSearchData === void 0 ? void 0 : (_initialSearchData$la2 = initialSearchData.latest_products) === null || _initialSearchData$la2 === void 0 ? void 0 : _initialSearchData$la2.map(renderProductCard);
|
|
540
|
+
}
|
|
532
541
|
|
|
533
|
-
return
|
|
542
|
+
return searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$produc2 = searchResults.products) === null || _searchResults$produc2 === void 0 ? void 0 : _searchResults$produc2.map(renderProductCard);
|
|
543
|
+
}; // Show no results state
|
|
544
|
+
|
|
545
|
+
|
|
546
|
+
if (showNoResults) {
|
|
547
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
548
|
+
className: "search-results",
|
|
549
|
+
ref: searchResultsRef
|
|
550
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
551
|
+
className: "search-results__no-results"
|
|
552
|
+
}, /*#__PURE__*/React__default.createElement("h2", {
|
|
553
|
+
className: "search-results__header"
|
|
554
|
+
}, "TOP MATCHES"), /*#__PURE__*/React__default.createElement("div", {
|
|
555
|
+
className: "search-results__no-results-content"
|
|
556
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
557
|
+
className: "search-results__no-results-image"
|
|
558
|
+
}, /*#__PURE__*/React__default.createElement("img", {
|
|
559
|
+
src: noResultsImage,
|
|
560
|
+
alt: "No results"
|
|
561
|
+
})), /*#__PURE__*/React__default.createElement("div", {
|
|
562
|
+
className: "search-results__no-results-text"
|
|
563
|
+
}, /*#__PURE__*/React__default.createElement("p", {
|
|
564
|
+
className: "search-results__no-results-title"
|
|
565
|
+
}, "There are currently no products in stock that match your selection"), showCreateInterest && /*#__PURE__*/React__default.createElement("p", {
|
|
566
|
+
className: "search-results__no-results-description"
|
|
567
|
+
}, "Create an interest now and receive instant notifications as your interests list."))), showCreateInterest && /*#__PURE__*/React__default.createElement("button", {
|
|
568
|
+
type: "button",
|
|
569
|
+
className: "search-results__create-interest-button",
|
|
570
|
+
onClick: onCreateInterests
|
|
571
|
+
}, "Create Interests")));
|
|
534
572
|
}
|
|
535
573
|
|
|
536
|
-
return
|
|
537
|
-
}; // Show no results state
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
if (showNoResults) {
|
|
541
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
574
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
542
575
|
className: "search-results",
|
|
543
576
|
ref: searchResultsRef
|
|
544
|
-
}, /*#__PURE__*/
|
|
545
|
-
className: "search-
|
|
546
|
-
}, /*#__PURE__*/
|
|
577
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
578
|
+
className: "search-results__section"
|
|
579
|
+
}, /*#__PURE__*/React__default.createElement("h2", {
|
|
547
580
|
className: "search-results__header"
|
|
548
|
-
},
|
|
549
|
-
className: "search-
|
|
550
|
-
}, /*#__PURE__*/
|
|
551
|
-
className: "search-
|
|
552
|
-
}, /*#__PURE__*/
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
}, /*#__PURE__*/React.createElement("p", {
|
|
558
|
-
className: "search-results__no-results-title"
|
|
559
|
-
}, "There are currently no products in stock that match your selection"), showCreateInterest && /*#__PURE__*/React.createElement("p", {
|
|
560
|
-
className: "search-results__no-results-description"
|
|
561
|
-
}, "Create an interest now and receive instant notifications as your interests list."))), showCreateInterest && /*#__PURE__*/React.createElement("button", {
|
|
581
|
+
}, shouldShowInitialData ? 'TRENDING SEARCHES' : 'BRANDS'), /*#__PURE__*/React__default.createElement("div", {
|
|
582
|
+
className: "search-results__list"
|
|
583
|
+
}, renderBrandsList())), /*#__PURE__*/React__default.createElement("div", {
|
|
584
|
+
className: "search-results__section"
|
|
585
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
586
|
+
className: "search-results__section-header"
|
|
587
|
+
}, /*#__PURE__*/React__default.createElement("h2", {
|
|
588
|
+
className: "search-results__header"
|
|
589
|
+
}, shouldShowInitialData ? 'POPULAR' : 'TOP MATCHES'), /*#__PURE__*/React__default.createElement("button", {
|
|
562
590
|
type: "button",
|
|
563
|
-
className: "search-
|
|
564
|
-
onClick:
|
|
565
|
-
|
|
566
|
-
|
|
591
|
+
className: "search-results__view-all-link",
|
|
592
|
+
onClick: function onClick() {
|
|
593
|
+
onViewAll();
|
|
594
|
+
}
|
|
595
|
+
}, "View all items")), /*#__PURE__*/React__default.createElement("div", {
|
|
596
|
+
className: "search-results__product-list"
|
|
597
|
+
}, renderProductsList()), /*#__PURE__*/React__default.createElement("button", {
|
|
598
|
+
type: "button",
|
|
599
|
+
className: "search-results__view-all-button",
|
|
600
|
+
onClick: function onClick() {
|
|
601
|
+
onViewAll();
|
|
567
602
|
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
}, /*#__PURE__*/React.createElement("h2", {
|
|
574
|
-
className: "search-results__header"
|
|
575
|
-
}, shouldShowInitialData ? 'TRENDING SEARCHES' : 'BRANDS'), /*#__PURE__*/React.createElement("div", {
|
|
576
|
-
className: "search-results__list"
|
|
577
|
-
}, renderBrandsList())), /*#__PURE__*/React.createElement("div", {
|
|
578
|
-
className: "search-results__section"
|
|
579
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
580
|
-
className: "search-results__section-header"
|
|
581
|
-
}, /*#__PURE__*/React.createElement("h2", {
|
|
582
|
-
className: "search-results__header"
|
|
583
|
-
}, shouldShowInitialData ? 'POPULAR' : 'TOP MATCHES'), /*#__PURE__*/React.createElement("button", {
|
|
584
|
-
type: "button",
|
|
585
|
-
className: "search-results__view-all-link",
|
|
586
|
-
onClick: function onClick() {
|
|
587
|
-
onViewAll();
|
|
588
|
-
}
|
|
589
|
-
}, "View all items")), /*#__PURE__*/React.createElement("div", {
|
|
590
|
-
className: "search-results__product-list"
|
|
591
|
-
}, renderProductsList()), /*#__PURE__*/React.createElement("button", {
|
|
592
|
-
type: "button",
|
|
593
|
-
className: "search-results__view-all-button",
|
|
594
|
-
onClick: function onClick() {
|
|
595
|
-
onViewAll();
|
|
596
|
-
|
|
597
|
-
if (!shouldShowInitialData) {
|
|
598
|
-
onSearchSubmit(searchValue);
|
|
599
|
-
setSearchValue('');
|
|
600
|
-
setIsSearchFocused(false);
|
|
603
|
+
if (!shouldShowInitialData) {
|
|
604
|
+
onSearchSubmit(searchValue);
|
|
605
|
+
setSearchValue('');
|
|
606
|
+
setIsSearchFocused(false);
|
|
607
|
+
}
|
|
601
608
|
}
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
};
|
|
605
|
-
|
|
606
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
607
|
-
/* position relative is required for the Body element to be positioned correctly */
|
|
608
|
-
|
|
609
|
-
var relativeInlineStyle = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n"])));
|
|
610
|
-
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"])));
|
|
611
|
-
var getTopMiddleArrowAfterStyle = function getTopMiddleArrowAfterStyle(props) {
|
|
612
|
-
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);
|
|
613
|
-
};
|
|
614
|
-
var getBottomMiddleBodyStyle = function getBottomMiddleBodyStyle(props) {
|
|
615
|
-
return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: absolute;\n top: 100%;\n left: calc(50% - ", " / 2);\n"])), props.$bodyWidth);
|
|
616
|
-
};
|
|
617
|
-
var getBottomMiddleArrowAfterStyle = function getBottomMiddleArrowAfterStyle(props) {
|
|
618
|
-
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);
|
|
619
|
-
};
|
|
620
|
-
|
|
621
|
-
var _templateObject$1;
|
|
622
|
-
|
|
623
|
-
var getBodyStyle = function getBodyStyle() {
|
|
624
|
-
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
625
|
-
var _props$$toolTipPositi = props.$toolTipPosition,
|
|
626
|
-
$toolTipPosition = _props$$toolTipPositi === void 0 ? '' : _props$$toolTipPositi;
|
|
627
|
-
|
|
628
|
-
switch ($toolTipPosition) {
|
|
629
|
-
case 'top':
|
|
630
|
-
return topMiddleBodyStyle;
|
|
631
|
-
|
|
632
|
-
case 'bottom':
|
|
633
|
-
return getBottomMiddleBodyStyle(props);
|
|
634
|
-
|
|
635
|
-
default:
|
|
636
|
-
return null;
|
|
637
|
-
}
|
|
638
|
-
};
|
|
609
|
+
}, "View all items")));
|
|
610
|
+
};
|
|
639
611
|
|
|
640
|
-
var
|
|
641
|
-
|
|
642
|
-
var $toolTipPosition = props.$toolTipPosition;
|
|
612
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
613
|
+
/* position relative is required for the Body element to be positioned correctly */
|
|
643
614
|
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
615
|
+
var relativeInlineStyle = styled.css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n"])));
|
|
616
|
+
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"])));
|
|
617
|
+
var getTopMiddleArrowAfterStyle = function getTopMiddleArrowAfterStyle(props) {
|
|
618
|
+
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);
|
|
619
|
+
};
|
|
620
|
+
var getBottomMiddleBodyStyle = function getBottomMiddleBodyStyle(props) {
|
|
621
|
+
return styled.css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: absolute;\n top: 100%;\n left: calc(50% - ", " / 2);\n"])), props.$bodyWidth);
|
|
622
|
+
};
|
|
623
|
+
var getBottomMiddleArrowAfterStyle = function getBottomMiddleArrowAfterStyle(props) {
|
|
624
|
+
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);
|
|
625
|
+
};
|
|
647
626
|
|
|
648
|
-
|
|
649
|
-
return getBottomMiddleArrowAfterStyle(props);
|
|
627
|
+
var _templateObject$1;
|
|
650
628
|
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
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) {
|
|
657
|
-
return props.$bodyWidth;
|
|
658
|
-
}, function (props) {
|
|
659
|
-
return props.theme.colors.base || 'black';
|
|
660
|
-
}, function (props) {
|
|
661
|
-
return getBodyStyle(props);
|
|
662
|
-
}, function (props) {
|
|
663
|
-
return getAfterStyling(props);
|
|
664
|
-
});
|
|
665
|
-
|
|
666
|
-
var _templateObject$2;
|
|
667
|
-
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);
|
|
668
|
-
|
|
669
|
-
var theme = {
|
|
670
|
-
breakpoints: ['40em', '52em', '64em'],
|
|
671
|
-
space: ['0px', '4px', '8px', '16px', '32px', '64px', '128px', '256px', '512px'],
|
|
672
|
-
fontSizes: ['12px', '14px', '16px', '20px', '24px', '32px', '48px', '64px', '72px'],
|
|
673
|
-
marginPaddings: ['0.5rem', '1rem', '1.5rem', '2rem', '2.5rem', '3rem', '3.5rem', '4rem', '4.5rem', '5rem', '5.5rem', '6rem'],
|
|
674
|
-
letterSpacings: ['-0.5px', '0px', '+0.5px'],
|
|
675
|
-
radii: ['0px', '2px', '4px', '8px'],
|
|
676
|
-
borderRadius: '6px',
|
|
677
|
-
colors: {
|
|
678
|
-
primary: '#000',
|
|
679
|
-
base: '#4e4949',
|
|
680
|
-
baseLt: '#817c7c',
|
|
681
|
-
borderColor: '#d8d8d8',
|
|
682
|
-
ntrlMin: '#fff',
|
|
683
|
-
ntrlMinTen: '#e6e6e6',
|
|
684
|
-
gray: '#efefef',
|
|
685
|
-
darkerGray: '#454141'
|
|
686
|
-
},
|
|
687
|
-
rareStepColors: {
|
|
688
|
-
primary: '#202b58',
|
|
689
|
-
secondary: '#ef5c2d',
|
|
690
|
-
ntrlMin: '#ffffff',
|
|
691
|
-
ntrl40: '#f4f4f4',
|
|
692
|
-
ntrl50: '#808080',
|
|
693
|
-
ntrl60: '#e8e8e8',
|
|
694
|
-
ntrl70: '#252525',
|
|
695
|
-
ntrlMax: '#000000'
|
|
696
|
-
},
|
|
697
|
-
rareStepFontWeights: {
|
|
698
|
-
normal: 400,
|
|
699
|
-
medium: 500,
|
|
700
|
-
semiBold: 600,
|
|
701
|
-
bold: 700
|
|
702
|
-
},
|
|
703
|
-
rareStepFontSize: {
|
|
704
|
-
h1: '36px',
|
|
705
|
-
h2: '30px',
|
|
706
|
-
h3: '24px',
|
|
707
|
-
h4: '20px',
|
|
708
|
-
h5: '16px',
|
|
709
|
-
h6: '14px',
|
|
710
|
-
footerTitle: '16px'
|
|
711
|
-
},
|
|
712
|
-
rareStepPageSizes: {
|
|
713
|
-
mobile: '500px',
|
|
714
|
-
tablet: '768px',
|
|
715
|
-
desktop: '992px',
|
|
716
|
-
screenl: '1280px',
|
|
717
|
-
screenxl: '1680px',
|
|
718
|
-
screenxxl: '1920px',
|
|
719
|
-
container: '1600px'
|
|
720
|
-
}
|
|
721
|
-
};
|
|
722
|
-
|
|
723
|
-
var themed = (function (Component) {
|
|
724
|
-
return /*#__PURE__*/forwardRef(function (props, ref) {
|
|
725
|
-
return /*#__PURE__*/React.createElement(ThemeProvider, {
|
|
726
|
-
theme: theme
|
|
727
|
-
}, /*#__PURE__*/React.createElement(Component, _extends({}, props, {
|
|
728
|
-
ref: ref
|
|
729
|
-
})));
|
|
730
|
-
});
|
|
731
|
-
});
|
|
732
|
-
|
|
733
|
-
/* eslint-disable react/require-default-props */
|
|
734
|
-
|
|
735
|
-
var Tooltip = function Tooltip(_ref) {
|
|
736
|
-
var _ref$children = _ref.children,
|
|
737
|
-
children = _ref$children === void 0 ? null : _ref$children,
|
|
738
|
-
_ref$toolTipText = _ref.toolTipText,
|
|
739
|
-
toolTipText = _ref$toolTipText === void 0 ? '' : _ref$toolTipText,
|
|
740
|
-
_ref$toolTipPosition = _ref.toolTipPosition,
|
|
741
|
-
toolTipPosition = _ref$toolTipPosition === void 0 ? 'top' : _ref$toolTipPosition,
|
|
742
|
-
_ref$bodyWidth = _ref.bodyWidth,
|
|
743
|
-
bodyWidth = _ref$bodyWidth === void 0 ? '8em' : _ref$bodyWidth,
|
|
744
|
-
_ref$apexWidth = _ref.apexWidth,
|
|
745
|
-
apexWidth = _ref$apexWidth === void 0 ? '5px' : _ref$apexWidth,
|
|
746
|
-
_ref$containerClassNa = _ref.containerClassName,
|
|
747
|
-
containerClassName = _ref$containerClassNa === void 0 ? '' : _ref$containerClassNa,
|
|
748
|
-
_ref$bodyClassName = _ref.bodyClassName,
|
|
749
|
-
bodyClassName = _ref$bodyClassName === void 0 ? '' : _ref$bodyClassName;
|
|
750
|
-
return /*#__PURE__*/React.createElement(Container, {
|
|
751
|
-
className: containerClassName
|
|
752
|
-
}, children, /*#__PURE__*/React.createElement(Body, {
|
|
753
|
-
$toolTipPosition: toolTipPosition,
|
|
754
|
-
$bodyWidth: bodyWidth,
|
|
755
|
-
$apexWidth: apexWidth,
|
|
756
|
-
className: bodyClassName
|
|
757
|
-
}, toolTipText));
|
|
758
|
-
};
|
|
759
|
-
|
|
760
|
-
var Tooltip$1 = themed(Tooltip);
|
|
761
|
-
|
|
762
|
-
var CurrencySelect = function CurrencySelect(_ref) {
|
|
763
|
-
var currency = _ref.currency,
|
|
764
|
-
currencyOptions = _ref.currencyOptions,
|
|
765
|
-
onCurrencyChange = _ref.onCurrencyChange,
|
|
766
|
-
_ref$isCurrencySelect = _ref.isCurrencySelectionDisabled,
|
|
767
|
-
isCurrencySelectionDisabled = _ref$isCurrencySelect === void 0 ? false : _ref$isCurrencySelect,
|
|
768
|
-
_ref$tooltipContent = _ref.tooltipContent,
|
|
769
|
-
tooltipContent = _ref$tooltipContent === void 0 ? '' : _ref$tooltipContent;
|
|
770
|
-
|
|
771
|
-
if (!currencyOptions || currencyOptions.length === 0) {
|
|
772
|
-
return null;
|
|
773
|
-
}
|
|
629
|
+
var getBodyStyle = function getBodyStyle() {
|
|
630
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
631
|
+
var _props$$toolTipPositi = props.$toolTipPosition,
|
|
632
|
+
$toolTipPosition = _props$$toolTipPositi === void 0 ? '' : _props$$toolTipPositi;
|
|
774
633
|
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
634
|
+
switch ($toolTipPosition) {
|
|
635
|
+
case 'top':
|
|
636
|
+
return topMiddleBodyStyle;
|
|
778
637
|
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
}
|
|
638
|
+
case 'bottom':
|
|
639
|
+
return getBottomMiddleBodyStyle(props);
|
|
782
640
|
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
toolTipPosition: "bottom",
|
|
786
|
-
bodyWidth: "160px"
|
|
787
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
788
|
-
className: "currency-select-container ".concat(isCurrencySelectionDisabled ? 'disabled' : '')
|
|
789
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
790
|
-
className: "currency-flag"
|
|
791
|
-
}, /*#__PURE__*/React.createElement("img", {
|
|
792
|
-
src: selectedOption.flagSrc,
|
|
793
|
-
alt: "".concat(currency, " flag")
|
|
794
|
-
})), /*#__PURE__*/React.createElement("select", {
|
|
795
|
-
value: currency,
|
|
796
|
-
onChange: function onChange(e) {
|
|
797
|
-
return onCurrencyChange(e.target.value);
|
|
798
|
-
},
|
|
799
|
-
className: "currency-select",
|
|
800
|
-
disabled: isCurrencySelectionDisabled
|
|
801
|
-
}, currencyOptions.map(function (option) {
|
|
802
|
-
return /*#__PURE__*/React.createElement("option", {
|
|
803
|
-
key: option.value,
|
|
804
|
-
value: option.value
|
|
805
|
-
}, option.value, " (", option.symbol, ")");
|
|
806
|
-
}))));
|
|
807
|
-
};
|
|
808
|
-
|
|
809
|
-
var searchBrandsAggregations = function searchBrandsAggregations(search, currencyCode) {
|
|
810
|
-
return {
|
|
811
|
-
query: "\n query GetProductFilterAggregations($search: String!) {\n luxity_products_aggregations(search: $search) {\n luxity_brand {\n name\n }\n }\n }\n ",
|
|
812
|
-
variables: {
|
|
813
|
-
search: search,
|
|
814
|
-
currency_code: currencyCode
|
|
641
|
+
default:
|
|
642
|
+
return null;
|
|
815
643
|
}
|
|
816
644
|
};
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
var
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
645
|
+
|
|
646
|
+
var getAfterStyling = function getAfterStyling() {
|
|
647
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
648
|
+
var $toolTipPosition = props.$toolTipPosition;
|
|
649
|
+
|
|
650
|
+
switch ($toolTipPosition) {
|
|
651
|
+
case 'top':
|
|
652
|
+
return getTopMiddleArrowAfterStyle(props);
|
|
653
|
+
|
|
654
|
+
case 'bottom':
|
|
655
|
+
return getBottomMiddleArrowAfterStyle(props);
|
|
656
|
+
|
|
657
|
+
default:
|
|
658
|
+
return '';
|
|
829
659
|
}
|
|
830
660
|
};
|
|
831
|
-
};
|
|
832
|
-
|
|
833
|
-
var useSearch = function useSearch(_ref) {
|
|
834
|
-
var endpoint = _ref.endpoint,
|
|
835
|
-
onSearchLoading = _ref.onSearchLoading,
|
|
836
|
-
currency = _ref.currency,
|
|
837
|
-
onSearchPreview = _ref.onSearchPreview,
|
|
838
|
-
onNoResults = _ref.onNoResults;
|
|
839
|
-
var currentSearchRequestToken = useRef(null);
|
|
840
|
-
var debounce = useCallback(function (func, wait) {
|
|
841
|
-
var timeout;
|
|
842
|
-
return function executedFunction() {
|
|
843
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
844
|
-
args[_key] = arguments[_key];
|
|
845
|
-
}
|
|
846
661
|
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
662
|
+
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) {
|
|
663
|
+
return props.$bodyWidth;
|
|
664
|
+
}, function (props) {
|
|
665
|
+
return props.theme.colors.base || 'black';
|
|
666
|
+
}, function (props) {
|
|
667
|
+
return getBodyStyle(props);
|
|
668
|
+
}, function (props) {
|
|
669
|
+
return getAfterStyling(props);
|
|
670
|
+
});
|
|
851
671
|
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
672
|
+
var _templateObject$2;
|
|
673
|
+
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);
|
|
674
|
+
|
|
675
|
+
var theme = {
|
|
676
|
+
breakpoints: ['40em', '52em', '64em'],
|
|
677
|
+
space: ['0px', '4px', '8px', '16px', '32px', '64px', '128px', '256px', '512px'],
|
|
678
|
+
fontSizes: ['12px', '14px', '16px', '20px', '24px', '32px', '48px', '64px', '72px'],
|
|
679
|
+
marginPaddings: ['0.5rem', '1rem', '1.5rem', '2rem', '2.5rem', '3rem', '3.5rem', '4rem', '4.5rem', '5rem', '5.5rem', '6rem'],
|
|
680
|
+
letterSpacings: ['-0.5px', '0px', '+0.5px'],
|
|
681
|
+
radii: ['0px', '2px', '4px', '8px'],
|
|
682
|
+
borderRadius: '6px',
|
|
683
|
+
colors: {
|
|
684
|
+
primary: '#000',
|
|
685
|
+
base: '#4e4949',
|
|
686
|
+
baseLt: '#817c7c',
|
|
687
|
+
borderColor: '#d8d8d8',
|
|
688
|
+
ntrlMin: '#fff',
|
|
689
|
+
ntrlMinTen: '#e6e6e6',
|
|
690
|
+
gray: '#efefef',
|
|
691
|
+
darkerGray: '#454141'
|
|
692
|
+
},
|
|
693
|
+
rareStepColors: {
|
|
694
|
+
primary: '#202b58',
|
|
695
|
+
secondary: '#ef5c2d',
|
|
696
|
+
ntrlMin: '#ffffff',
|
|
697
|
+
ntrl40: '#f4f4f4',
|
|
698
|
+
ntrl50: '#808080',
|
|
699
|
+
ntrl60: '#e8e8e8',
|
|
700
|
+
ntrl70: '#252525',
|
|
701
|
+
ntrlMax: '#000000'
|
|
702
|
+
},
|
|
703
|
+
rareStepFontWeights: {
|
|
704
|
+
normal: 400,
|
|
705
|
+
medium: 500,
|
|
706
|
+
semiBold: 600,
|
|
707
|
+
bold: 700
|
|
708
|
+
},
|
|
709
|
+
rareStepFontSize: {
|
|
710
|
+
h1: '36px',
|
|
711
|
+
h2: '30px',
|
|
712
|
+
h3: '24px',
|
|
713
|
+
h4: '20px',
|
|
714
|
+
h5: '16px',
|
|
715
|
+
h6: '14px',
|
|
716
|
+
footerTitle: '16px'
|
|
717
|
+
},
|
|
718
|
+
rareStepPageSizes: {
|
|
719
|
+
mobile: '500px',
|
|
720
|
+
tablet: '768px',
|
|
721
|
+
desktop: '992px',
|
|
722
|
+
screenl: '1280px',
|
|
723
|
+
screenxl: '1680px',
|
|
724
|
+
screenxxl: '1920px',
|
|
725
|
+
container: '1600px'
|
|
726
|
+
}
|
|
727
|
+
};
|
|
728
|
+
|
|
729
|
+
var themed = (function (Component) {
|
|
730
|
+
return /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
731
|
+
return /*#__PURE__*/React__default.createElement(styled.ThemeProvider, {
|
|
732
|
+
theme: theme
|
|
733
|
+
}, /*#__PURE__*/React__default.createElement(Component, _extends({}, props, {
|
|
734
|
+
ref: ref
|
|
735
|
+
})));
|
|
868
736
|
});
|
|
869
|
-
}
|
|
870
|
-
var performSearch = useCallback(function (searchQuery, setSearchResults) {
|
|
871
|
-
if (!searchQuery || searchQuery.trim() === '') {
|
|
872
|
-
setSearchResults({
|
|
873
|
-
brands: [],
|
|
874
|
-
products: []
|
|
875
|
-
}); // Reset no results state when clearing search
|
|
737
|
+
});
|
|
876
738
|
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
739
|
+
/* eslint-disable react/require-default-props */
|
|
740
|
+
|
|
741
|
+
var Tooltip = function Tooltip(_ref) {
|
|
742
|
+
var _ref$children = _ref.children,
|
|
743
|
+
children = _ref$children === void 0 ? null : _ref$children,
|
|
744
|
+
_ref$toolTipText = _ref.toolTipText,
|
|
745
|
+
toolTipText = _ref$toolTipText === void 0 ? '' : _ref$toolTipText,
|
|
746
|
+
_ref$toolTipPosition = _ref.toolTipPosition,
|
|
747
|
+
toolTipPosition = _ref$toolTipPosition === void 0 ? 'top' : _ref$toolTipPosition,
|
|
748
|
+
_ref$bodyWidth = _ref.bodyWidth,
|
|
749
|
+
bodyWidth = _ref$bodyWidth === void 0 ? '8em' : _ref$bodyWidth,
|
|
750
|
+
_ref$apexWidth = _ref.apexWidth,
|
|
751
|
+
apexWidth = _ref$apexWidth === void 0 ? '5px' : _ref$apexWidth,
|
|
752
|
+
_ref$containerClassNa = _ref.containerClassName,
|
|
753
|
+
containerClassName = _ref$containerClassNa === void 0 ? '' : _ref$containerClassNa,
|
|
754
|
+
_ref$bodyClassName = _ref.bodyClassName,
|
|
755
|
+
bodyClassName = _ref$bodyClassName === void 0 ? '' : _ref$bodyClassName;
|
|
756
|
+
return /*#__PURE__*/React__default.createElement(Container, {
|
|
757
|
+
className: containerClassName
|
|
758
|
+
}, children, /*#__PURE__*/React__default.createElement(Body, {
|
|
759
|
+
$toolTipPosition: toolTipPosition,
|
|
760
|
+
$bodyWidth: bodyWidth,
|
|
761
|
+
$apexWidth: apexWidth,
|
|
762
|
+
className: bodyClassName
|
|
763
|
+
}, toolTipText));
|
|
764
|
+
};
|
|
880
765
|
|
|
881
|
-
|
|
882
|
-
} // Cancel any ongoing search request to prevent race conditions
|
|
766
|
+
var Tooltip$1 = themed(Tooltip);
|
|
883
767
|
|
|
768
|
+
var CurrencySelect = function CurrencySelect(_ref) {
|
|
769
|
+
var currency = _ref.currency,
|
|
770
|
+
currencyOptions = _ref.currencyOptions,
|
|
771
|
+
onCurrencyChange = _ref.onCurrencyChange,
|
|
772
|
+
_ref$isCurrencySelect = _ref.isCurrencySelectionDisabled,
|
|
773
|
+
isCurrencySelectionDisabled = _ref$isCurrencySelect === void 0 ? false : _ref$isCurrencySelect,
|
|
774
|
+
_ref$tooltipContent = _ref.tooltipContent,
|
|
775
|
+
tooltipContent = _ref$tooltipContent === void 0 ? '' : _ref$tooltipContent;
|
|
884
776
|
|
|
885
|
-
if (
|
|
886
|
-
|
|
887
|
-
}
|
|
777
|
+
if (!currencyOptions || currencyOptions.length === 0) {
|
|
778
|
+
return null;
|
|
779
|
+
}
|
|
888
780
|
|
|
781
|
+
var selectedOption = currencyOptions.find(function (opt) {
|
|
782
|
+
return opt.value === currency;
|
|
783
|
+
});
|
|
889
784
|
|
|
890
|
-
|
|
891
|
-
|
|
785
|
+
if (!selectedOption) {
|
|
786
|
+
return null;
|
|
787
|
+
}
|
|
892
788
|
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
789
|
+
return /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
790
|
+
toolTipText: isCurrencySelectionDisabled ? tooltipContent : '',
|
|
791
|
+
toolTipPosition: "bottom",
|
|
792
|
+
bodyWidth: "160px"
|
|
793
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
794
|
+
className: "currency-select-container ".concat(isCurrencySelectionDisabled ? 'disabled' : '')
|
|
795
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
796
|
+
className: "currency-flag"
|
|
797
|
+
}, /*#__PURE__*/React__default.createElement("img", {
|
|
798
|
+
src: selectedOption.flagSrc,
|
|
799
|
+
alt: "".concat(currency, " flag")
|
|
800
|
+
})), /*#__PURE__*/React__default.createElement("select", {
|
|
801
|
+
value: currency,
|
|
802
|
+
onChange: function onChange(e) {
|
|
803
|
+
return onCurrencyChange(e.target.value);
|
|
804
|
+
},
|
|
805
|
+
className: "currency-select",
|
|
806
|
+
disabled: isCurrencySelectionDisabled
|
|
807
|
+
}, currencyOptions.map(function (option) {
|
|
808
|
+
return /*#__PURE__*/React__default.createElement("option", {
|
|
809
|
+
key: option.value,
|
|
810
|
+
value: option.value
|
|
811
|
+
}, option.value, " (", option.symbol, ")");
|
|
812
|
+
}))));
|
|
813
|
+
};
|
|
896
814
|
|
|
815
|
+
var searchBrandsAggregations = function searchBrandsAggregations(search, currencyCode) {
|
|
816
|
+
return {
|
|
817
|
+
query: "\n query GetProductFilterAggregations($search: String!) {\n luxity_products_aggregations(search: $search) {\n luxity_brand {\n name\n }\n }\n }\n ",
|
|
818
|
+
variables: {
|
|
819
|
+
search: search,
|
|
820
|
+
currency_code: currencyCode
|
|
821
|
+
}
|
|
822
|
+
};
|
|
823
|
+
}; // NEW: Get top products for search dropdown (right side)
|
|
824
|
+
|
|
825
|
+
var searchProductsFilter = function searchProductsFilter(search, limit, currencyCode) {
|
|
826
|
+
return {
|
|
827
|
+
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 ",
|
|
828
|
+
variables: {
|
|
829
|
+
search: search,
|
|
830
|
+
limit: limit,
|
|
831
|
+
page: 1,
|
|
832
|
+
sort_by: 'newest',
|
|
833
|
+
with_sold: false,
|
|
834
|
+
currency_code: currencyCode
|
|
835
|
+
}
|
|
836
|
+
};
|
|
837
|
+
};
|
|
897
838
|
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
839
|
+
var useSearch = function useSearch(_ref) {
|
|
840
|
+
var endpoint = _ref.endpoint,
|
|
841
|
+
onSearchLoading = _ref.onSearchLoading,
|
|
842
|
+
currency = _ref.currency,
|
|
843
|
+
onSearchPreview = _ref.onSearchPreview,
|
|
844
|
+
onNoResults = _ref.onNoResults;
|
|
845
|
+
var currentSearchRequestToken = React.useRef(null);
|
|
846
|
+
var debounce = React.useCallback(function (func, wait) {
|
|
847
|
+
var timeout;
|
|
848
|
+
return function executedFunction() {
|
|
849
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
850
|
+
args[_key] = arguments[_key];
|
|
851
|
+
}
|
|
901
852
|
|
|
853
|
+
var later = function later() {
|
|
854
|
+
clearTimeout(timeout);
|
|
855
|
+
func.apply(void 0, args);
|
|
856
|
+
};
|
|
902
857
|
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
}
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
858
|
+
clearTimeout(timeout);
|
|
859
|
+
timeout = setTimeout(later, wait);
|
|
860
|
+
};
|
|
861
|
+
}, []);
|
|
862
|
+
var fetchInitialSearchData = React.useCallback(function (initialSearchDataUrl, setInitialSearchView) {
|
|
863
|
+
axios.get("".concat(initialSearchDataUrl)).then(function (_ref2) {
|
|
864
|
+
var data = _ref2.data;
|
|
865
|
+
setInitialSearchView({
|
|
866
|
+
trending_brands: data.trending_brands,
|
|
867
|
+
latest_products: data.latest_products
|
|
868
|
+
});
|
|
869
|
+
}).catch(function () {
|
|
870
|
+
setInitialSearchView({
|
|
871
|
+
trending_brands: [],
|
|
872
|
+
latest_products: []
|
|
873
|
+
});
|
|
874
|
+
});
|
|
875
|
+
}, []);
|
|
876
|
+
var performSearch = React.useCallback(function (searchQuery, setSearchResults) {
|
|
877
|
+
if (!searchQuery || searchQuery.trim() === '') {
|
|
878
|
+
setSearchResults({
|
|
879
|
+
brands: [],
|
|
880
|
+
products: []
|
|
881
|
+
}); // Reset no results state when clearing search
|
|
913
882
|
|
|
914
|
-
|
|
915
|
-
|
|
883
|
+
if (typeof onNoResults === 'function') {
|
|
884
|
+
onNoResults(false);
|
|
885
|
+
}
|
|
916
886
|
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
onSearchLoading(false);
|
|
920
|
-
} // Extract brands from aggregations
|
|
887
|
+
return;
|
|
888
|
+
} // Cancel any ongoing search request to prevent race conditions
|
|
921
889
|
|
|
922
890
|
|
|
923
|
-
|
|
891
|
+
if (currentSearchRequestToken.current) {
|
|
892
|
+
currentSearchRequestToken.current.cancel();
|
|
893
|
+
} // Create a new token for this specific search request
|
|
924
894
|
|
|
925
|
-
var productsData = ((_productsResponse$dat = productsResponse.data.data.luxity_products_filter) === null || _productsResponse$dat === void 0 ? void 0 : _productsResponse$dat.data) || [];
|
|
926
|
-
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 }
|
|
927
895
|
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
name: brand.name,
|
|
931
|
-
link: "/products/brands/".concat(brand.name.toLowerCase().replace(/\s+/g, '-')) // Convert to slug
|
|
896
|
+
var newSearchToken = axios.CancelToken.source();
|
|
897
|
+
currentSearchRequestToken.current = newSearchToken; // Reset no results state when starting new search (user is typing)
|
|
932
898
|
|
|
899
|
+
if (typeof onNoResults === 'function') {
|
|
900
|
+
onNoResults(false);
|
|
901
|
+
} // Set loading to true when starting the search request
|
|
902
|
+
|
|
903
|
+
|
|
904
|
+
if (typeof onSearchLoading === 'function') {
|
|
905
|
+
onSearchLoading(true);
|
|
906
|
+
} // Make TWO parallel queries: brands aggregations + products filter
|
|
907
|
+
|
|
908
|
+
|
|
909
|
+
Promise.all([// Query 1: Get brands aggregations
|
|
910
|
+
axios.post(endpoint, searchBrandsAggregations(searchQuery, currency), {
|
|
911
|
+
cancelToken: newSearchToken.token
|
|
912
|
+
}), // Query 2: Get top 3 products
|
|
913
|
+
axios.post(endpoint, searchProductsFilter(searchQuery, 3, currency), {
|
|
914
|
+
cancelToken: newSearchToken.token
|
|
915
|
+
})]).then(function (_ref3) {
|
|
916
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
917
|
+
brandsResponse = _ref4[0],
|
|
918
|
+
productsResponse = _ref4[1];
|
|
919
|
+
|
|
920
|
+
if (currentSearchRequestToken.current === newSearchToken) {
|
|
921
|
+
var _brandsResponse$data$, _productsResponse$dat, _productsResponse$dat2;
|
|
922
|
+
|
|
923
|
+
// Set loading to false when search completes
|
|
924
|
+
if (typeof onSearchLoading === 'function') {
|
|
925
|
+
onSearchLoading(false);
|
|
926
|
+
} // Extract brands from aggregations
|
|
927
|
+
|
|
928
|
+
|
|
929
|
+
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
|
|
930
|
+
|
|
931
|
+
var productsData = ((_productsResponse$dat = productsResponse.data.data.luxity_products_filter) === null || _productsResponse$dat === void 0 ? void 0 : _productsResponse$dat.data) || [];
|
|
932
|
+
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 }
|
|
933
|
+
|
|
934
|
+
var brands = brandsData.slice(0, 10).map(function (brand) {
|
|
935
|
+
return {
|
|
936
|
+
name: brand.name,
|
|
937
|
+
link: "/products/brands/".concat(brand.name.toLowerCase().replace(/\s+/g, '-')) // Convert to slug
|
|
938
|
+
|
|
939
|
+
};
|
|
940
|
+
}); // Map products to old structure with prices
|
|
941
|
+
|
|
942
|
+
var products = productsData.map(function (product) {
|
|
943
|
+
// Generate product link: /products/{category_type}/{brand_slug}/{product_slug}
|
|
944
|
+
var categorySlug = product.category_type.toLowerCase().replace(/\s+/g, '-');
|
|
945
|
+
var brandSlug = product.luxity_brand.slug;
|
|
946
|
+
var productSlug = product.product_slug;
|
|
947
|
+
var link = "/products/".concat(categorySlug, "/").concat(brandSlug, "/").concat(productSlug);
|
|
948
|
+
return {
|
|
949
|
+
name: product.product.name,
|
|
950
|
+
brand: product.luxity_brand.name,
|
|
951
|
+
link: link,
|
|
952
|
+
price: product.product.price || 0,
|
|
953
|
+
promotion_price: product.product.promotion_price || null,
|
|
954
|
+
est_retail_price: product.product.est_retail_price || 0,
|
|
955
|
+
condition: product.product.condition || '',
|
|
956
|
+
currency_symbol: product.product.currency_symbol || '',
|
|
957
|
+
featured_image: product.featured_image,
|
|
958
|
+
on_promotion: product.on_promotion || false,
|
|
959
|
+
promotion_discount: product.promotion_discount || 0,
|
|
960
|
+
id: product.id,
|
|
961
|
+
category_type: product.category_type,
|
|
962
|
+
product_slug: product.product_slug,
|
|
963
|
+
luxity_brand: product.luxity_brand
|
|
964
|
+
};
|
|
965
|
+
});
|
|
966
|
+
var searchResults = {
|
|
967
|
+
brands: brands,
|
|
968
|
+
products: products,
|
|
969
|
+
total: totalResults
|
|
933
970
|
};
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
var products = productsData.map(function (product) {
|
|
937
|
-
// Generate product link: /products/{category_type}/{brand_slug}/{product_slug}
|
|
938
|
-
var categorySlug = product.category_type.toLowerCase().replace(/\s+/g, '-');
|
|
939
|
-
var brandSlug = product.luxity_brand.slug;
|
|
940
|
-
var productSlug = product.product_slug;
|
|
941
|
-
var link = "/products/".concat(categorySlug, "/").concat(brandSlug, "/").concat(productSlug);
|
|
942
|
-
return {
|
|
943
|
-
name: product.product.name,
|
|
944
|
-
brand: product.luxity_brand.name,
|
|
945
|
-
link: link,
|
|
946
|
-
price: product.product.price || 0,
|
|
947
|
-
promotion_price: product.product.promotion_price || null,
|
|
948
|
-
est_retail_price: product.product.est_retail_price || 0,
|
|
949
|
-
condition: product.product.condition || '',
|
|
950
|
-
currency_symbol: product.product.currency_symbol || '',
|
|
951
|
-
featured_image: product.featured_image,
|
|
952
|
-
on_promotion: product.on_promotion || false,
|
|
953
|
-
promotion_discount: product.promotion_discount || 0,
|
|
954
|
-
id: product.id,
|
|
955
|
-
category_type: product.category_type,
|
|
956
|
-
product_slug: product.product_slug,
|
|
957
|
-
luxity_brand: product.luxity_brand
|
|
958
|
-
};
|
|
959
|
-
});
|
|
960
|
-
var searchResults = {
|
|
961
|
-
brands: brands,
|
|
962
|
-
products: products,
|
|
963
|
-
total: totalResults
|
|
964
|
-
};
|
|
965
|
-
setSearchResults(searchResults); // Check if we have no results (empty aggregations)
|
|
971
|
+
setSearchResults(searchResults); // Check if we have no results (empty aggregations)
|
|
966
972
|
|
|
967
|
-
|
|
973
|
+
var hasNoResults = brandsData.length === 0 && productsData.length === 0;
|
|
968
974
|
|
|
969
|
-
|
|
970
|
-
|
|
975
|
+
if (typeof onNoResults === 'function') {
|
|
976
|
+
onNoResults(hasNoResults);
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
if (typeof onSearchPreview === 'function') {
|
|
980
|
+
var hasResults = brands.length > 0 || products.length > 0;
|
|
981
|
+
onSearchPreview({
|
|
982
|
+
search_string: searchQuery,
|
|
983
|
+
has_results: hasResults
|
|
984
|
+
});
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
currentSearchRequestToken.current = null;
|
|
971
988
|
}
|
|
989
|
+
}).catch(function (error) {
|
|
990
|
+
if (!axios.isCancel(error)) {
|
|
991
|
+
// Set loading to false when search fails
|
|
992
|
+
if (typeof onSearchLoading === 'function') {
|
|
993
|
+
onSearchLoading(false);
|
|
994
|
+
}
|
|
972
995
|
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
search_string: searchQuery,
|
|
977
|
-
has_results: hasResults
|
|
996
|
+
setSearchResults({
|
|
997
|
+
brands: [],
|
|
998
|
+
products: []
|
|
978
999
|
});
|
|
1000
|
+
currentSearchRequestToken.current = null;
|
|
979
1001
|
}
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
1002
|
+
});
|
|
1003
|
+
}, [endpoint, currency, onSearchPreview, onSearchLoading, onNoResults]);
|
|
1004
|
+
var debouncedSearch = React.useMemo(function () {
|
|
1005
|
+
return debounce(function (searchQuery, setSearchResults) {
|
|
1006
|
+
return performSearch(searchQuery, setSearchResults);
|
|
1007
|
+
}, 500);
|
|
1008
|
+
}, [debounce, performSearch]);
|
|
1009
|
+
var createDebouncedSearch = React.useCallback(function (setSearchResults) {
|
|
1010
|
+
return function (searchQuery) {
|
|
1011
|
+
return debouncedSearch(searchQuery, setSearchResults);
|
|
1012
|
+
};
|
|
1013
|
+
}, [debouncedSearch]);
|
|
1014
|
+
var createImmediateSearch = React.useCallback(function (setSearchValue, setSearchResults, onSearchSubmit) {
|
|
1015
|
+
return function (searchQuery) {
|
|
1016
|
+
/*
|
|
1017
|
+
* Cancel any pending search request when immediate search is performed
|
|
1018
|
+
* Immediate search is when the user types a search query and presses enter
|
|
1019
|
+
*/
|
|
1020
|
+
if (currentSearchRequestToken.current) {
|
|
1021
|
+
currentSearchRequestToken.current.cancel();
|
|
1022
|
+
currentSearchRequestToken.current = null;
|
|
988
1023
|
}
|
|
989
1024
|
|
|
1025
|
+
setSearchValue('');
|
|
990
1026
|
setSearchResults({
|
|
991
1027
|
brands: [],
|
|
992
1028
|
products: []
|
|
993
1029
|
});
|
|
994
|
-
|
|
995
|
-
}
|
|
996
|
-
});
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
}, 500);
|
|
1002
|
-
}, [debounce, performSearch]);
|
|
1003
|
-
var createDebouncedSearch = useCallback(function (setSearchResults) {
|
|
1004
|
-
return function (searchQuery) {
|
|
1005
|
-
return debouncedSearch(searchQuery, setSearchResults);
|
|
1030
|
+
onSearchSubmit(searchQuery);
|
|
1031
|
+
};
|
|
1032
|
+
}, []);
|
|
1033
|
+
return {
|
|
1034
|
+
fetchInitialSearchData: fetchInitialSearchData,
|
|
1035
|
+
createDebouncedSearch: createDebouncedSearch,
|
|
1036
|
+
createImmediateSearch: createImmediateSearch
|
|
1006
1037
|
};
|
|
1007
|
-
}
|
|
1008
|
-
var createImmediateSearch = useCallback(function (setSearchValue, setSearchResults, onSearchSubmit) {
|
|
1009
|
-
return function (searchQuery) {
|
|
1010
|
-
/*
|
|
1011
|
-
* Cancel any pending search request when immediate search is performed
|
|
1012
|
-
* Immediate search is when the user types a search query and presses enter
|
|
1013
|
-
*/
|
|
1014
|
-
if (currentSearchRequestToken.current) {
|
|
1015
|
-
currentSearchRequestToken.current.cancel();
|
|
1016
|
-
currentSearchRequestToken.current = null;
|
|
1017
|
-
}
|
|
1038
|
+
};
|
|
1018
1039
|
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1040
|
+
var useSearchClickOutside = function useSearchClickOutside(ref, searchResults, setCachedResults, setIsSearchFocused, setSearchResults) {
|
|
1041
|
+
var setSearchValue = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
|
|
1042
|
+
var setShowNoResults = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
|
1043
|
+
React.useEffect(function () {
|
|
1044
|
+
var handleClickOutside = function handleClickOutside(event) {
|
|
1045
|
+
if (ref.current && !ref.current.contains(event.target)) {
|
|
1046
|
+
setCachedResults(searchResults);
|
|
1047
|
+
setIsSearchFocused(false);
|
|
1048
|
+
setSearchResults({
|
|
1049
|
+
brands: [],
|
|
1050
|
+
products: []
|
|
1051
|
+
}); // Reset search value and no results state when closing
|
|
1052
|
+
|
|
1053
|
+
if (setSearchValue) {
|
|
1054
|
+
setSearchValue('');
|
|
1055
|
+
}
|
|
1056
|
+
|
|
1057
|
+
if (setShowNoResults) {
|
|
1058
|
+
setShowNoResults(false);
|
|
1059
|
+
}
|
|
1060
|
+
}
|
|
1061
|
+
};
|
|
1062
|
+
|
|
1063
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
1064
|
+
return function () {
|
|
1065
|
+
document.removeEventListener('mousedown', handleClickOutside);
|
|
1066
|
+
};
|
|
1067
|
+
}, [ref, searchResults, setCachedResults, setIsSearchFocused, setSearchResults, setSearchValue, setShowNoResults]);
|
|
1031
1068
|
};
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
var
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1069
|
+
var useSearchInputChange = function useSearchInputChange(setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults) {
|
|
1070
|
+
var app = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
|
|
1071
|
+
var productsUrl = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
|
1072
|
+
return React.useCallback(function (event) {
|
|
1073
|
+
var value = event.target.value;
|
|
1074
|
+
|
|
1075
|
+
if (app && productsUrl && value.trim().length > 0) {
|
|
1076
|
+
window.location.href = productsUrl;
|
|
1077
|
+
return;
|
|
1078
|
+
}
|
|
1079
|
+
|
|
1080
|
+
setSearchValue(value);
|
|
1081
|
+
setIsSearchFocused(true);
|
|
1082
|
+
|
|
1083
|
+
if (value.trim().length >= 3) {
|
|
1084
|
+
debouncedSearch(value);
|
|
1085
|
+
} else {
|
|
1042
1086
|
setSearchResults({
|
|
1043
1087
|
brands: [],
|
|
1044
1088
|
products: []
|
|
1045
|
-
});
|
|
1089
|
+
});
|
|
1090
|
+
setCachedResults({
|
|
1091
|
+
brands: [],
|
|
1092
|
+
products: []
|
|
1093
|
+
});
|
|
1094
|
+
}
|
|
1095
|
+
}, [setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults, app, productsUrl]);
|
|
1096
|
+
};
|
|
1097
|
+
var useSearchInputFocus = function useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults) {
|
|
1098
|
+
var handleSearchClick = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;
|
|
1099
|
+
var setShowNoResults = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
|
|
1100
|
+
return React.useCallback(function () {
|
|
1101
|
+
setIsSearchFocused(true); // Reset no results state when reopening search
|
|
1102
|
+
|
|
1103
|
+
if (setShowNoResults) {
|
|
1104
|
+
setShowNoResults(false);
|
|
1105
|
+
}
|
|
1046
1106
|
|
|
1047
|
-
|
|
1048
|
-
|
|
1107
|
+
if (typeof handleSearchClick === 'function') {
|
|
1108
|
+
handleSearchClick();
|
|
1109
|
+
} else if (searchValue.trim().length >= 3) {
|
|
1110
|
+
setSearchResults(cachedResults);
|
|
1111
|
+
}
|
|
1112
|
+
}, [searchValue, setIsSearchFocused, cachedResults, setSearchResults, handleSearchClick, setShowNoResults]);
|
|
1113
|
+
};
|
|
1114
|
+
var useSearchInputKeyDown = function useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused) {
|
|
1115
|
+
var setSearchValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
1116
|
+
return React.useCallback(function (event) {
|
|
1117
|
+
if (event.key === 'Enter') {
|
|
1118
|
+
event.preventDefault();
|
|
1119
|
+
|
|
1120
|
+
if (searchValue.trim().length >= 3) {
|
|
1121
|
+
immediateSearch(searchValue);
|
|
1049
1122
|
}
|
|
1050
1123
|
|
|
1051
|
-
|
|
1052
|
-
|
|
1124
|
+
setIsSearchFocused(false);
|
|
1125
|
+
} else if (event.key === 'Escape' && setSearchValue) {
|
|
1126
|
+
setSearchValue('');
|
|
1127
|
+
setIsSearchFocused(false);
|
|
1128
|
+
}
|
|
1129
|
+
}, [searchValue, immediateSearch, setIsSearchFocused, setSearchValue]);
|
|
1130
|
+
};
|
|
1131
|
+
|
|
1132
|
+
var removeCategoryByName = function removeCategoryByName(categories, name) {
|
|
1133
|
+
var _categories$filter;
|
|
1134
|
+
|
|
1135
|
+
return (_categories$filter = categories === null || categories === void 0 ? void 0 : categories.filter(function (category) {
|
|
1136
|
+
return category.name.toLowerCase() !== name.toLowerCase();
|
|
1137
|
+
})) !== null && _categories$filter !== void 0 ? _categories$filter : [];
|
|
1138
|
+
};
|
|
1139
|
+
|
|
1140
|
+
var LuxityDesktopHeader = function LuxityDesktopHeader(_ref) {
|
|
1141
|
+
var accountIcon = _ref.accountIcon,
|
|
1142
|
+
cartIcon = _ref.cartIcon,
|
|
1143
|
+
interestIcon = _ref.interestIcon,
|
|
1144
|
+
cartCount = _ref.cartCount,
|
|
1145
|
+
logoSrc = _ref.logoSrc,
|
|
1146
|
+
categoryElements = _ref.categoryElements,
|
|
1147
|
+
stores = _ref.stores,
|
|
1148
|
+
contactNumber = _ref.contactNumber,
|
|
1149
|
+
productsUrl = _ref.productsUrl,
|
|
1150
|
+
LinkComponent = _ref.LinkComponent,
|
|
1151
|
+
onInterestClick = _ref.onInterestClick,
|
|
1152
|
+
onCartClick = _ref.onCartClick,
|
|
1153
|
+
onAccountClick = _ref.onAccountClick,
|
|
1154
|
+
inputSearchIcon = _ref.inputSearchIcon,
|
|
1155
|
+
onSellToUsClick = _ref.onSellToUsClick,
|
|
1156
|
+
contactUsLink = _ref.contactUsLink,
|
|
1157
|
+
ourStoryLink = _ref.ourStoryLink,
|
|
1158
|
+
onLogoClick = _ref.onLogoClick,
|
|
1159
|
+
endpoint = _ref.endpoint,
|
|
1160
|
+
initialSearchData = _ref.initialSearchData,
|
|
1161
|
+
onSearchSubmit = _ref.onSearchSubmit,
|
|
1162
|
+
onSearchBarClick = _ref.onSearchBarClick,
|
|
1163
|
+
onSearchPreview = _ref.onSearchPreview,
|
|
1164
|
+
onProductSearchResultClick = _ref.onProductSearchResultClick,
|
|
1165
|
+
onBrandSearchResultClick = _ref.onBrandSearchResultClick,
|
|
1166
|
+
_onSearchLoading = _ref.onSearchLoading,
|
|
1167
|
+
currency = _ref.currency,
|
|
1168
|
+
currencySymbol = _ref.currencySymbol,
|
|
1169
|
+
currencyOptions = _ref.currencyOptions,
|
|
1170
|
+
onCurrencyChange = _ref.onCurrencyChange,
|
|
1171
|
+
isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
|
|
1172
|
+
tooltipContent = _ref.tooltipContent,
|
|
1173
|
+
earlyAccessIcon = _ref.earlyAccessIcon,
|
|
1174
|
+
exclusiveIcon = _ref.exclusiveIcon,
|
|
1175
|
+
name = _ref.name,
|
|
1176
|
+
isEarlyAccess = _ref.isEarlyAccess,
|
|
1177
|
+
isExclusive = _ref.isExclusive,
|
|
1178
|
+
shop = _ref.shop,
|
|
1179
|
+
app = _ref.app,
|
|
1180
|
+
categoryConfig = _ref.categoryConfig,
|
|
1181
|
+
onCreateInterests = _ref.onCreateInterests,
|
|
1182
|
+
noResultsImage = _ref.noResultsImage,
|
|
1183
|
+
_ref$showCreateIntere = _ref.showCreateInterest,
|
|
1184
|
+
showCreateInterest = _ref$showCreateIntere === void 0 ? true : _ref$showCreateIntere;
|
|
1185
|
+
|
|
1186
|
+
var _useState = React.useState(''),
|
|
1187
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
1188
|
+
searchValue = _useState2[0],
|
|
1189
|
+
setSearchValue = _useState2[1];
|
|
1190
|
+
|
|
1191
|
+
var _useState3 = React.useState(false),
|
|
1192
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
1193
|
+
loading = _useState4[0],
|
|
1194
|
+
setLoading = _useState4[1];
|
|
1195
|
+
|
|
1196
|
+
var _useState5 = React.useState(false),
|
|
1197
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
1198
|
+
searchLoading = _useState6[0],
|
|
1199
|
+
setSearchLoading = _useState6[1];
|
|
1200
|
+
|
|
1201
|
+
var _useState7 = React.useState(false),
|
|
1202
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
1203
|
+
isSearchFocused = _useState8[0],
|
|
1204
|
+
setIsSearchFocused = _useState8[1];
|
|
1205
|
+
|
|
1206
|
+
var _useState9 = React.useState({
|
|
1207
|
+
trending_brands: [],
|
|
1208
|
+
latest_products: []
|
|
1209
|
+
}),
|
|
1210
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
1211
|
+
initialSearchView = _useState10[0],
|
|
1212
|
+
setInitialSearchView = _useState10[1];
|
|
1213
|
+
|
|
1214
|
+
var _useState11 = React.useState({}),
|
|
1215
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
1216
|
+
dropdownData = _useState12[0],
|
|
1217
|
+
setDropdownData = _useState12[1];
|
|
1218
|
+
|
|
1219
|
+
var _useState13 = React.useState(false),
|
|
1220
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
1221
|
+
hasError = _useState14[0],
|
|
1222
|
+
setHasError = _useState14[1];
|
|
1223
|
+
|
|
1224
|
+
var _useState15 = React.useState({
|
|
1225
|
+
brands: [],
|
|
1226
|
+
products: []
|
|
1227
|
+
}),
|
|
1228
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
1229
|
+
searchResults = _useState16[0],
|
|
1230
|
+
setSearchResults = _useState16[1];
|
|
1231
|
+
|
|
1232
|
+
var _useState17 = React.useState({
|
|
1233
|
+
brands: [],
|
|
1234
|
+
products: []
|
|
1235
|
+
}),
|
|
1236
|
+
_useState18 = _slicedToArray(_useState17, 2),
|
|
1237
|
+
cachedResults = _useState18[0],
|
|
1238
|
+
setCachedResults = _useState18[1];
|
|
1239
|
+
|
|
1240
|
+
var _useState19 = React.useState(false),
|
|
1241
|
+
_useState20 = _slicedToArray(_useState19, 2),
|
|
1242
|
+
showNoResults = _useState20[0],
|
|
1243
|
+
setShowNoResults = _useState20[1];
|
|
1244
|
+
|
|
1245
|
+
var searchResultsRef = React.useRef(null);
|
|
1246
|
+
|
|
1247
|
+
var _useSearch = useSearch({
|
|
1248
|
+
endpoint: endpoint,
|
|
1249
|
+
onSearchLoading: function onSearchLoading(isLoading) {
|
|
1250
|
+
setSearchLoading(isLoading);
|
|
1251
|
+
|
|
1252
|
+
if (typeof _onSearchLoading === 'function') {
|
|
1253
|
+
_onSearchLoading(isLoading);
|
|
1053
1254
|
}
|
|
1255
|
+
},
|
|
1256
|
+
currency: currency,
|
|
1257
|
+
onSearchPreview: onSearchPreview,
|
|
1258
|
+
onNoResults: setShowNoResults
|
|
1259
|
+
}),
|
|
1260
|
+
fetchInitialSearchData = _useSearch.fetchInitialSearchData,
|
|
1261
|
+
createDebouncedSearch = _useSearch.createDebouncedSearch,
|
|
1262
|
+
createImmediateSearch = _useSearch.createImmediateSearch;
|
|
1263
|
+
|
|
1264
|
+
var debouncedSearch = createDebouncedSearch(function (results) {
|
|
1265
|
+
setSearchResults(results);
|
|
1266
|
+
setCachedResults(results);
|
|
1267
|
+
});
|
|
1268
|
+
var immediateSearch = createImmediateSearch(setSearchValue, setSearchResults, onSearchSubmit);
|
|
1269
|
+
var handleChange = useSearchInputChange(setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults, app, productsUrl);
|
|
1270
|
+
useSearchClickOutside(searchResultsRef, searchResults, setCachedResults, setIsSearchFocused, setSearchResults, setSearchValue, setShowNoResults);
|
|
1271
|
+
|
|
1272
|
+
var handleSearchClick = function handleSearchClick() {
|
|
1273
|
+
if (typeof onSearchBarClick === 'function') {
|
|
1274
|
+
onSearchBarClick();
|
|
1275
|
+
return;
|
|
1054
1276
|
}
|
|
1055
|
-
};
|
|
1056
1277
|
|
|
1057
|
-
|
|
1058
|
-
return function () {
|
|
1059
|
-
document.removeEventListener('mousedown', handleClickOutside);
|
|
1278
|
+
handleSearchFocus();
|
|
1060
1279
|
};
|
|
1061
|
-
}, [ref, searchResults, setCachedResults, setIsSearchFocused, setSearchResults, setSearchValue, setShowNoResults]);
|
|
1062
|
-
};
|
|
1063
|
-
var useSearchInputChange = function useSearchInputChange(setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults) {
|
|
1064
|
-
var app = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
|
|
1065
|
-
var productsUrl = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
|
1066
|
-
return useCallback(function (event) {
|
|
1067
|
-
var value = event.target.value;
|
|
1068
|
-
|
|
1069
|
-
if (app && productsUrl && value.trim().length > 0) {
|
|
1070
|
-
window.location.href = productsUrl;
|
|
1071
|
-
return;
|
|
1072
|
-
}
|
|
1073
1280
|
|
|
1074
|
-
|
|
1075
|
-
setIsSearchFocused
|
|
1281
|
+
var handleSearchFocus = useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults, undefined, setShowNoResults);
|
|
1282
|
+
var handleKeyDown = useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused);
|
|
1076
1283
|
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
products: []
|
|
1083
|
-
});
|
|
1084
|
-
setCachedResults({
|
|
1085
|
-
brands: [],
|
|
1086
|
-
products: []
|
|
1284
|
+
function addCategoryToElements(elements, categoryName) {
|
|
1285
|
+
return elements.map(function (element) {
|
|
1286
|
+
return _objectSpread2(_objectSpread2({}, element), {}, {
|
|
1287
|
+
category: categoryName
|
|
1288
|
+
});
|
|
1087
1289
|
});
|
|
1088
1290
|
}
|
|
1089
|
-
}, [setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults, app, productsUrl]);
|
|
1090
|
-
};
|
|
1091
|
-
var useSearchInputFocus = function useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults) {
|
|
1092
|
-
var handleSearchClick = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;
|
|
1093
|
-
var setShowNoResults = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
|
|
1094
|
-
return useCallback(function () {
|
|
1095
|
-
setIsSearchFocused(true); // Reset no results state when reopening search
|
|
1096
|
-
|
|
1097
|
-
if (setShowNoResults) {
|
|
1098
|
-
setShowNoResults(false);
|
|
1099
|
-
}
|
|
1100
|
-
|
|
1101
|
-
if (typeof handleSearchClick === 'function') {
|
|
1102
|
-
handleSearchClick();
|
|
1103
|
-
} else if (searchValue.trim().length >= 3) {
|
|
1104
|
-
setSearchResults(cachedResults);
|
|
1105
|
-
}
|
|
1106
|
-
}, [searchValue, setIsSearchFocused, cachedResults, setSearchResults, handleSearchClick, setShowNoResults]);
|
|
1107
|
-
};
|
|
1108
|
-
var useSearchInputKeyDown = function useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused) {
|
|
1109
|
-
var setSearchValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
1110
|
-
return useCallback(function (event) {
|
|
1111
|
-
if (event.key === 'Enter') {
|
|
1112
|
-
event.preventDefault();
|
|
1113
|
-
|
|
1114
|
-
if (searchValue.trim().length >= 3) {
|
|
1115
|
-
immediateSearch(searchValue);
|
|
1116
|
-
}
|
|
1117
1291
|
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
}
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
})) !== null && _categories$filter !== void 0 ? _categories$filter : [];
|
|
1132
|
-
};
|
|
1133
|
-
|
|
1134
|
-
var LuxityDesktopHeader = function LuxityDesktopHeader(_ref) {
|
|
1135
|
-
var accountIcon = _ref.accountIcon,
|
|
1136
|
-
cartIcon = _ref.cartIcon,
|
|
1137
|
-
interestIcon = _ref.interestIcon,
|
|
1138
|
-
cartCount = _ref.cartCount,
|
|
1139
|
-
logoSrc = _ref.logoSrc,
|
|
1140
|
-
categoryElements = _ref.categoryElements,
|
|
1141
|
-
stores = _ref.stores,
|
|
1142
|
-
contactNumber = _ref.contactNumber,
|
|
1143
|
-
productsUrl = _ref.productsUrl,
|
|
1144
|
-
LinkComponent = _ref.LinkComponent,
|
|
1145
|
-
onInterestClick = _ref.onInterestClick,
|
|
1146
|
-
onCartClick = _ref.onCartClick,
|
|
1147
|
-
onAccountClick = _ref.onAccountClick,
|
|
1148
|
-
inputSearchIcon = _ref.inputSearchIcon,
|
|
1149
|
-
onSellToUsClick = _ref.onSellToUsClick,
|
|
1150
|
-
contactUsLink = _ref.contactUsLink,
|
|
1151
|
-
ourStoryLink = _ref.ourStoryLink,
|
|
1152
|
-
onLogoClick = _ref.onLogoClick,
|
|
1153
|
-
endpoint = _ref.endpoint,
|
|
1154
|
-
initialSearchData = _ref.initialSearchData,
|
|
1155
|
-
onSearchSubmit = _ref.onSearchSubmit,
|
|
1156
|
-
onSearchBarClick = _ref.onSearchBarClick,
|
|
1157
|
-
onSearchPreview = _ref.onSearchPreview,
|
|
1158
|
-
onProductSearchResultClick = _ref.onProductSearchResultClick,
|
|
1159
|
-
onBrandSearchResultClick = _ref.onBrandSearchResultClick,
|
|
1160
|
-
_onSearchLoading = _ref.onSearchLoading,
|
|
1161
|
-
currency = _ref.currency,
|
|
1162
|
-
currencySymbol = _ref.currencySymbol,
|
|
1163
|
-
currencyOptions = _ref.currencyOptions,
|
|
1164
|
-
onCurrencyChange = _ref.onCurrencyChange,
|
|
1165
|
-
isCurrencySelectionDisabled = _ref.isCurrencySelectionDisabled,
|
|
1166
|
-
tooltipContent = _ref.tooltipContent,
|
|
1167
|
-
earlyAccessIcon = _ref.earlyAccessIcon,
|
|
1168
|
-
exclusiveIcon = _ref.exclusiveIcon,
|
|
1169
|
-
name = _ref.name,
|
|
1170
|
-
isEarlyAccess = _ref.isEarlyAccess,
|
|
1171
|
-
isExclusive = _ref.isExclusive,
|
|
1172
|
-
shop = _ref.shop,
|
|
1173
|
-
app = _ref.app,
|
|
1174
|
-
categoryConfig = _ref.categoryConfig,
|
|
1175
|
-
onCreateInterests = _ref.onCreateInterests,
|
|
1176
|
-
noResultsImage = _ref.noResultsImage,
|
|
1177
|
-
_ref$showCreateIntere = _ref.showCreateInterest,
|
|
1178
|
-
showCreateInterest = _ref$showCreateIntere === void 0 ? true : _ref$showCreateIntere;
|
|
1179
|
-
|
|
1180
|
-
var _useState = useState(''),
|
|
1181
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
1182
|
-
searchValue = _useState2[0],
|
|
1183
|
-
setSearchValue = _useState2[1];
|
|
1184
|
-
|
|
1185
|
-
var _useState3 = useState(false),
|
|
1186
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
1187
|
-
loading = _useState4[0],
|
|
1188
|
-
setLoading = _useState4[1];
|
|
1189
|
-
|
|
1190
|
-
var _useState5 = useState(false),
|
|
1191
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
1192
|
-
searchLoading = _useState6[0],
|
|
1193
|
-
setSearchLoading = _useState6[1];
|
|
1194
|
-
|
|
1195
|
-
var _useState7 = useState(false),
|
|
1196
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
1197
|
-
isSearchFocused = _useState8[0],
|
|
1198
|
-
setIsSearchFocused = _useState8[1];
|
|
1199
|
-
|
|
1200
|
-
var _useState9 = useState({
|
|
1201
|
-
trending_brands: [],
|
|
1202
|
-
latest_products: []
|
|
1203
|
-
}),
|
|
1204
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
1205
|
-
initialSearchView = _useState10[0],
|
|
1206
|
-
setInitialSearchView = _useState10[1];
|
|
1207
|
-
|
|
1208
|
-
var _useState11 = useState({}),
|
|
1209
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
1210
|
-
dropdownData = _useState12[0],
|
|
1211
|
-
setDropdownData = _useState12[1];
|
|
1212
|
-
|
|
1213
|
-
var _useState13 = useState(false),
|
|
1214
|
-
_useState14 = _slicedToArray(_useState13, 2),
|
|
1215
|
-
hasError = _useState14[0],
|
|
1216
|
-
setHasError = _useState14[1];
|
|
1217
|
-
|
|
1218
|
-
var _useState15 = useState({
|
|
1219
|
-
brands: [],
|
|
1220
|
-
products: []
|
|
1221
|
-
}),
|
|
1222
|
-
_useState16 = _slicedToArray(_useState15, 2),
|
|
1223
|
-
searchResults = _useState16[0],
|
|
1224
|
-
setSearchResults = _useState16[1];
|
|
1225
|
-
|
|
1226
|
-
var _useState17 = useState({
|
|
1227
|
-
brands: [],
|
|
1228
|
-
products: []
|
|
1229
|
-
}),
|
|
1230
|
-
_useState18 = _slicedToArray(_useState17, 2),
|
|
1231
|
-
cachedResults = _useState18[0],
|
|
1232
|
-
setCachedResults = _useState18[1];
|
|
1233
|
-
|
|
1234
|
-
var _useState19 = useState(false),
|
|
1235
|
-
_useState20 = _slicedToArray(_useState19, 2),
|
|
1236
|
-
showNoResults = _useState20[0],
|
|
1237
|
-
setShowNoResults = _useState20[1];
|
|
1238
|
-
|
|
1239
|
-
var searchResultsRef = useRef(null);
|
|
1240
|
-
|
|
1241
|
-
var _useSearch = useSearch({
|
|
1242
|
-
endpoint: endpoint,
|
|
1243
|
-
onSearchLoading: function onSearchLoading(isLoading) {
|
|
1244
|
-
setSearchLoading(isLoading);
|
|
1245
|
-
|
|
1246
|
-
if (typeof _onSearchLoading === 'function') {
|
|
1247
|
-
_onSearchLoading(isLoading);
|
|
1292
|
+
React.useMemo(function () {
|
|
1293
|
+
setLoading(true);
|
|
1294
|
+
axios.get("".concat(categoryConfig.menuData)).then(function (_ref2) {
|
|
1295
|
+
var data = _ref2.data;
|
|
1296
|
+
setLoading(false);
|
|
1297
|
+
setDropdownData(data);
|
|
1298
|
+
}).catch(function () {
|
|
1299
|
+
return setHasError(true);
|
|
1300
|
+
});
|
|
1301
|
+
}, [categoryConfig.menuData]);
|
|
1302
|
+
React.useMemo(function () {
|
|
1303
|
+
if (!initialSearchData) {
|
|
1304
|
+
return;
|
|
1248
1305
|
}
|
|
1249
|
-
},
|
|
1250
|
-
currency: currency,
|
|
1251
|
-
onSearchPreview: onSearchPreview,
|
|
1252
|
-
onNoResults: setShowNoResults
|
|
1253
|
-
}),
|
|
1254
|
-
fetchInitialSearchData = _useSearch.fetchInitialSearchData,
|
|
1255
|
-
createDebouncedSearch = _useSearch.createDebouncedSearch,
|
|
1256
|
-
createImmediateSearch = _useSearch.createImmediateSearch;
|
|
1257
|
-
|
|
1258
|
-
var debouncedSearch = createDebouncedSearch(function (results) {
|
|
1259
|
-
setSearchResults(results);
|
|
1260
|
-
setCachedResults(results);
|
|
1261
|
-
});
|
|
1262
|
-
var immediateSearch = createImmediateSearch(setSearchValue, setSearchResults, onSearchSubmit);
|
|
1263
|
-
var handleChange = useSearchInputChange(setSearchValue, setIsSearchFocused, debouncedSearch, setSearchResults, setCachedResults, app, productsUrl);
|
|
1264
|
-
useSearchClickOutside(searchResultsRef, searchResults, setCachedResults, setIsSearchFocused, setSearchResults, setSearchValue, setShowNoResults);
|
|
1265
|
-
|
|
1266
|
-
var handleSearchClick = function handleSearchClick() {
|
|
1267
|
-
if (typeof onSearchBarClick === 'function') {
|
|
1268
|
-
onSearchBarClick();
|
|
1269
|
-
return;
|
|
1270
|
-
}
|
|
1271
1306
|
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1307
|
+
fetchInitialSearchData(initialSearchData, setInitialSearchView);
|
|
1308
|
+
}, [initialSearchData, fetchInitialSearchData]);
|
|
1309
|
+
|
|
1310
|
+
var renderDropdownLinks = function renderDropdownLinks() {
|
|
1311
|
+
return categoryConfig.categories.map(function (category) {
|
|
1312
|
+
var title = category.title,
|
|
1313
|
+
imageSrc = category.imageSrc,
|
|
1314
|
+
categorySlug = category.categorySlug,
|
|
1315
|
+
categoryName = category.categoryName,
|
|
1316
|
+
elementsKey = category.elementsKey,
|
|
1317
|
+
subCategoryElementsKey = category.subCategoryElementsKey,
|
|
1318
|
+
styleElementsKey = category.styleElementsKey;
|
|
1319
|
+
var categoryElementsProcessed = categoryElements;
|
|
1320
|
+
|
|
1321
|
+
if (subCategoryElementsKey && dropdownData[subCategoryElementsKey]) {
|
|
1322
|
+
// show subcategory elements
|
|
1323
|
+
categoryElementsProcessed = removeCategoryByName(dropdownData[subCategoryElementsKey], categoryName);
|
|
1324
|
+
} else if (styleElementsKey && dropdownData[styleElementsKey]) {
|
|
1325
|
+
categoryElementsProcessed = addCategoryToElements(dropdownData[styleElementsKey], categorySlug);
|
|
1326
|
+
} else {
|
|
1327
|
+
categoryElementsProcessed = addCategoryToElements(categoryElementsProcessed, categorySlug);
|
|
1328
|
+
}
|
|
1277
1329
|
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1330
|
+
return /*#__PURE__*/React__default.createElement(DropdownLink, {
|
|
1331
|
+
key: categorySlug,
|
|
1332
|
+
title: title,
|
|
1333
|
+
imageSrc: imageSrc,
|
|
1334
|
+
categoryElements: categoryElementsProcessed,
|
|
1335
|
+
brandElements: dropdownData[elementsKey] || [],
|
|
1336
|
+
productsUrl: productsUrl,
|
|
1337
|
+
categorySlug: categorySlug,
|
|
1338
|
+
categoryTitle: categoryName,
|
|
1339
|
+
isLoading: loading,
|
|
1340
|
+
hasError: hasError,
|
|
1341
|
+
LinkComponent: LinkComponent
|
|
1342
|
+
});
|
|
1282
1343
|
});
|
|
1283
|
-
}
|
|
1284
|
-
}
|
|
1344
|
+
};
|
|
1285
1345
|
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
setDropdownData(data);
|
|
1292
|
-
}).catch(function () {
|
|
1293
|
-
return setHasError(true);
|
|
1294
|
-
});
|
|
1295
|
-
}, [categoryConfig.menuData]);
|
|
1296
|
-
useMemo(function () {
|
|
1297
|
-
if (!initialSearchData) {
|
|
1298
|
-
return;
|
|
1299
|
-
}
|
|
1346
|
+
var getMarginRight = function getMarginRight(showLoyaltyIcon, userName) {
|
|
1347
|
+
if (showLoyaltyIcon) return '15px';
|
|
1348
|
+
if (userName) return '5px';
|
|
1349
|
+
return '18px';
|
|
1350
|
+
};
|
|
1300
1351
|
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1352
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
1353
|
+
className: "navbar"
|
|
1354
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
1355
|
+
className: "navbar__container"
|
|
1356
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
1357
|
+
className: "navbar__logo-wrapper"
|
|
1358
|
+
}, /*#__PURE__*/React__default.createElement("button", {
|
|
1359
|
+
type: "button",
|
|
1360
|
+
onClick: onLogoClick,
|
|
1361
|
+
className: "navbar__logo"
|
|
1362
|
+
}, /*#__PURE__*/React__default.createElement("img", {
|
|
1363
|
+
src: logoSrc,
|
|
1364
|
+
alt: "luxity-logo",
|
|
1365
|
+
loading: "eager"
|
|
1366
|
+
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
1367
|
+
className: "navbar__section"
|
|
1368
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
1369
|
+
className: "navbar__body"
|
|
1370
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
1371
|
+
className: "navbar__product-search"
|
|
1372
|
+
}, /*#__PURE__*/React__default.createElement("img", {
|
|
1373
|
+
src: inputSearchIcon,
|
|
1374
|
+
alt: "search-icon",
|
|
1375
|
+
className: "navbar__input-search-icon"
|
|
1376
|
+
}), /*#__PURE__*/React__default.createElement("input", {
|
|
1377
|
+
className: "navbar__form-input",
|
|
1378
|
+
type: "text",
|
|
1379
|
+
placeholder: "Search for items and designs",
|
|
1380
|
+
value: searchValue,
|
|
1381
|
+
onChange: handleChange,
|
|
1382
|
+
onKeyDown: handleKeyDown,
|
|
1383
|
+
onClick: handleSearchClick,
|
|
1384
|
+
onFocus: handleSearchFocus,
|
|
1385
|
+
autoComplete: "off",
|
|
1386
|
+
readOnly: app
|
|
1387
|
+
})), /*#__PURE__*/React__default.createElement(SearchResults, {
|
|
1388
|
+
searchValue: searchValue,
|
|
1389
|
+
searchResults: searchResults,
|
|
1390
|
+
onViewAll: function onViewAll() {
|
|
1391
|
+
onSearchSubmit(searchValue);
|
|
1392
|
+
setSearchValue('');
|
|
1393
|
+
setSearchResults({
|
|
1394
|
+
brands: [],
|
|
1395
|
+
products: []
|
|
1396
|
+
});
|
|
1397
|
+
setIsSearchFocused(false);
|
|
1398
|
+
setShowNoResults(false);
|
|
1399
|
+
},
|
|
1400
|
+
searchResultsRef: searchResultsRef,
|
|
1401
|
+
onSearchSubmit: onSearchSubmit,
|
|
1402
|
+
setSearchValue: setSearchValue,
|
|
1403
|
+
initialSearchData: initialSearchView,
|
|
1404
|
+
isSearchFocused: isSearchFocused,
|
|
1405
|
+
setIsSearchFocused: setIsSearchFocused,
|
|
1406
|
+
currency: currency,
|
|
1407
|
+
currencySymbol: currencySymbol,
|
|
1408
|
+
onProductSearchResultClick: onProductSearchResultClick,
|
|
1409
|
+
onBrandSearchResultClick: onBrandSearchResultClick,
|
|
1410
|
+
onCreateInterests: onCreateInterests,
|
|
1411
|
+
noResultsImage: noResultsImage,
|
|
1412
|
+
showNoResults: showNoResults,
|
|
1413
|
+
isLoading: searchLoading,
|
|
1414
|
+
showCreateInterest: showCreateInterest
|
|
1415
|
+
}), /*#__PURE__*/React__default.createElement("nav", {
|
|
1416
|
+
className: "navbar__nav-links navbar__nav-links--wrap"
|
|
1417
|
+
}, renderDropdownLinks(), !!stores.length && /*#__PURE__*/React__default.createElement("li", {
|
|
1418
|
+
className: "navbar__link",
|
|
1419
|
+
key: "Stores"
|
|
1420
|
+
}, /*#__PURE__*/React__default.createElement(LinkComponent, {
|
|
1421
|
+
href: contactUsLink,
|
|
1422
|
+
className: "navbar__link-item navbar__link-item--desktop"
|
|
1423
|
+
}, "Stores"), /*#__PURE__*/React__default.createElement("div", {
|
|
1424
|
+
className: "navbar__dropdown"
|
|
1425
|
+
}, /*#__PURE__*/React__default.createElement(StoresDropdown, {
|
|
1426
|
+
stores: stores,
|
|
1427
|
+
contactNumber: contactNumber
|
|
1428
|
+
}))))), /*#__PURE__*/React__default.createElement("div", {
|
|
1429
|
+
className: "navbar__icons-wrapper"
|
|
1430
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
1431
|
+
className: "navbar__icons"
|
|
1432
|
+
}, /*#__PURE__*/React__default.createElement(CurrencySelect, {
|
|
1433
|
+
currency: currency,
|
|
1434
|
+
currencyOptions: currencyOptions,
|
|
1435
|
+
onCurrencyChange: onCurrencyChange,
|
|
1436
|
+
isCurrencySelectionDisabled: isCurrencySelectionDisabled,
|
|
1437
|
+
tooltipContent: tooltipContent
|
|
1438
|
+
}), shop && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("button", {
|
|
1439
|
+
type: "button",
|
|
1440
|
+
className: "navbar__icon relative flex",
|
|
1441
|
+
onClick: onAccountClick,
|
|
1442
|
+
style: {
|
|
1443
|
+
marginRight: getMarginRight(isEarlyAccess || isExclusive, name)
|
|
1322
1444
|
}
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1445
|
+
}, /*#__PURE__*/React__default.createElement("img", {
|
|
1446
|
+
src: accountIcon,
|
|
1447
|
+
alt: "account-icon",
|
|
1448
|
+
width: 20,
|
|
1449
|
+
height: 20
|
|
1450
|
+
}), isEarlyAccess && /*#__PURE__*/React__default.createElement("img", {
|
|
1451
|
+
src: earlyAccessIcon,
|
|
1452
|
+
alt: "loyalty-icon",
|
|
1453
|
+
className: "navbar__loyalty-icon",
|
|
1454
|
+
width: 16,
|
|
1455
|
+
height: 16
|
|
1456
|
+
}), isExclusive && /*#__PURE__*/React__default.createElement("img", {
|
|
1457
|
+
src: exclusiveIcon,
|
|
1458
|
+
alt: "loyalty-icon",
|
|
1459
|
+
className: "navbar__loyalty-icon",
|
|
1460
|
+
width: 16,
|
|
1461
|
+
height: 16
|
|
1462
|
+
})), name && /*#__PURE__*/React__default.createElement("button", {
|
|
1463
|
+
type: "button",
|
|
1464
|
+
className: "mr-3",
|
|
1465
|
+
onClick: onAccountClick
|
|
1466
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
1467
|
+
className: "text-sm"
|
|
1468
|
+
}, name))), onInterestClick && /*#__PURE__*/React__default.createElement("button", {
|
|
1469
|
+
type: "button",
|
|
1470
|
+
className: "".concat(app ? 'navbar__icon--app' : 'navbar__icon'),
|
|
1471
|
+
onClick: onInterestClick
|
|
1472
|
+
}, /*#__PURE__*/React__default.createElement("img", {
|
|
1473
|
+
src: interestIcon,
|
|
1474
|
+
alt: "interest-icon",
|
|
1475
|
+
width: 20,
|
|
1476
|
+
height: 20
|
|
1477
|
+
})), /*#__PURE__*/React__default.createElement("button", {
|
|
1478
|
+
type: "button",
|
|
1479
|
+
className: "navbar__cart-icon ".concat(app ? 'navbar__icon--app' : 'navbar__icon'),
|
|
1480
|
+
onClick: onCartClick
|
|
1481
|
+
}, /*#__PURE__*/React__default.createElement("img", {
|
|
1482
|
+
src: cartIcon,
|
|
1483
|
+
alt: "cart-icon",
|
|
1484
|
+
width: 20,
|
|
1485
|
+
height: 20
|
|
1486
|
+
}), shop && cartCount > 0 && /*#__PURE__*/React__default.createElement("div", {
|
|
1487
|
+
className: "navbar__cart-count"
|
|
1488
|
+
}, cartCount))), /*#__PURE__*/React__default.createElement("nav", {
|
|
1489
|
+
className: "navbar__nav-links"
|
|
1490
|
+
}, /*#__PURE__*/React__default.createElement("li", {
|
|
1491
|
+
className: "navbar__company-link"
|
|
1492
|
+
}, /*#__PURE__*/React__default.createElement(LinkComponent, {
|
|
1493
|
+
href: ourStoryLink,
|
|
1494
|
+
className: "navbar__link-item"
|
|
1495
|
+
}, "Our Story")), /*#__PURE__*/React__default.createElement("li", {
|
|
1496
|
+
className: "navbar__company-link"
|
|
1497
|
+
}, /*#__PURE__*/React__default.createElement(LinkComponent, {
|
|
1498
|
+
href: contactUsLink,
|
|
1499
|
+
className: "navbar__link-item"
|
|
1500
|
+
}, "Contact Us")), /*#__PURE__*/React__default.createElement("li", {
|
|
1501
|
+
className: "navbar__company-link"
|
|
1502
|
+
}, /*#__PURE__*/React__default.createElement("button", {
|
|
1503
|
+
type: "button",
|
|
1504
|
+
className: "navbar__company-block",
|
|
1505
|
+
onClick: onSellToUsClick
|
|
1506
|
+
}, "Sell to us")))))));
|
|
1338
1507
|
};
|
|
1339
1508
|
|
|
1340
|
-
|
|
1341
|
-
if (showLoyaltyIcon) return '15px';
|
|
1342
|
-
if (userName) return '5px';
|
|
1343
|
-
return '18px';
|
|
1344
|
-
};
|
|
1509
|
+
return LuxityDesktopHeader;
|
|
1345
1510
|
|
|
1346
|
-
|
|
1347
|
-
className: "navbar"
|
|
1348
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
1349
|
-
className: "navbar__container"
|
|
1350
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
1351
|
-
className: "navbar__logo-wrapper"
|
|
1352
|
-
}, /*#__PURE__*/React.createElement("button", {
|
|
1353
|
-
type: "button",
|
|
1354
|
-
onClick: onLogoClick,
|
|
1355
|
-
className: "navbar__logo"
|
|
1356
|
-
}, /*#__PURE__*/React.createElement("img", {
|
|
1357
|
-
src: logoSrc,
|
|
1358
|
-
alt: "luxity-logo",
|
|
1359
|
-
loading: "eager"
|
|
1360
|
-
}))), /*#__PURE__*/React.createElement("div", {
|
|
1361
|
-
className: "navbar__section"
|
|
1362
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
1363
|
-
className: "navbar__body"
|
|
1364
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
1365
|
-
className: "navbar__product-search"
|
|
1366
|
-
}, /*#__PURE__*/React.createElement("img", {
|
|
1367
|
-
src: inputSearchIcon,
|
|
1368
|
-
alt: "search-icon",
|
|
1369
|
-
className: "navbar__input-search-icon"
|
|
1370
|
-
}), /*#__PURE__*/React.createElement("input", {
|
|
1371
|
-
className: "navbar__form-input",
|
|
1372
|
-
type: "text",
|
|
1373
|
-
placeholder: "Search for items and designs",
|
|
1374
|
-
value: searchValue,
|
|
1375
|
-
onChange: handleChange,
|
|
1376
|
-
onKeyDown: handleKeyDown,
|
|
1377
|
-
onClick: handleSearchClick,
|
|
1378
|
-
onFocus: handleSearchFocus,
|
|
1379
|
-
autoComplete: "off",
|
|
1380
|
-
readOnly: app
|
|
1381
|
-
})), /*#__PURE__*/React.createElement(SearchResults, {
|
|
1382
|
-
searchValue: searchValue,
|
|
1383
|
-
searchResults: searchResults,
|
|
1384
|
-
onViewAll: function onViewAll() {
|
|
1385
|
-
onSearchSubmit(searchValue);
|
|
1386
|
-
setSearchValue('');
|
|
1387
|
-
setSearchResults({
|
|
1388
|
-
brands: [],
|
|
1389
|
-
products: []
|
|
1390
|
-
});
|
|
1391
|
-
setIsSearchFocused(false);
|
|
1392
|
-
setShowNoResults(false);
|
|
1393
|
-
},
|
|
1394
|
-
searchResultsRef: searchResultsRef,
|
|
1395
|
-
onSearchSubmit: onSearchSubmit,
|
|
1396
|
-
setSearchValue: setSearchValue,
|
|
1397
|
-
initialSearchData: initialSearchView,
|
|
1398
|
-
isSearchFocused: isSearchFocused,
|
|
1399
|
-
setIsSearchFocused: setIsSearchFocused,
|
|
1400
|
-
currency: currency,
|
|
1401
|
-
currencySymbol: currencySymbol,
|
|
1402
|
-
onProductSearchResultClick: onProductSearchResultClick,
|
|
1403
|
-
onBrandSearchResultClick: onBrandSearchResultClick,
|
|
1404
|
-
onCreateInterests: onCreateInterests,
|
|
1405
|
-
noResultsImage: noResultsImage,
|
|
1406
|
-
showNoResults: showNoResults,
|
|
1407
|
-
isLoading: searchLoading,
|
|
1408
|
-
showCreateInterest: showCreateInterest
|
|
1409
|
-
}), /*#__PURE__*/React.createElement("nav", {
|
|
1410
|
-
className: "navbar__nav-links navbar__nav-links--wrap"
|
|
1411
|
-
}, renderDropdownLinks(), !!stores.length && /*#__PURE__*/React.createElement("li", {
|
|
1412
|
-
className: "navbar__link",
|
|
1413
|
-
key: "Stores"
|
|
1414
|
-
}, /*#__PURE__*/React.createElement(LinkComponent, {
|
|
1415
|
-
href: contactUsLink,
|
|
1416
|
-
className: "navbar__link-item navbar__link-item--desktop"
|
|
1417
|
-
}, "Stores"), /*#__PURE__*/React.createElement("div", {
|
|
1418
|
-
className: "navbar__dropdown"
|
|
1419
|
-
}, /*#__PURE__*/React.createElement(StoresDropdown, {
|
|
1420
|
-
stores: stores,
|
|
1421
|
-
contactNumber: contactNumber
|
|
1422
|
-
}))))), /*#__PURE__*/React.createElement("div", {
|
|
1423
|
-
className: "navbar__icons-wrapper"
|
|
1424
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
1425
|
-
className: "navbar__icons"
|
|
1426
|
-
}, /*#__PURE__*/React.createElement(CurrencySelect, {
|
|
1427
|
-
currency: currency,
|
|
1428
|
-
currencyOptions: currencyOptions,
|
|
1429
|
-
onCurrencyChange: onCurrencyChange,
|
|
1430
|
-
isCurrencySelectionDisabled: isCurrencySelectionDisabled,
|
|
1431
|
-
tooltipContent: tooltipContent
|
|
1432
|
-
}), shop && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("button", {
|
|
1433
|
-
type: "button",
|
|
1434
|
-
className: "navbar__icon relative flex",
|
|
1435
|
-
onClick: onAccountClick,
|
|
1436
|
-
style: {
|
|
1437
|
-
marginRight: getMarginRight(isEarlyAccess || isExclusive, name)
|
|
1438
|
-
}
|
|
1439
|
-
}, /*#__PURE__*/React.createElement("img", {
|
|
1440
|
-
src: accountIcon,
|
|
1441
|
-
alt: "account-icon",
|
|
1442
|
-
width: 20,
|
|
1443
|
-
height: 20
|
|
1444
|
-
}), isEarlyAccess && /*#__PURE__*/React.createElement("img", {
|
|
1445
|
-
src: earlyAccessIcon,
|
|
1446
|
-
alt: "loyalty-icon",
|
|
1447
|
-
className: "navbar__loyalty-icon",
|
|
1448
|
-
width: 16,
|
|
1449
|
-
height: 16
|
|
1450
|
-
}), isExclusive && /*#__PURE__*/React.createElement("img", {
|
|
1451
|
-
src: exclusiveIcon,
|
|
1452
|
-
alt: "loyalty-icon",
|
|
1453
|
-
className: "navbar__loyalty-icon",
|
|
1454
|
-
width: 16,
|
|
1455
|
-
height: 16
|
|
1456
|
-
})), name && /*#__PURE__*/React.createElement("button", {
|
|
1457
|
-
type: "button",
|
|
1458
|
-
className: "mr-3",
|
|
1459
|
-
onClick: onAccountClick
|
|
1460
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
1461
|
-
className: "text-sm"
|
|
1462
|
-
}, name))), onInterestClick && /*#__PURE__*/React.createElement("button", {
|
|
1463
|
-
type: "button",
|
|
1464
|
-
className: "".concat(app ? 'navbar__icon--app' : 'navbar__icon'),
|
|
1465
|
-
onClick: onInterestClick
|
|
1466
|
-
}, /*#__PURE__*/React.createElement("img", {
|
|
1467
|
-
src: interestIcon,
|
|
1468
|
-
alt: "interest-icon",
|
|
1469
|
-
width: 20,
|
|
1470
|
-
height: 20
|
|
1471
|
-
})), /*#__PURE__*/React.createElement("button", {
|
|
1472
|
-
type: "button",
|
|
1473
|
-
className: "navbar__cart-icon ".concat(app ? 'navbar__icon--app' : 'navbar__icon'),
|
|
1474
|
-
onClick: onCartClick
|
|
1475
|
-
}, /*#__PURE__*/React.createElement("img", {
|
|
1476
|
-
src: cartIcon,
|
|
1477
|
-
alt: "cart-icon",
|
|
1478
|
-
width: 20,
|
|
1479
|
-
height: 20
|
|
1480
|
-
}), shop && cartCount > 0 && /*#__PURE__*/React.createElement("div", {
|
|
1481
|
-
className: "navbar__cart-count"
|
|
1482
|
-
}, cartCount))), /*#__PURE__*/React.createElement("nav", {
|
|
1483
|
-
className: "navbar__nav-links"
|
|
1484
|
-
}, /*#__PURE__*/React.createElement("li", {
|
|
1485
|
-
className: "navbar__company-link"
|
|
1486
|
-
}, /*#__PURE__*/React.createElement(LinkComponent, {
|
|
1487
|
-
href: ourStoryLink,
|
|
1488
|
-
className: "navbar__link-item"
|
|
1489
|
-
}, "Our Story")), /*#__PURE__*/React.createElement("li", {
|
|
1490
|
-
className: "navbar__company-link"
|
|
1491
|
-
}, /*#__PURE__*/React.createElement(LinkComponent, {
|
|
1492
|
-
href: contactUsLink,
|
|
1493
|
-
className: "navbar__link-item"
|
|
1494
|
-
}, "Contact Us")), /*#__PURE__*/React.createElement("li", {
|
|
1495
|
-
className: "navbar__company-link"
|
|
1496
|
-
}, /*#__PURE__*/React.createElement("button", {
|
|
1497
|
-
type: "button",
|
|
1498
|
-
className: "navbar__company-block",
|
|
1499
|
-
onClick: onSellToUsClick
|
|
1500
|
-
}, "Sell to us")))))));
|
|
1501
|
-
};
|
|
1502
|
-
|
|
1503
|
-
export default LuxityDesktopHeader;
|
|
1511
|
+
})));
|