@bonlineza/luxity-lib 2.37.7 → 2.38.0
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/CurrencySelect.js +27 -27
- package/GraphQLDropdownSelector.js +8 -8
- package/LuxityDesktopHeader.js +131 -54
- package/LuxityFooter.js +27 -28
- package/LuxityGraphQLDropdownSelector.js +8 -8
- package/LuxityMobileHeader.js +131 -54
- package/LuxitySideNav.js +27 -27
- package/MaterialSelector.js +8 -8
- package/ModelSelector.js +8 -8
- package/Tooltip.js +27 -27
- package/build/bundle.css +1 -1
- package/build/bundle.js +133 -57
- package/package.json +1 -1
package/CurrencySelect.js
CHANGED
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
var relativeInlineStyle = styled.css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n"])));
|
|
43
43
|
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"])));
|
|
44
44
|
var getTopMiddleArrowAfterStyle = function getTopMiddleArrowAfterStyle(props) {
|
|
45
|
-
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
|
|
45
|
+
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);
|
|
46
46
|
};
|
|
47
47
|
var getBottomMiddleBodyStyle = function getBottomMiddleBodyStyle(props) {
|
|
48
|
-
return styled.css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: absolute;\n top: 100%;\n left: calc(50% - ", " / 2);\n"])), props
|
|
48
|
+
return styled.css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: absolute;\n top: 100%;\n left: calc(50% - ", " / 2);\n"])), props.bodyWidth);
|
|
49
49
|
};
|
|
50
50
|
var getBottomMiddleArrowAfterStyle = function getBottomMiddleArrowAfterStyle(props) {
|
|
51
51
|
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);
|
|
@@ -55,10 +55,10 @@
|
|
|
55
55
|
|
|
56
56
|
var getBodyStyle = function getBodyStyle() {
|
|
57
57
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
58
|
-
var _props
|
|
59
|
-
|
|
58
|
+
var _props$toolTipPositio = props.toolTipPosition,
|
|
59
|
+
toolTipPosition = _props$toolTipPositio === void 0 ? '' : _props$toolTipPositio;
|
|
60
60
|
|
|
61
|
-
switch (
|
|
61
|
+
switch (toolTipPosition) {
|
|
62
62
|
case 'top':
|
|
63
63
|
return topMiddleBodyStyle;
|
|
64
64
|
|
|
@@ -72,9 +72,9 @@
|
|
|
72
72
|
|
|
73
73
|
var getAfterStyling = function getAfterStyling() {
|
|
74
74
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
75
|
-
var
|
|
75
|
+
var toolTipPosition = props.toolTipPosition;
|
|
76
76
|
|
|
77
|
-
switch (
|
|
77
|
+
switch (toolTipPosition) {
|
|
78
78
|
case 'top':
|
|
79
79
|
return getTopMiddleArrowAfterStyle(props);
|
|
80
80
|
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
};
|
|
88
88
|
|
|
89
89
|
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) {
|
|
90
|
-
return props
|
|
90
|
+
return props.bodyWidth;
|
|
91
91
|
}, function (props) {
|
|
92
92
|
return props.theme.colors.base || 'black';
|
|
93
93
|
}, function (props) {
|
|
@@ -163,33 +163,33 @@
|
|
|
163
163
|
});
|
|
164
164
|
});
|
|
165
165
|
|
|
166
|
-
/* eslint-disable react/require-default-props */
|
|
167
|
-
|
|
168
166
|
var Tooltip = function Tooltip(_ref) {
|
|
169
|
-
var
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
bodyWidth = _ref$bodyWidth === void 0 ? '8em' : _ref$bodyWidth,
|
|
177
|
-
_ref$apexWidth = _ref.apexWidth,
|
|
178
|
-
apexWidth = _ref$apexWidth === void 0 ? '5px' : _ref$apexWidth,
|
|
179
|
-
_ref$containerClassNa = _ref.containerClassName,
|
|
180
|
-
containerClassName = _ref$containerClassNa === void 0 ? '' : _ref$containerClassNa,
|
|
181
|
-
_ref$bodyClassName = _ref.bodyClassName,
|
|
182
|
-
bodyClassName = _ref$bodyClassName === void 0 ? '' : _ref$bodyClassName;
|
|
167
|
+
var children = _ref.children,
|
|
168
|
+
toolTipText = _ref.toolTipText,
|
|
169
|
+
toolTipPosition = _ref.toolTipPosition,
|
|
170
|
+
bodyWidth = _ref.bodyWidth,
|
|
171
|
+
apexWidth = _ref.apexWidth,
|
|
172
|
+
containerClassName = _ref.containerClassName,
|
|
173
|
+
bodyClassName = _ref.bodyClassName;
|
|
183
174
|
return /*#__PURE__*/React__default.createElement(Container, {
|
|
184
175
|
className: containerClassName
|
|
185
176
|
}, children, /*#__PURE__*/React__default.createElement(Body, {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
177
|
+
toolTipPosition: toolTipPosition,
|
|
178
|
+
bodyWidth: bodyWidth,
|
|
179
|
+
apexWidth: apexWidth,
|
|
189
180
|
className: bodyClassName
|
|
190
181
|
}, toolTipText));
|
|
191
182
|
};
|
|
192
183
|
|
|
184
|
+
Tooltip.defaultProps = {
|
|
185
|
+
children: null,
|
|
186
|
+
toolTipText: '',
|
|
187
|
+
toolTipPosition: 'top',
|
|
188
|
+
bodyWidth: '8em',
|
|
189
|
+
apexWidth: '5px',
|
|
190
|
+
containerClassName: '',
|
|
191
|
+
bodyClassName: ''
|
|
192
|
+
};
|
|
193
193
|
var Tooltip$1 = themed(Tooltip);
|
|
194
194
|
|
|
195
195
|
var CurrencySelect = function CurrencySelect(_ref) {
|
|
@@ -1313,10 +1313,10 @@
|
|
|
1313
1313
|
var relativeInlineStyle = styled.css(_templateObject$i || (_templateObject$i = _taggedTemplateLiteral(["\n position: relative;\n"])));
|
|
1314
1314
|
var topMiddleBodyStyle = styled.css(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteral(["\n position: absolute;\n z-index: 1;\n bottom: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n"])));
|
|
1315
1315
|
var getTopMiddleArrowAfterStyle = function getTopMiddleArrowAfterStyle(props) {
|
|
1316
|
-
return styled.css(_templateObject3$1 || (_templateObject3$1 = _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
|
|
1316
|
+
return styled.css(_templateObject3$1 || (_templateObject3$1 = _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);
|
|
1317
1317
|
};
|
|
1318
1318
|
var getBottomMiddleBodyStyle = function getBottomMiddleBodyStyle(props) {
|
|
1319
|
-
return styled.css(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral(["\n position: absolute;\n top: 100%;\n left: calc(50% - ", " / 2);\n"])), props
|
|
1319
|
+
return styled.css(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral(["\n position: absolute;\n top: 100%;\n left: calc(50% - ", " / 2);\n"])), props.bodyWidth);
|
|
1320
1320
|
};
|
|
1321
1321
|
var getBottomMiddleArrowAfterStyle = function getBottomMiddleArrowAfterStyle(props) {
|
|
1322
1322
|
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);
|
|
@@ -1326,10 +1326,10 @@
|
|
|
1326
1326
|
|
|
1327
1327
|
var getBodyStyle = function getBodyStyle() {
|
|
1328
1328
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1329
|
-
var _props
|
|
1330
|
-
|
|
1329
|
+
var _props$toolTipPositio = props.toolTipPosition,
|
|
1330
|
+
toolTipPosition = _props$toolTipPositio === void 0 ? '' : _props$toolTipPositio;
|
|
1331
1331
|
|
|
1332
|
-
switch (
|
|
1332
|
+
switch (toolTipPosition) {
|
|
1333
1333
|
case 'top':
|
|
1334
1334
|
return topMiddleBodyStyle;
|
|
1335
1335
|
|
|
@@ -1343,9 +1343,9 @@
|
|
|
1343
1343
|
|
|
1344
1344
|
var getAfterStyling = function getAfterStyling() {
|
|
1345
1345
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1346
|
-
var
|
|
1346
|
+
var toolTipPosition = props.toolTipPosition;
|
|
1347
1347
|
|
|
1348
|
-
switch (
|
|
1348
|
+
switch (toolTipPosition) {
|
|
1349
1349
|
case 'top':
|
|
1350
1350
|
return getTopMiddleArrowAfterStyle(props);
|
|
1351
1351
|
|
|
@@ -1358,7 +1358,7 @@
|
|
|
1358
1358
|
};
|
|
1359
1359
|
|
|
1360
1360
|
var Body$1 = styled__default.span(_templateObject$j || (_templateObject$j = _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) {
|
|
1361
|
-
return props
|
|
1361
|
+
return props.bodyWidth;
|
|
1362
1362
|
}, function (props) {
|
|
1363
1363
|
return props.theme.colors.base || 'black';
|
|
1364
1364
|
}, function (props) {
|
package/LuxityDesktopHeader.js
CHANGED
|
@@ -357,6 +357,8 @@
|
|
|
357
357
|
price: product.price,
|
|
358
358
|
retail_price: product.est_retail_price
|
|
359
359
|
};
|
|
360
|
+
var displayPrice = product.on_promotion && product.promotion_price ? product.promotion_price : selectedPrice.price;
|
|
361
|
+
var hasPromotion = product.on_promotion && product.promotion_price;
|
|
360
362
|
return /*#__PURE__*/React__default.createElement("a", {
|
|
361
363
|
key: product.link,
|
|
362
364
|
href: product.link,
|
|
@@ -384,15 +386,23 @@
|
|
|
384
386
|
className: "product-card__name"
|
|
385
387
|
}, shouldShowInitialData ? /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement("span", {
|
|
386
388
|
className: "product-card__brand-name"
|
|
387
|
-
}, product.brand.toUpperCase()), ' ', product.name) :
|
|
389
|
+
}, product.brand.toUpperCase()), ' ', product.name) : /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement("span", {
|
|
390
|
+
className: "product-card__brand-name"
|
|
391
|
+
}, product.brand.toUpperCase()), ' ', product.name)), /*#__PURE__*/React__default.createElement("div", {
|
|
388
392
|
className: "product-card__info-row"
|
|
389
393
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
390
394
|
className: "product-card__price-group"
|
|
395
|
+
}, hasPromotion ? /*#__PURE__*/React__default.createElement("div", {
|
|
396
|
+
className: "product-card__price-with-promotion"
|
|
391
397
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
398
|
+
className: "product-card__price product-card__price--promotion"
|
|
399
|
+
}, formatPrice(displayPrice)), /*#__PURE__*/React__default.createElement("div", {
|
|
400
|
+
className: "product-card__price product-card__price--original"
|
|
401
|
+
}, formatPrice(selectedPrice.price))) : /*#__PURE__*/React__default.createElement("div", {
|
|
392
402
|
className: "product-card__price"
|
|
393
|
-
}, formatPrice(
|
|
403
|
+
}, formatPrice(displayPrice)), selectedPrice.retail_price > 1 && selectedPrice.retail_price > displayPrice && /*#__PURE__*/React__default.createElement("div", {
|
|
394
404
|
className: "product-card__retail-price"
|
|
395
|
-
}, "Est. Retail: ", formatPrice(selectedPrice.retail_price))), /*#__PURE__*/React__default.createElement("div", {
|
|
405
|
+
}, "Est. Retail: ", formatPrice(selectedPrice.retail_price))), product.condition && /*#__PURE__*/React__default.createElement("div", {
|
|
396
406
|
className: "product-card__condition"
|
|
397
407
|
}, /*#__PURE__*/React__default.createElement("span", {
|
|
398
408
|
className: "product-card__condition-label"
|
|
@@ -487,10 +497,10 @@
|
|
|
487
497
|
var relativeInlineStyle = styled.css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n"])));
|
|
488
498
|
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"])));
|
|
489
499
|
var getTopMiddleArrowAfterStyle = function getTopMiddleArrowAfterStyle(props) {
|
|
490
|
-
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
|
|
500
|
+
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);
|
|
491
501
|
};
|
|
492
502
|
var getBottomMiddleBodyStyle = function getBottomMiddleBodyStyle(props) {
|
|
493
|
-
return styled.css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: absolute;\n top: 100%;\n left: calc(50% - ", " / 2);\n"])), props
|
|
503
|
+
return styled.css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: absolute;\n top: 100%;\n left: calc(50% - ", " / 2);\n"])), props.bodyWidth);
|
|
494
504
|
};
|
|
495
505
|
var getBottomMiddleArrowAfterStyle = function getBottomMiddleArrowAfterStyle(props) {
|
|
496
506
|
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);
|
|
@@ -500,10 +510,10 @@
|
|
|
500
510
|
|
|
501
511
|
var getBodyStyle = function getBodyStyle() {
|
|
502
512
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
503
|
-
var _props
|
|
504
|
-
|
|
513
|
+
var _props$toolTipPositio = props.toolTipPosition,
|
|
514
|
+
toolTipPosition = _props$toolTipPositio === void 0 ? '' : _props$toolTipPositio;
|
|
505
515
|
|
|
506
|
-
switch (
|
|
516
|
+
switch (toolTipPosition) {
|
|
507
517
|
case 'top':
|
|
508
518
|
return topMiddleBodyStyle;
|
|
509
519
|
|
|
@@ -517,9 +527,9 @@
|
|
|
517
527
|
|
|
518
528
|
var getAfterStyling = function getAfterStyling() {
|
|
519
529
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
520
|
-
var
|
|
530
|
+
var toolTipPosition = props.toolTipPosition;
|
|
521
531
|
|
|
522
|
-
switch (
|
|
532
|
+
switch (toolTipPosition) {
|
|
523
533
|
case 'top':
|
|
524
534
|
return getTopMiddleArrowAfterStyle(props);
|
|
525
535
|
|
|
@@ -532,7 +542,7 @@
|
|
|
532
542
|
};
|
|
533
543
|
|
|
534
544
|
var Body = styled__default.span(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n ", ";\n visibility: hidden;\n opacity: 0;\n width: ", ";\n transition: visibility 0.3s linear, opacity 0.3s linear;\n background-color: ", ";\n color: white;\n text-align: center;\n border-radius: 5px;\n ", "\n &::after {\n content: ' ';\n position: absolute;\n ", "\n }\n"])), relativeInlineStyle, function (props) {
|
|
535
|
-
return props
|
|
545
|
+
return props.bodyWidth;
|
|
536
546
|
}, function (props) {
|
|
537
547
|
return props.theme.colors.base || 'black';
|
|
538
548
|
}, function (props) {
|
|
@@ -608,33 +618,33 @@
|
|
|
608
618
|
});
|
|
609
619
|
});
|
|
610
620
|
|
|
611
|
-
/* eslint-disable react/require-default-props */
|
|
612
|
-
|
|
613
621
|
var Tooltip = function Tooltip(_ref) {
|
|
614
|
-
var
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
bodyWidth = _ref$bodyWidth === void 0 ? '8em' : _ref$bodyWidth,
|
|
622
|
-
_ref$apexWidth = _ref.apexWidth,
|
|
623
|
-
apexWidth = _ref$apexWidth === void 0 ? '5px' : _ref$apexWidth,
|
|
624
|
-
_ref$containerClassNa = _ref.containerClassName,
|
|
625
|
-
containerClassName = _ref$containerClassNa === void 0 ? '' : _ref$containerClassNa,
|
|
626
|
-
_ref$bodyClassName = _ref.bodyClassName,
|
|
627
|
-
bodyClassName = _ref$bodyClassName === void 0 ? '' : _ref$bodyClassName;
|
|
622
|
+
var children = _ref.children,
|
|
623
|
+
toolTipText = _ref.toolTipText,
|
|
624
|
+
toolTipPosition = _ref.toolTipPosition,
|
|
625
|
+
bodyWidth = _ref.bodyWidth,
|
|
626
|
+
apexWidth = _ref.apexWidth,
|
|
627
|
+
containerClassName = _ref.containerClassName,
|
|
628
|
+
bodyClassName = _ref.bodyClassName;
|
|
628
629
|
return /*#__PURE__*/React__default.createElement(Container, {
|
|
629
630
|
className: containerClassName
|
|
630
631
|
}, children, /*#__PURE__*/React__default.createElement(Body, {
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
632
|
+
toolTipPosition: toolTipPosition,
|
|
633
|
+
bodyWidth: bodyWidth,
|
|
634
|
+
apexWidth: apexWidth,
|
|
634
635
|
className: bodyClassName
|
|
635
636
|
}, toolTipText));
|
|
636
637
|
};
|
|
637
638
|
|
|
639
|
+
Tooltip.defaultProps = {
|
|
640
|
+
children: null,
|
|
641
|
+
toolTipText: '',
|
|
642
|
+
toolTipPosition: 'top',
|
|
643
|
+
bodyWidth: '8em',
|
|
644
|
+
apexWidth: '5px',
|
|
645
|
+
containerClassName: '',
|
|
646
|
+
bodyClassName: ''
|
|
647
|
+
};
|
|
638
648
|
var Tooltip$1 = themed(Tooltip);
|
|
639
649
|
|
|
640
650
|
var CurrencySelect = function CurrencySelect(_ref) {
|
|
@@ -684,20 +694,33 @@
|
|
|
684
694
|
}))));
|
|
685
695
|
};
|
|
686
696
|
|
|
687
|
-
var
|
|
697
|
+
var searchBrandsAggregations = function searchBrandsAggregations(search, currencyCode) {
|
|
688
698
|
return {
|
|
689
|
-
query: "\n query
|
|
699
|
+
query: "\n query GetProductFilterAggregations($search: String!) {\n luxity_products_aggregations(search: $search) {\n luxity_brand {\n name\n }\n }\n }\n ",
|
|
700
|
+
variables: {
|
|
701
|
+
search: search,
|
|
702
|
+
currency_code: currencyCode
|
|
703
|
+
}
|
|
704
|
+
};
|
|
705
|
+
}; // NEW: Get top products for search dropdown (right side)
|
|
706
|
+
|
|
707
|
+
var searchProductsFilter = function searchProductsFilter(search, limit, currencyCode) {
|
|
708
|
+
return {
|
|
709
|
+
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 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 ",
|
|
690
710
|
variables: {
|
|
691
711
|
search: search,
|
|
692
712
|
limit: limit,
|
|
693
|
-
|
|
713
|
+
page: 1,
|
|
714
|
+
sort_by: 'newest',
|
|
715
|
+
with_sold: false,
|
|
716
|
+
currency_code: currencyCode
|
|
694
717
|
}
|
|
695
718
|
};
|
|
696
719
|
};
|
|
697
720
|
|
|
698
721
|
var useSearch = function useSearch(_ref) {
|
|
699
722
|
var endpoint = _ref.endpoint,
|
|
700
|
-
|
|
723
|
+
onSearchLoading = _ref.onSearchLoading,
|
|
701
724
|
currency = _ref.currency,
|
|
702
725
|
onSearchPreview = _ref.onSearchPreview;
|
|
703
726
|
var currentSearchRequestToken = React.useRef(null);
|
|
@@ -735,8 +758,7 @@
|
|
|
735
758
|
if (!searchQuery || searchQuery.trim() === '') {
|
|
736
759
|
setSearchResults({
|
|
737
760
|
brands: [],
|
|
738
|
-
products: []
|
|
739
|
-
luxity_product_ids: []
|
|
761
|
+
products: []
|
|
740
762
|
});
|
|
741
763
|
return;
|
|
742
764
|
} // Cancel any ongoing search request to prevent race conditions
|
|
@@ -748,41 +770,96 @@
|
|
|
748
770
|
|
|
749
771
|
|
|
750
772
|
var newSearchToken = axios.CancelToken.source();
|
|
751
|
-
currentSearchRequestToken.current = newSearchToken;
|
|
752
|
-
|
|
773
|
+
currentSearchRequestToken.current = newSearchToken; // Set loading to true when starting the search request
|
|
774
|
+
|
|
775
|
+
if (typeof onSearchLoading === 'function') {
|
|
776
|
+
onSearchLoading(true);
|
|
777
|
+
} // Make TWO parallel queries: brands aggregations + products filter
|
|
778
|
+
|
|
779
|
+
|
|
780
|
+
Promise.all([// Query 1: Get brands aggregations
|
|
781
|
+
axios.post(endpoint, searchBrandsAggregations(searchQuery, currency), {
|
|
753
782
|
cancelToken: newSearchToken.token
|
|
754
|
-
})
|
|
783
|
+
}), // Query 2: Get top 3 products
|
|
784
|
+
axios.post(endpoint, searchProductsFilter(searchQuery, 3, currency), {
|
|
785
|
+
cancelToken: newSearchToken.token
|
|
786
|
+
})]).then(function (_ref3) {
|
|
787
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
788
|
+
brandsResponse = _ref4[0],
|
|
789
|
+
productsResponse = _ref4[1];
|
|
790
|
+
|
|
755
791
|
if (currentSearchRequestToken.current === newSearchToken) {
|
|
756
|
-
var
|
|
792
|
+
var _brandsResponse$data$, _productsResponse$dat, _productsResponse$dat2;
|
|
793
|
+
|
|
794
|
+
// Extract brands from aggregations
|
|
795
|
+
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
|
|
796
|
+
|
|
797
|
+
var productsData = ((_productsResponse$dat = productsResponse.data.data.luxity_products_filter) === null || _productsResponse$dat === void 0 ? void 0 : _productsResponse$dat.data) || [];
|
|
798
|
+
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 }
|
|
799
|
+
|
|
800
|
+
var brands = brandsData.slice(0, 10).map(function (brand) {
|
|
801
|
+
return {
|
|
802
|
+
name: brand.name,
|
|
803
|
+
link: "/products/brands/".concat(brand.name.toLowerCase().replace(/\s+/g, '-')) // Convert to slug
|
|
804
|
+
|
|
805
|
+
};
|
|
806
|
+
}); // Map products to old structure with prices
|
|
807
|
+
|
|
808
|
+
var products = productsData.map(function (product) {
|
|
809
|
+
return {
|
|
810
|
+
name: product.product.name,
|
|
811
|
+
brand: product.luxity_brand.name,
|
|
812
|
+
link: "/products/".concat(product.id),
|
|
813
|
+
// Using product ID for link
|
|
814
|
+
price: product.product.price || 0,
|
|
815
|
+
promotion_price: product.product.promotion_price || null,
|
|
816
|
+
est_retail_price: product.product.est_retail_price || 0,
|
|
817
|
+
condition: product.product.condition || '',
|
|
818
|
+
currency_symbol: product.product.currency_symbol || '',
|
|
819
|
+
featured_image: product.featured_image,
|
|
820
|
+
on_promotion: product.on_promotion || false,
|
|
821
|
+
promotion_discount: product.promotion_discount || 0,
|
|
822
|
+
// Keep new fields for potential future use
|
|
823
|
+
id: product.id,
|
|
824
|
+
category_type: product.category_type,
|
|
825
|
+
luxity_brand: product.luxity_brand
|
|
826
|
+
};
|
|
827
|
+
});
|
|
828
|
+
var searchResults = {
|
|
829
|
+
brands: brands,
|
|
830
|
+
products: products,
|
|
831
|
+
total: totalResults
|
|
832
|
+
};
|
|
757
833
|
setSearchResults(searchResults);
|
|
758
834
|
|
|
759
|
-
if (searchResults && searchResults.luxity_product_ids) {
|
|
760
|
-
onProductIdsReceived(searchResults.luxity_product_ids);
|
|
761
|
-
}
|
|
762
|
-
|
|
763
835
|
if (typeof onSearchPreview === 'function') {
|
|
764
|
-
var
|
|
765
|
-
|
|
766
|
-
var hasResults = ((_searchResults$brands = searchResults.brands) === null || _searchResults$brands === void 0 ? void 0 : _searchResults$brands.length) > 0 || ((_searchResults$produc = searchResults.products) === null || _searchResults$produc === void 0 ? void 0 : _searchResults$produc.length) > 0;
|
|
836
|
+
var hasResults = brands.length > 0 || products.length > 0;
|
|
767
837
|
onSearchPreview({
|
|
768
838
|
search_string: searchQuery,
|
|
769
839
|
has_results: hasResults
|
|
770
840
|
});
|
|
771
841
|
}
|
|
772
842
|
|
|
773
|
-
currentSearchRequestToken.current = null;
|
|
843
|
+
currentSearchRequestToken.current = null; // Set loading to false when search completes successfully
|
|
844
|
+
|
|
845
|
+
if (typeof onSearchLoading === 'function') {
|
|
846
|
+
onSearchLoading(false);
|
|
847
|
+
}
|
|
774
848
|
}
|
|
775
849
|
}).catch(function (error) {
|
|
776
850
|
if (!axios.isCancel(error)) {
|
|
777
851
|
setSearchResults({
|
|
778
852
|
brands: [],
|
|
779
|
-
products: []
|
|
780
|
-
luxity_product_ids: []
|
|
853
|
+
products: []
|
|
781
854
|
});
|
|
782
|
-
currentSearchRequestToken.current = null;
|
|
855
|
+
currentSearchRequestToken.current = null; // Set loading to false when search fails
|
|
856
|
+
|
|
857
|
+
if (typeof onSearchLoading === 'function') {
|
|
858
|
+
onSearchLoading(false);
|
|
859
|
+
}
|
|
783
860
|
}
|
|
784
861
|
});
|
|
785
|
-
}, [endpoint, currency, onSearchPreview,
|
|
862
|
+
}, [endpoint, currency, onSearchPreview, onSearchLoading]);
|
|
786
863
|
var debouncedSearch = React.useMemo(function () {
|
|
787
864
|
return debounce(function (searchQuery, setSearchResults) {
|
|
788
865
|
return performSearch(searchQuery, setSearchResults);
|
|
@@ -938,7 +1015,7 @@
|
|
|
938
1015
|
onSearchPreview = _ref.onSearchPreview,
|
|
939
1016
|
onProductSearchResultClick = _ref.onProductSearchResultClick,
|
|
940
1017
|
onBrandSearchResultClick = _ref.onBrandSearchResultClick,
|
|
941
|
-
|
|
1018
|
+
onSearchLoading = _ref.onSearchLoading,
|
|
942
1019
|
currency = _ref.currency,
|
|
943
1020
|
currencySymbol = _ref.currencySymbol,
|
|
944
1021
|
currencyOptions = _ref.currencyOptions,
|
|
@@ -956,7 +1033,7 @@
|
|
|
956
1033
|
|
|
957
1034
|
var _useSearch = useSearch({
|
|
958
1035
|
endpoint: endpoint,
|
|
959
|
-
|
|
1036
|
+
onSearchLoading: onSearchLoading,
|
|
960
1037
|
currency: currency,
|
|
961
1038
|
onSearchPreview: onSearchPreview
|
|
962
1039
|
}),
|
package/LuxityFooter.js
CHANGED
|
@@ -1931,10 +1931,10 @@
|
|
|
1931
1931
|
var relativeInlineStyle = styled.css(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n position: relative;\n"])));
|
|
1932
1932
|
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"])));
|
|
1933
1933
|
var getTopMiddleArrowAfterStyle = function getTopMiddleArrowAfterStyle(props) {
|
|
1934
|
-
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
|
|
1934
|
+
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);
|
|
1935
1935
|
};
|
|
1936
1936
|
var getBottomMiddleBodyStyle = function getBottomMiddleBodyStyle(props) {
|
|
1937
|
-
return styled.css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: absolute;\n top: 100%;\n left: calc(50% - ", " / 2);\n"])), props
|
|
1937
|
+
return styled.css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: absolute;\n top: 100%;\n left: calc(50% - ", " / 2);\n"])), props.bodyWidth);
|
|
1938
1938
|
};
|
|
1939
1939
|
var getBottomMiddleArrowAfterStyle = function getBottomMiddleArrowAfterStyle(props) {
|
|
1940
1940
|
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);
|
|
@@ -1944,10 +1944,10 @@
|
|
|
1944
1944
|
|
|
1945
1945
|
var getBodyStyle = function getBodyStyle() {
|
|
1946
1946
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1947
|
-
var _props
|
|
1948
|
-
|
|
1947
|
+
var _props$toolTipPositio = props.toolTipPosition,
|
|
1948
|
+
toolTipPosition = _props$toolTipPositio === void 0 ? '' : _props$toolTipPositio;
|
|
1949
1949
|
|
|
1950
|
-
switch (
|
|
1950
|
+
switch (toolTipPosition) {
|
|
1951
1951
|
case 'top':
|
|
1952
1952
|
return topMiddleBodyStyle;
|
|
1953
1953
|
|
|
@@ -1961,9 +1961,9 @@
|
|
|
1961
1961
|
|
|
1962
1962
|
var getAfterStyling = function getAfterStyling() {
|
|
1963
1963
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1964
|
-
var
|
|
1964
|
+
var toolTipPosition = props.toolTipPosition;
|
|
1965
1965
|
|
|
1966
|
-
switch (
|
|
1966
|
+
switch (toolTipPosition) {
|
|
1967
1967
|
case 'top':
|
|
1968
1968
|
return getTopMiddleArrowAfterStyle(props);
|
|
1969
1969
|
|
|
@@ -1976,7 +1976,7 @@
|
|
|
1976
1976
|
};
|
|
1977
1977
|
|
|
1978
1978
|
var Body = styled__default.span(_templateObject$2 || (_templateObject$2 = _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) {
|
|
1979
|
-
return props
|
|
1979
|
+
return props.bodyWidth;
|
|
1980
1980
|
}, function (props) {
|
|
1981
1981
|
return props.theme.colors.base || 'black';
|
|
1982
1982
|
}, function (props) {
|
|
@@ -1988,33 +1988,33 @@
|
|
|
1988
1988
|
var _templateObject$3;
|
|
1989
1989
|
var Container = styled__default.div(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteral(["\n ", ";\n cursor: pointer;\n &:hover ", " {\n opacity: 1;\n visibility: visible;\n }\n"])), relativeInlineStyle, Body);
|
|
1990
1990
|
|
|
1991
|
-
/* eslint-disable react/require-default-props */
|
|
1992
|
-
|
|
1993
1991
|
var Tooltip = function Tooltip(_ref) {
|
|
1994
|
-
var
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
bodyWidth = _ref$bodyWidth === void 0 ? '8em' : _ref$bodyWidth,
|
|
2002
|
-
_ref$apexWidth = _ref.apexWidth,
|
|
2003
|
-
apexWidth = _ref$apexWidth === void 0 ? '5px' : _ref$apexWidth,
|
|
2004
|
-
_ref$containerClassNa = _ref.containerClassName,
|
|
2005
|
-
containerClassName = _ref$containerClassNa === void 0 ? '' : _ref$containerClassNa,
|
|
2006
|
-
_ref$bodyClassName = _ref.bodyClassName,
|
|
2007
|
-
bodyClassName = _ref$bodyClassName === void 0 ? '' : _ref$bodyClassName;
|
|
1992
|
+
var children = _ref.children,
|
|
1993
|
+
toolTipText = _ref.toolTipText,
|
|
1994
|
+
toolTipPosition = _ref.toolTipPosition,
|
|
1995
|
+
bodyWidth = _ref.bodyWidth,
|
|
1996
|
+
apexWidth = _ref.apexWidth,
|
|
1997
|
+
containerClassName = _ref.containerClassName,
|
|
1998
|
+
bodyClassName = _ref.bodyClassName;
|
|
2008
1999
|
return /*#__PURE__*/React__default.createElement(Container, {
|
|
2009
2000
|
className: containerClassName
|
|
2010
2001
|
}, children, /*#__PURE__*/React__default.createElement(Body, {
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2002
|
+
toolTipPosition: toolTipPosition,
|
|
2003
|
+
bodyWidth: bodyWidth,
|
|
2004
|
+
apexWidth: apexWidth,
|
|
2014
2005
|
className: bodyClassName
|
|
2015
2006
|
}, toolTipText));
|
|
2016
2007
|
};
|
|
2017
2008
|
|
|
2009
|
+
Tooltip.defaultProps = {
|
|
2010
|
+
children: null,
|
|
2011
|
+
toolTipText: '',
|
|
2012
|
+
toolTipPosition: 'top',
|
|
2013
|
+
bodyWidth: '8em',
|
|
2014
|
+
apexWidth: '5px',
|
|
2015
|
+
containerClassName: '',
|
|
2016
|
+
bodyClassName: ''
|
|
2017
|
+
};
|
|
2018
2018
|
var Tooltip$1 = themed(Tooltip);
|
|
2019
2019
|
|
|
2020
2020
|
var CurrencySelect = function CurrencySelect(_ref) {
|
|
@@ -2161,7 +2161,6 @@
|
|
|
2161
2161
|
track: link === null || link === void 0 ? void 0 : link.track,
|
|
2162
2162
|
target: link.target
|
|
2163
2163
|
}, link.label) : /*#__PURE__*/React__default.createElement("div", {
|
|
2164
|
-
key: link.label,
|
|
2165
2164
|
className: "footer__text"
|
|
2166
2165
|
}, link.label);
|
|
2167
2166
|
})));
|
|
@@ -1313,10 +1313,10 @@
|
|
|
1313
1313
|
var relativeInlineStyle = styled.css(_templateObject$i || (_templateObject$i = _taggedTemplateLiteral(["\n position: relative;\n"])));
|
|
1314
1314
|
var topMiddleBodyStyle = styled.css(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteral(["\n position: absolute;\n z-index: 1;\n bottom: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n"])));
|
|
1315
1315
|
var getTopMiddleArrowAfterStyle = function getTopMiddleArrowAfterStyle(props) {
|
|
1316
|
-
return styled.css(_templateObject3$1 || (_templateObject3$1 = _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
|
|
1316
|
+
return styled.css(_templateObject3$1 || (_templateObject3$1 = _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);
|
|
1317
1317
|
};
|
|
1318
1318
|
var getBottomMiddleBodyStyle = function getBottomMiddleBodyStyle(props) {
|
|
1319
|
-
return styled.css(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral(["\n position: absolute;\n top: 100%;\n left: calc(50% - ", " / 2);\n"])), props
|
|
1319
|
+
return styled.css(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral(["\n position: absolute;\n top: 100%;\n left: calc(50% - ", " / 2);\n"])), props.bodyWidth);
|
|
1320
1320
|
};
|
|
1321
1321
|
var getBottomMiddleArrowAfterStyle = function getBottomMiddleArrowAfterStyle(props) {
|
|
1322
1322
|
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);
|
|
@@ -1326,10 +1326,10 @@
|
|
|
1326
1326
|
|
|
1327
1327
|
var getBodyStyle = function getBodyStyle() {
|
|
1328
1328
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1329
|
-
var _props
|
|
1330
|
-
|
|
1329
|
+
var _props$toolTipPositio = props.toolTipPosition,
|
|
1330
|
+
toolTipPosition = _props$toolTipPositio === void 0 ? '' : _props$toolTipPositio;
|
|
1331
1331
|
|
|
1332
|
-
switch (
|
|
1332
|
+
switch (toolTipPosition) {
|
|
1333
1333
|
case 'top':
|
|
1334
1334
|
return topMiddleBodyStyle;
|
|
1335
1335
|
|
|
@@ -1343,9 +1343,9 @@
|
|
|
1343
1343
|
|
|
1344
1344
|
var getAfterStyling = function getAfterStyling() {
|
|
1345
1345
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1346
|
-
var
|
|
1346
|
+
var toolTipPosition = props.toolTipPosition;
|
|
1347
1347
|
|
|
1348
|
-
switch (
|
|
1348
|
+
switch (toolTipPosition) {
|
|
1349
1349
|
case 'top':
|
|
1350
1350
|
return getTopMiddleArrowAfterStyle(props);
|
|
1351
1351
|
|
|
@@ -1358,7 +1358,7 @@
|
|
|
1358
1358
|
};
|
|
1359
1359
|
|
|
1360
1360
|
var Body$1 = styled__default.span(_templateObject$j || (_templateObject$j = _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) {
|
|
1361
|
-
return props
|
|
1361
|
+
return props.bodyWidth;
|
|
1362
1362
|
}, function (props) {
|
|
1363
1363
|
return props.theme.colors.base || 'black';
|
|
1364
1364
|
}, function (props) {
|