@sentecacommerce-theme/lib 0.14.9 → 0.14.12
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/CHANGELOG.md +3 -196
- package/dist/cjs/components/Drawer/index.js +6 -6
- package/dist/cjs/contexts/CheckoutForm/utils/validateShipping.js +11 -7
- package/dist/cjs/hooks/CompareContext/CompareContext.js +141 -0
- package/dist/cjs/hooks/CompareContext/index.js +22 -0
- package/dist/cjs/hooks/useCheckoutShippingModule/index.js +4 -2
- package/dist/cjs/index.js +16 -4
- package/dist/cjs/navigation/components/SearchBox/Components/Products/index.js +2 -2
- package/dist/cjs/navigation/components/SearchBox/index.js +2 -1
- package/dist/cjs/seo/components/ProductSEO/index.js +1 -1
- package/dist/cjs/user/api/utils/processLoginPayload.js +5 -4
- package/dist/cjs/utils/index.js +0 -12
- package/dist/cjs/utils/tokens.js +1 -1
- package/dist/esm/build/api/query/fetchStore.js +1 -1
- package/dist/esm/components/Drawer/index.js +6 -6
- package/dist/esm/contexts/CheckoutForm/utils/validateShipping.js +11 -7
- package/dist/esm/hooks/CompareContext/CompareContext.js +114 -0
- package/dist/esm/hooks/CompareContext/index.js +1 -0
- package/dist/esm/hooks/basket-hooks/useBasketTotalPrice/index.js +1 -1
- package/dist/esm/hooks/ui-hooks/useSlideshow/index.js +1 -1
- package/dist/esm/hooks/useCheckoutShippingModule/index.js +4 -2
- package/dist/esm/index.js +1 -0
- package/dist/esm/navigation/components/SearchBox/Components/Products/index.js +2 -2
- package/dist/esm/navigation/components/SearchBox/index.js +2 -1
- package/dist/esm/seo/components/ProductSEO/index.js +1 -1
- package/dist/esm/user/api/utils/processLoginPayload.js +6 -5
- package/dist/esm/utils/index.js +0 -1
- package/dist/esm/utils/isTouchDevice.js +1 -1
- package/dist/esm/utils/tokens.js +1 -1
- package/dist/esm/webview/hooks/useIsInWebview.js +3 -3
- package/dist/esm/webview/utils/sendMessage.js +1 -1
- package/dist/types/hooks/CompareContext/CompareContext.d.ts +16 -0
- package/dist/types/hooks/CompareContext/index.d.ts +1 -0
- package/dist/types/hooks/ui-hooks/useUI/index.d.ts +4 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/listing/utils/extendFilter.d.ts +1 -1
- package/dist/types/navigation/components/SearchBox/Components/Products/index.d.ts +2 -1
- package/dist/types/user/hooks/useResetPassword.d.ts +1 -1
- package/dist/types/utils/index.d.ts +0 -1
- package/dist/types/utils/tokens.d.ts +4 -9
- package/package.json +4 -4
- package/dist/cjs/utils/convertDateIntoRemainingDays.js +0 -10
- package/dist/esm/utils/convertDateIntoRemainingDays.js +0 -5
- package/dist/types/utils/convertDateIntoRemainingDays.d.ts +0 -1
|
@@ -31,7 +31,7 @@ function _templateObject() {
|
|
|
31
31
|
return data;
|
|
32
32
|
}
|
|
33
33
|
var Products = function(param) {
|
|
34
|
-
var data = param.data, bottomMenu = param.bottomMenu, priceColor = param.priceColor, textColor = param.textColor, labelsColor = param.labelsColor, onClose = param.onClose, backgroundColor = param.backgroundColor, title = param.title, offers = param.offers, productSpacing = param.productSpacing;
|
|
34
|
+
var data = param.data, bottomMenu = param.bottomMenu, priceColor = param.priceColor, textColor = param.textColor, labelsColor = param.labelsColor, onClose = param.onClose, backgroundColor = param.backgroundColor, title = param.title, offers = param.offers, productSpacing = param.productSpacing, noResults = param.noResults;
|
|
35
35
|
return(/*#__PURE__*/ _react.default.createElement(_.Container, {
|
|
36
36
|
backgroundColor: backgroundColor,
|
|
37
37
|
labelsColor: labelsColor,
|
|
@@ -52,7 +52,7 @@ var Products = function(param) {
|
|
|
52
52
|
offers: offers,
|
|
53
53
|
productSpacing: productSpacing
|
|
54
54
|
}));
|
|
55
|
-
})) : /*#__PURE__*/ _react.default.createElement(NoResultsDesc, null,
|
|
55
|
+
})) : /*#__PURE__*/ _react.default.createElement(NoResultsDesc, null, noResults ? noResults : 'No results found')));
|
|
56
56
|
};
|
|
57
57
|
exports.Products = Products;
|
|
58
58
|
var NoResultsDesc = _styledComponents.default.p(_templateObject());
|
|
@@ -224,7 +224,8 @@ var SearchBox = function(param) {
|
|
|
224
224
|
textColor: textColor,
|
|
225
225
|
onClose: onClose,
|
|
226
226
|
backgroundColor: backgroundColor,
|
|
227
|
-
productSpacing: productSpacing
|
|
227
|
+
productSpacing: productSpacing,
|
|
228
|
+
noResults: labels === null || labels === void 0 ? void 0 : labels.noResults
|
|
228
229
|
}), bottomMenu === BottomMenuEnum.promo && promoOffers && /*#__PURE__*/ _react.default.createElement(_components.Products, {
|
|
229
230
|
data: promoOffers,
|
|
230
231
|
title: labels.promoOffers,
|
|
@@ -58,7 +58,7 @@ function ProductSEO() {
|
|
|
58
58
|
};
|
|
59
59
|
var formattedDescription = favorDescriptionTemplateOverMeta ? createTemplate(descriptionTemplate) : seoData.description || createTemplate(descriptionTemplate);
|
|
60
60
|
var formattedTitle = favorTitleTemplateOverMeta ? createTemplate(titleTemplate) : seoData.title || createTemplate(titleTemplate);
|
|
61
|
-
var productJSONLd = "{\n \"@context\": \"https://schema.org\",\n \"@type\": \"Product\",\n \"name\": \"".concat(formattedTitle, "\",\n \"image\": [").concat(generateImage(image), "],\n \"description\": \"").concat(formattedDescription, "\",\n \"sku\": \"").concat((selectedVariant === null || selectedVariant === void 0 ? void 0 : selectedVariant.sku) || '', "\",\n ").concat(brandName ? "\"brand\": {\n \"@type\": \"Brand\",\n \"name\": \"".concat(brandName, "\"\n },") : '', "\n ").concat(hasRating ? "\"aggregateRating\": {\n \"@type\": \"AggregateRating\",\n \"ratingValue\": \"".concat((ref13 = metaData.reviewRatingStatistics) === null || ref13 === void 0 ? void 0 : ref13.averageRating, "\",\n \"reviewCount\": \"").concat((ref14 = metaData.reviewRatingStatistics) === null || ref14 === void 0 ? void 0 : ref14.count, "\"\n },") : '', "\n \"offers\": {\n \"@type\": \"Offer\",\n \"priceCurrency\": \"").concat(currencyCode, "\",\n \"price\": \"").concat(price.value, "\",\n \"itemCondition\": \"").concat(itemCondition, "\",\n \"availability\": \"").concat(availability, "\"\n }\n }");
|
|
61
|
+
var productJSONLd = "{\n \"@context\": \"https://schema.org\",\n \"@type\": \"Product\",\n \"name\": \"".concat(formattedTitle.replaceAll('"', '″'), "\",\n \"image\": [").concat(generateImage(image), "],\n \"description\": \"").concat(formattedDescription.replaceAll('"', '″'), "\",\n \"sku\": \"").concat((selectedVariant === null || selectedVariant === void 0 ? void 0 : selectedVariant.sku) || '', "\",\n ").concat(brandName ? "\"brand\": {\n \"@type\": \"Brand\",\n \"name\": \"".concat(brandName, "\"\n },") : '', "\n ").concat(hasRating ? "\"aggregateRating\": {\n \"@type\": \"AggregateRating\",\n \"ratingValue\": \"".concat((ref13 = metaData.reviewRatingStatistics) === null || ref13 === void 0 ? void 0 : ref13.averageRating, "\",\n \"reviewCount\": \"").concat((ref14 = metaData.reviewRatingStatistics) === null || ref14 === void 0 ? void 0 : ref14.count, "\"\n },") : '', "\n \"offers\": {\n \"@type\": \"Offer\",\n \"priceCurrency\": \"").concat(currencyCode, "\",\n \"price\": \"").concat(price.value, "\",\n \"itemCondition\": \"").concat(itemCondition, "\",\n \"availability\": \"").concat(availability, "\"\n }\n }");
|
|
62
62
|
return(/*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_head.default, null, /*#__PURE__*/ _react.default.createElement("script", {
|
|
63
63
|
type: "application/ld+json",
|
|
64
64
|
dangerouslySetInnerHTML: (0, _utils).createDangerousMarkup(productJSONLd)
|
|
@@ -8,17 +8,18 @@ var _utils = require("../../../utils");
|
|
|
8
8
|
var processLoginPayload = function(data) {
|
|
9
9
|
var anonymous = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
|
|
10
10
|
var accessTokenExpires = data.expires;
|
|
11
|
-
var
|
|
11
|
+
var _refreshTokenExpires;
|
|
12
|
+
var refreshTokenExpires = (_refreshTokenExpires = data.refreshTokenExpires) !== null && _refreshTokenExpires !== void 0 ? _refreshTokenExpires : accessTokenExpires;
|
|
12
13
|
(0, _utils).writeToLocalStorage(_wishlistApi.WISHLIST_STORAGE_KEY, data.wishList);
|
|
13
14
|
(0, _utils).writeToLocalStorage(_myCartApi.BASKET_STORAGE_KEY, data.basket);
|
|
14
15
|
(0, _utils).setAccessToken(data.accessToken, anonymous, {
|
|
15
|
-
expires:
|
|
16
|
+
expires: new Date(accessTokenExpires)
|
|
16
17
|
});
|
|
17
18
|
(0, _utils).setExpiryToken(data.expires, {
|
|
18
|
-
expires:
|
|
19
|
+
expires: new Date(refreshTokenExpires)
|
|
19
20
|
});
|
|
20
21
|
(0, _utils).setRefreshToken(data.refreshToken, {
|
|
21
|
-
expires:
|
|
22
|
+
expires: new Date(refreshTokenExpires)
|
|
22
23
|
});
|
|
23
24
|
!anonymous && (0, _utils).removeAnonToken();
|
|
24
25
|
};
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -410,18 +410,6 @@ Object.keys(_transliterate).forEach(function(key) {
|
|
|
410
410
|
}
|
|
411
411
|
});
|
|
412
412
|
});
|
|
413
|
-
var _convertDateIntoRemainingDays = _interopRequireWildcard(require("./convertDateIntoRemainingDays"));
|
|
414
|
-
Object.keys(_convertDateIntoRemainingDays).forEach(function(key) {
|
|
415
|
-
if (key === "default" || key === "__esModule") return;
|
|
416
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
417
|
-
if (key in exports && exports[key] === _convertDateIntoRemainingDays[key]) return;
|
|
418
|
-
Object.defineProperty(exports, key, {
|
|
419
|
-
enumerable: true,
|
|
420
|
-
get: function() {
|
|
421
|
-
return _convertDateIntoRemainingDays[key];
|
|
422
|
-
}
|
|
423
|
-
});
|
|
424
|
-
});
|
|
425
413
|
var _prefetchSDKConfig = _interopRequireWildcard(require("./prefetchSDKConfig"));
|
|
426
414
|
Object.keys(_prefetchSDKConfig).forEach(function(key) {
|
|
427
415
|
if (key === "default" || key === "__esModule") return;
|
package/dist/cjs/utils/tokens.js
CHANGED
|
@@ -93,7 +93,7 @@ var setAccessToken = function(token, anonymous, options) {
|
|
|
93
93
|
};
|
|
94
94
|
exports.setAccessToken = setAccessToken;
|
|
95
95
|
var setRefreshToken = function(token, options) {
|
|
96
|
-
_jsCookie.default.set(REFRESH_TOKEN_KEY, token, options);
|
|
96
|
+
token && _jsCookie.default.set(REFRESH_TOKEN_KEY, token, options);
|
|
97
97
|
};
|
|
98
98
|
exports.setRefreshToken = setRefreshToken;
|
|
99
99
|
var setExpiryToken = function(timestamp, options) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import regeneratorRuntime from "regenerator-runtime";
|
|
2
|
-
import { Configuration, StoresAPI } from
|
|
2
|
+
import { Configuration, StoresAPI } from '@sentecacommerce/sdk';
|
|
3
3
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
4
4
|
try {
|
|
5
5
|
var info = gen[key](arg);
|
|
@@ -96,10 +96,10 @@ function _templateObject7() {
|
|
|
96
96
|
}
|
|
97
97
|
function _templateObject8() {
|
|
98
98
|
var data = _taggedTemplateLiteral([
|
|
99
|
-
"\n
|
|
100
|
-
";\n
|
|
101
|
-
"ms;\n
|
|
102
|
-
";\n
|
|
99
|
+
"\n width: 100%;\n height: 100vh;\n position: fixed;\n left: 0;\n top: 0;\n background-color: ",
|
|
100
|
+
";\n animation: ",
|
|
101
|
+
"ms;\n opacity: ",
|
|
102
|
+
";\n "
|
|
103
103
|
]);
|
|
104
104
|
_templateObject8 = function _templateObject8() {
|
|
105
105
|
return data;
|
|
@@ -108,8 +108,8 @@ function _templateObject8() {
|
|
|
108
108
|
}
|
|
109
109
|
function _templateObject9() {
|
|
110
110
|
var data = _taggedTemplateLiteral([
|
|
111
|
-
"\n",
|
|
112
|
-
";\n
|
|
111
|
+
"\n ",
|
|
112
|
+
";\n"
|
|
113
113
|
]);
|
|
114
114
|
_templateObject9 = function _templateObject9() {
|
|
115
115
|
return data;
|
|
@@ -95,8 +95,12 @@ export function genericOfficeValidation(param) {
|
|
|
95
95
|
}
|
|
96
96
|
export function pickupFromStoreValidation(param) {
|
|
97
97
|
var mod = param.mod, errorLabels = param.errorLabels;
|
|
98
|
-
var ref;
|
|
99
|
-
|
|
98
|
+
var ref, ref12;
|
|
99
|
+
// Returning undefined means validation is passed
|
|
100
|
+
if (mod === null || mod === void 0 ? void 0 : (ref = mod.moduleData) === null || ref === void 0 ? void 0 : ref.isWarehouseShipping) {
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
return !(mod === null || mod === void 0 ? void 0 : (ref12 = mod.moduleData) === null || ref12 === void 0 ? void 0 : ref12.stockLocation) ? {
|
|
100
104
|
pickupFromStore: errorLabels.noStoreSelected
|
|
101
105
|
} : undefined;
|
|
102
106
|
}
|
|
@@ -125,8 +129,8 @@ export function validateShipping(data, mod, errorLabels, validations) {
|
|
|
125
129
|
var requiredFields = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : defaultRequiredFields, enableNoShippingMethodMode = arguments.length > 5 ? arguments[5] : void 0;
|
|
126
130
|
var validateErrors = {};
|
|
127
131
|
var globalErrors = requiredFields.reduce(function(errors, field) {
|
|
128
|
-
var ref,
|
|
129
|
-
if (!(data === null || data === void 0 ? void 0 : (ref = data[field]) === null || ref === void 0 ? void 0 : (
|
|
132
|
+
var ref, ref14;
|
|
133
|
+
if (!(data === null || data === void 0 ? void 0 : (ref = data[field]) === null || ref === void 0 ? void 0 : (ref14 = ref.trim) === null || ref14 === void 0 ? void 0 : ref14.call(ref))) {
|
|
130
134
|
return _objectSpread({}, errors, _defineProperty({}, field, errorLabels.fieldIsRequired));
|
|
131
135
|
}
|
|
132
136
|
return errors;
|
|
@@ -138,13 +142,13 @@ export function validateShipping(data, mod, errorLabels, validations) {
|
|
|
138
142
|
globalErrors.phoneNumber = (errorLabels === null || errorLabels === void 0 ? void 0 : errorLabels.invalidPhoneNumber) || '';
|
|
139
143
|
}
|
|
140
144
|
if (!enableNoShippingMethodMode) {
|
|
141
|
-
var
|
|
142
|
-
if (!(mod === null || mod === void 0 ? void 0 : mod.moduleKey) || !(mod === null || mod === void 0 ? void 0 : (
|
|
145
|
+
var ref15, ref13;
|
|
146
|
+
if (!(mod === null || mod === void 0 ? void 0 : mod.moduleKey) || !(mod === null || mod === void 0 ? void 0 : (ref15 = mod.moduleData) === null || ref15 === void 0 ? void 0 : ref15.methodKey)) {
|
|
143
147
|
return _objectSpread({}, globalErrors, {
|
|
144
148
|
courier: errorLabels.selectCourier
|
|
145
149
|
});
|
|
146
150
|
}
|
|
147
|
-
var validate = (
|
|
151
|
+
var validate = (ref13 = validations[mod === null || mod === void 0 ? void 0 : mod.moduleKey]) === null || ref13 === void 0 ? void 0 : ref13[mod === null || mod === void 0 ? void 0 : mod.moduleData.methodKey];
|
|
148
152
|
if (!validate) {
|
|
149
153
|
throw new Error("Validation for shipping with provider: ".concat(mod === null || mod === void 0 ? void 0 : mod.moduleKey, " and method key: ").concat(mod === null || mod === void 0 ? void 0 : mod.moduleData.methodKey, " not found"));
|
|
150
154
|
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
function _arrayLikeToArray(arr, len) {
|
|
3
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
4
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
5
|
+
return arr2;
|
|
6
|
+
}
|
|
7
|
+
function _arrayWithHoles(arr) {
|
|
8
|
+
if (Array.isArray(arr)) return arr;
|
|
9
|
+
}
|
|
10
|
+
function _iterableToArrayLimit(arr, i) {
|
|
11
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
12
|
+
if (_i == null) return;
|
|
13
|
+
var _arr = [];
|
|
14
|
+
var _n = true;
|
|
15
|
+
var _d = false;
|
|
16
|
+
var _s, _e;
|
|
17
|
+
try {
|
|
18
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
19
|
+
_arr.push(_s.value);
|
|
20
|
+
if (i && _arr.length === i) break;
|
|
21
|
+
}
|
|
22
|
+
} catch (err) {
|
|
23
|
+
_d = true;
|
|
24
|
+
_e = err;
|
|
25
|
+
} finally{
|
|
26
|
+
try {
|
|
27
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
28
|
+
} finally{
|
|
29
|
+
if (_d) throw _e;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return _arr;
|
|
33
|
+
}
|
|
34
|
+
function _nonIterableRest() {
|
|
35
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
36
|
+
}
|
|
37
|
+
function _slicedToArray(arr, i) {
|
|
38
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
39
|
+
}
|
|
40
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
41
|
+
if (!o) return;
|
|
42
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
43
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
44
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
45
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
46
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
47
|
+
}
|
|
48
|
+
var CompareContextState = /*#__PURE__*/ React.createContext(undefined);
|
|
49
|
+
var CompareContextFunctions = /*#__PURE__*/ React.createContext(undefined);
|
|
50
|
+
export function CompareContextProvider(param) {
|
|
51
|
+
var children = param.children;
|
|
52
|
+
var ref = _slicedToArray(useState([]), 2), itemsToCompare = ref[0], setItemsToCompare = ref[1];
|
|
53
|
+
// notAllowedState is needed in order to trigger rerender in useEffect dependency on the client
|
|
54
|
+
// it allow us to know that we try to add more items than allowed
|
|
55
|
+
var ref1 = _slicedToArray(useState(0), 2), notAllowedState = ref1[0], setNotAllowedState = ref1[1];
|
|
56
|
+
var itemAlreadyAdded = function(id) {
|
|
57
|
+
return itemsToCompare.filter(function(i) {
|
|
58
|
+
return i._id === id;
|
|
59
|
+
}).length !== 0;
|
|
60
|
+
};
|
|
61
|
+
var addItemToCompare = function(item, maxItemLength) {
|
|
62
|
+
var alreadyAdded = itemAlreadyAdded(item._id);
|
|
63
|
+
if (alreadyAdded) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (itemsToCompare.length === maxItemLength) {
|
|
67
|
+
setNotAllowedState(notAllowedState + 1);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (itemsToCompare.length < maxItemLength) {
|
|
71
|
+
itemsToCompare.push(item);
|
|
72
|
+
setNotAllowedState(0);
|
|
73
|
+
setItemsToCompare(itemsToCompare);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
var removeComparedItem = function(id) {
|
|
77
|
+
var filtered = itemsToCompare.filter(function(i) {
|
|
78
|
+
return i._id !== id;
|
|
79
|
+
});
|
|
80
|
+
setItemsToCompare(filtered);
|
|
81
|
+
};
|
|
82
|
+
var removeAllComparedItems = function() {
|
|
83
|
+
return setItemsToCompare([]);
|
|
84
|
+
};
|
|
85
|
+
var notAllowed = function() {
|
|
86
|
+
return notAllowedState;
|
|
87
|
+
};
|
|
88
|
+
var functions = {
|
|
89
|
+
itemAlreadyAdded: itemAlreadyAdded,
|
|
90
|
+
addItemToCompare: addItemToCompare,
|
|
91
|
+
removeComparedItem: removeComparedItem,
|
|
92
|
+
removeAllComparedItems: removeAllComparedItems,
|
|
93
|
+
notAllowed: notAllowed
|
|
94
|
+
};
|
|
95
|
+
return(/*#__PURE__*/ React.createElement(CompareContextState.Provider, {
|
|
96
|
+
value: itemsToCompare
|
|
97
|
+
}, /*#__PURE__*/ React.createElement(CompareContextFunctions.Provider, {
|
|
98
|
+
value: functions
|
|
99
|
+
}, children)));
|
|
100
|
+
}
|
|
101
|
+
export function useCompareState() {
|
|
102
|
+
var context = React.useContext(CompareContextState);
|
|
103
|
+
if (context === undefined) {
|
|
104
|
+
throw new Error('CompareContextState must be used within a CompareContextProvider');
|
|
105
|
+
}
|
|
106
|
+
return context;
|
|
107
|
+
}
|
|
108
|
+
export function useCompareFunctions() {
|
|
109
|
+
var context = React.useContext(CompareContextFunctions);
|
|
110
|
+
if (context === undefined) {
|
|
111
|
+
throw new Error('CompareContextFunctions must be used within a CompareContextProvider');
|
|
112
|
+
}
|
|
113
|
+
return context;
|
|
114
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CompareContextProvider, useCompareState, useCompareFunctions } from './CompareContext';
|
|
@@ -31,13 +31,15 @@ export var useCheckoutShippingModule = function(orderQuery) {
|
|
|
31
31
|
var isEnabled = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
|
|
32
32
|
var cartData = orderQuery.data;
|
|
33
33
|
return useMemo(function() {
|
|
34
|
-
var ref;
|
|
34
|
+
var ref, ref1;
|
|
35
35
|
if (!isEnabled) return;
|
|
36
36
|
var shipping = cartData === null || cartData === void 0 ? void 0 : (ref = cartData.shippings) === null || ref === void 0 ? void 0 : ref[0];
|
|
37
37
|
return {
|
|
38
38
|
moduleKey: shipping === null || shipping === void 0 ? void 0 : shipping.moduleKey,
|
|
39
39
|
moduleData: _objectSpread({}, shipping === null || shipping === void 0 ? void 0 : shipping.moduleData, {
|
|
40
|
-
methodKey: shipping === null || shipping === void 0 ? void 0 : shipping.moduleMethodKey
|
|
40
|
+
methodKey: shipping === null || shipping === void 0 ? void 0 : shipping.moduleMethodKey,
|
|
41
|
+
// Special case of warehouse for christian of roma
|
|
42
|
+
isWarehouseShipping: (shipping === null || shipping === void 0 ? void 0 : shipping.moduleKey) === 'PickUpFromStore' && (shipping === null || shipping === void 0 ? void 0 : (ref1 = shipping.merchant) === null || ref1 === void 0 ? void 0 : ref1.resourceKey) === 'christian-of-roma'
|
|
41
43
|
})
|
|
42
44
|
};
|
|
43
45
|
}, [
|
package/dist/esm/index.js
CHANGED
|
@@ -93,6 +93,7 @@ export * from './hooks/useProgressBar';
|
|
|
93
93
|
export * from './hooks/useCatalogDiscounts';
|
|
94
94
|
export * from './hooks/useLocalRating';
|
|
95
95
|
export * from './hooks/useProductVariants/types';
|
|
96
|
+
export * from './hooks/CompareContext/';
|
|
96
97
|
// Utils
|
|
97
98
|
export * from './utils';
|
|
98
99
|
export * from './types';
|
|
@@ -22,7 +22,7 @@ function _templateObject() {
|
|
|
22
22
|
return data;
|
|
23
23
|
}
|
|
24
24
|
export var Products = function(param) {
|
|
25
|
-
var data = param.data, bottomMenu = param.bottomMenu, priceColor = param.priceColor, textColor = param.textColor, labelsColor = param.labelsColor, onClose = param.onClose, backgroundColor = param.backgroundColor, title = param.title, offers = param.offers, productSpacing = param.productSpacing;
|
|
25
|
+
var data = param.data, bottomMenu = param.bottomMenu, priceColor = param.priceColor, textColor = param.textColor, labelsColor = param.labelsColor, onClose = param.onClose, backgroundColor = param.backgroundColor, title = param.title, offers = param.offers, productSpacing = param.productSpacing, noResults = param.noResults;
|
|
26
26
|
return(/*#__PURE__*/ React.createElement(Container, {
|
|
27
27
|
backgroundColor: backgroundColor,
|
|
28
28
|
labelsColor: labelsColor,
|
|
@@ -43,6 +43,6 @@ export var Products = function(param) {
|
|
|
43
43
|
offers: offers,
|
|
44
44
|
productSpacing: productSpacing
|
|
45
45
|
}));
|
|
46
|
-
})) : /*#__PURE__*/ React.createElement(NoResultsDesc, null,
|
|
46
|
+
})) : /*#__PURE__*/ React.createElement(NoResultsDesc, null, noResults ? noResults : 'No results found')));
|
|
47
47
|
};
|
|
48
48
|
var NoResultsDesc = styled.p(_templateObject());
|
|
@@ -194,7 +194,8 @@ export var SearchBox = function(param) {
|
|
|
194
194
|
textColor: textColor,
|
|
195
195
|
onClose: onClose,
|
|
196
196
|
backgroundColor: backgroundColor,
|
|
197
|
-
productSpacing: productSpacing
|
|
197
|
+
productSpacing: productSpacing,
|
|
198
|
+
noResults: labels === null || labels === void 0 ? void 0 : labels.noResults
|
|
198
199
|
}), bottomMenu === BottomMenuEnum.promo && promoOffers && /*#__PURE__*/ React.createElement(Products, {
|
|
199
200
|
data: promoOffers,
|
|
200
201
|
title: labels.promoOffers,
|
|
@@ -48,7 +48,7 @@ export function ProductSEO() {
|
|
|
48
48
|
};
|
|
49
49
|
var formattedDescription = favorDescriptionTemplateOverMeta ? createTemplate(descriptionTemplate) : seoData.description || createTemplate(descriptionTemplate);
|
|
50
50
|
var formattedTitle = favorTitleTemplateOverMeta ? createTemplate(titleTemplate) : seoData.title || createTemplate(titleTemplate);
|
|
51
|
-
var productJSONLd = "{\n \"@context\": \"https://schema.org\",\n \"@type\": \"Product\",\n \"name\": \"".concat(formattedTitle, "\",\n \"image\": [").concat(generateImage(image), "],\n \"description\": \"").concat(formattedDescription, "\",\n \"sku\": \"").concat((selectedVariant === null || selectedVariant === void 0 ? void 0 : selectedVariant.sku) || '', "\",\n ").concat(brandName ? "\"brand\": {\n \"@type\": \"Brand\",\n \"name\": \"".concat(brandName, "\"\n },") : '', "\n ").concat(hasRating ? "\"aggregateRating\": {\n \"@type\": \"AggregateRating\",\n \"ratingValue\": \"".concat((ref13 = metaData.reviewRatingStatistics) === null || ref13 === void 0 ? void 0 : ref13.averageRating, "\",\n \"reviewCount\": \"").concat((ref14 = metaData.reviewRatingStatistics) === null || ref14 === void 0 ? void 0 : ref14.count, "\"\n },") : '', "\n \"offers\": {\n \"@type\": \"Offer\",\n \"priceCurrency\": \"").concat(currencyCode, "\",\n \"price\": \"").concat(price.value, "\",\n \"itemCondition\": \"").concat(itemCondition, "\",\n \"availability\": \"").concat(availability, "\"\n }\n }");
|
|
51
|
+
var productJSONLd = "{\n \"@context\": \"https://schema.org\",\n \"@type\": \"Product\",\n \"name\": \"".concat(formattedTitle.replaceAll('"', '″'), "\",\n \"image\": [").concat(generateImage(image), "],\n \"description\": \"").concat(formattedDescription.replaceAll('"', '″'), "\",\n \"sku\": \"").concat((selectedVariant === null || selectedVariant === void 0 ? void 0 : selectedVariant.sku) || '', "\",\n ").concat(brandName ? "\"brand\": {\n \"@type\": \"Brand\",\n \"name\": \"".concat(brandName, "\"\n },") : '', "\n ").concat(hasRating ? "\"aggregateRating\": {\n \"@type\": \"AggregateRating\",\n \"ratingValue\": \"".concat((ref13 = metaData.reviewRatingStatistics) === null || ref13 === void 0 ? void 0 : ref13.averageRating, "\",\n \"reviewCount\": \"").concat((ref14 = metaData.reviewRatingStatistics) === null || ref14 === void 0 ? void 0 : ref14.count, "\"\n },") : '', "\n \"offers\": {\n \"@type\": \"Offer\",\n \"priceCurrency\": \"").concat(currencyCode, "\",\n \"price\": \"").concat(price.value, "\",\n \"itemCondition\": \"").concat(itemCondition, "\",\n \"availability\": \"").concat(availability, "\"\n }\n }");
|
|
52
52
|
return(/*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Head, null, /*#__PURE__*/ React.createElement("script", {
|
|
53
53
|
type: "application/ld+json",
|
|
54
54
|
dangerouslySetInnerHTML: createDangerousMarkup(productJSONLd)
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { WISHLIST_STORAGE_KEY } from '../../../api/wishlistApi';
|
|
2
2
|
import { BASKET_STORAGE_KEY } from '../../../api/myCartApi';
|
|
3
|
-
import {
|
|
3
|
+
import { removeAnonToken, setAccessToken, setExpiryToken, setRefreshToken, writeToLocalStorage } from '../../../utils';
|
|
4
4
|
export var processLoginPayload = function(data) {
|
|
5
5
|
var anonymous = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
|
|
6
6
|
var accessTokenExpires = data.expires;
|
|
7
|
-
var
|
|
7
|
+
var _refreshTokenExpires;
|
|
8
|
+
var refreshTokenExpires = (_refreshTokenExpires = data.refreshTokenExpires) !== null && _refreshTokenExpires !== void 0 ? _refreshTokenExpires : accessTokenExpires;
|
|
8
9
|
writeToLocalStorage(WISHLIST_STORAGE_KEY, data.wishList);
|
|
9
10
|
writeToLocalStorage(BASKET_STORAGE_KEY, data.basket);
|
|
10
11
|
setAccessToken(data.accessToken, anonymous, {
|
|
11
|
-
expires:
|
|
12
|
+
expires: new Date(accessTokenExpires)
|
|
12
13
|
});
|
|
13
14
|
setExpiryToken(data.expires, {
|
|
14
|
-
expires:
|
|
15
|
+
expires: new Date(refreshTokenExpires)
|
|
15
16
|
});
|
|
16
17
|
setRefreshToken(data.refreshToken, {
|
|
17
|
-
expires:
|
|
18
|
+
expires: new Date(refreshTokenExpires)
|
|
18
19
|
});
|
|
19
20
|
!anonymous && removeAnonToken();
|
|
20
21
|
};
|
package/dist/esm/utils/index.js
CHANGED
package/dist/esm/utils/tokens.js
CHANGED
|
@@ -78,7 +78,7 @@ export var setAccessToken = function(token, anonymous, options) {
|
|
|
78
78
|
Cookies.set("".concat(tokenIdentifier), token, options);
|
|
79
79
|
};
|
|
80
80
|
export var setRefreshToken = function(token, options) {
|
|
81
|
-
Cookies.set(REFRESH_TOKEN_KEY, token, options);
|
|
81
|
+
token && Cookies.set(REFRESH_TOKEN_KEY, token, options);
|
|
82
82
|
};
|
|
83
83
|
export var setExpiryToken = function(timestamp, options) {
|
|
84
84
|
Cookies.set(TOKEN_EXPIRY_KEY, timestamp.toString(), options);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { useEffect } from
|
|
2
|
-
import { useBoolean } from
|
|
3
|
-
import { isInWebView } from
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useBoolean } from '../../hooks/ui-hooks';
|
|
3
|
+
import { isInWebView } from '../utils';
|
|
4
4
|
function _arrayLikeToArray(arr, len) {
|
|
5
5
|
if (len == null || len > arr.length) len = arr.length;
|
|
6
6
|
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SearchResultDTO, LineItemDTO } from '@sentecacommerce/sdk';
|
|
2
|
+
declare type CompareStateItemType = SearchResultDTO | LineItemDTO;
|
|
3
|
+
declare type CompareStateItemsType = SearchResultDTO[] | LineItemDTO[];
|
|
4
|
+
declare type CompareContextType = {
|
|
5
|
+
itemAlreadyAdded: (id: string) => boolean;
|
|
6
|
+
addItemToCompare: (item: CompareStateItemType, maxItemLength: number) => void;
|
|
7
|
+
removeComparedItem: (id: string) => void;
|
|
8
|
+
removeAllComparedItems: () => void;
|
|
9
|
+
notAllowed: () => number;
|
|
10
|
+
};
|
|
11
|
+
export declare function CompareContextProvider({ children }: {
|
|
12
|
+
children: any;
|
|
13
|
+
}): JSX.Element;
|
|
14
|
+
export declare function useCompareState(): CompareStateItemsType;
|
|
15
|
+
export declare function useCompareFunctions(): CompareContextType;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CompareContextProvider, useCompareState, useCompareFunctions, } from './CompareContext';
|
|
@@ -31,5 +31,8 @@ declare type UIFunctionsContextType = {
|
|
|
31
31
|
export declare function UIProvider({ children, displayNavbar, displaySidebar, customData, }: UIProviderProps): JSX.Element;
|
|
32
32
|
export declare function useUIState(): UIStateContextType;
|
|
33
33
|
export declare function useUIFunctions(): UIFunctionsContextType;
|
|
34
|
-
export declare function useCustomUI(): [
|
|
34
|
+
export declare function useCustomUI(): [
|
|
35
|
+
DefaultCustomUI,
|
|
36
|
+
(state: DefaultCustomUI) => void
|
|
37
|
+
];
|
|
35
38
|
export {};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -86,6 +86,7 @@ export * from './hooks/useProgressBar';
|
|
|
86
86
|
export * from './hooks/useCatalogDiscounts';
|
|
87
87
|
export * from './hooks/useLocalRating';
|
|
88
88
|
export * from './hooks/useProductVariants/types';
|
|
89
|
+
export * from './hooks/CompareContext/';
|
|
89
90
|
export * from './utils';
|
|
90
91
|
export * from './types';
|
|
91
92
|
export * from './seo';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BooleanField, NumberField, StringField } from '@sentecacommerce-theme/cms';
|
|
2
|
-
export declare const Products: ({ data, bottomMenu, priceColor, textColor, labelsColor, onClose, backgroundColor, title, offers, productSpacing, }: {
|
|
2
|
+
export declare const Products: ({ data, bottomMenu, priceColor, textColor, labelsColor, onClose, backgroundColor, title, offers, productSpacing, noResults, }: {
|
|
3
3
|
data?: any[] | undefined;
|
|
4
4
|
bottomMenu?: StringField;
|
|
5
5
|
priceColor?: StringField;
|
|
@@ -10,4 +10,5 @@ export declare const Products: ({ data, bottomMenu, priceColor, textColor, label
|
|
|
10
10
|
title?: StringField;
|
|
11
11
|
offers?: BooleanField;
|
|
12
12
|
productSpacing?: NumberField;
|
|
13
|
+
noResults?: StringField;
|
|
13
14
|
}) => JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const useResetPassword: ({ onSuccess, onError }: {
|
|
1
|
+
export declare const useResetPassword: ({ onSuccess, onError, }: {
|
|
2
2
|
onSuccess?: (() => void) | undefined;
|
|
3
3
|
onError?: (() => void) | undefined;
|
|
4
4
|
}) => import("react-query").MutationResultPair<import("@sentecacommerce/sdk").CustomerDTO, unknown, import("@sentecacommerce/sdk").PasswordResetDTO, unknown>;
|
|
@@ -1,17 +1,12 @@
|
|
|
1
|
+
import Cookies from 'js-cookie';
|
|
1
2
|
export declare const AUTH_TOKEN_KEY = "token";
|
|
2
3
|
export declare const ANONYMOUS_TOKEN_KEY = "anonymousToken";
|
|
3
4
|
export declare const TOKEN_EXPIRY_KEY = "tokenExpiry";
|
|
4
5
|
export declare const REFRESH_TOKEN_KEY = "refreshToken";
|
|
5
6
|
export declare const isTokenExpired: () => boolean;
|
|
6
|
-
export declare const setAccessToken: (token: string, anonymous: boolean, options?:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export declare const setRefreshToken: (token: string, options?: {
|
|
10
|
-
expires: number;
|
|
11
|
-
} | undefined) => void;
|
|
12
|
-
export declare const setExpiryToken: (timestamp: number, options?: {
|
|
13
|
-
expires: number;
|
|
14
|
-
} | undefined) => void;
|
|
7
|
+
export declare const setAccessToken: (token: string, anonymous: boolean, options?: Cookies.CookieAttributes | undefined) => void;
|
|
8
|
+
export declare const setRefreshToken: (token: string | undefined, options?: Cookies.CookieAttributes | undefined) => void;
|
|
9
|
+
export declare const setExpiryToken: (timestamp: number, options?: Cookies.CookieAttributes | undefined) => void;
|
|
15
10
|
export declare const getExpiryToken: () => string | undefined;
|
|
16
11
|
export declare const removeExpiryToken: () => void;
|
|
17
12
|
export declare const getRefreshToken: () => string | undefined;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentecacommerce-theme/lib",
|
|
3
3
|
"sideEffects": false,
|
|
4
|
-
"version": "0.14.
|
|
4
|
+
"version": "0.14.12",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
7
7
|
"types": "dist/types/index.d.ts",
|
|
@@ -31,13 +31,13 @@
|
|
|
31
31
|
"watch:cjs": "swc src --out-dir dist/cjs -w",
|
|
32
32
|
"watch:esm": "swc src --out-dir dist/esm --no-swcrc -w"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "3bec8f769a02fbb65c6e9b1da3ed43fd99b448d9",
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"react-query": "^2.26.2"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@sentecacommerce-theme/base": "^0.14.
|
|
40
|
-
"@sentecacommerce-theme/cms": "^0.14.
|
|
39
|
+
"@sentecacommerce-theme/base": "^0.14.12",
|
|
40
|
+
"@sentecacommerce-theme/cms": "^0.14.12",
|
|
41
41
|
"@sentecacommerce/sdk": "2.0.175",
|
|
42
42
|
"body-scroll-lock": "^3.1.5",
|
|
43
43
|
"copy-to-clipboard": "^3.3.1",
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, "__esModule", {
|
|
2
|
-
value: true
|
|
3
|
-
});
|
|
4
|
-
exports.convertDateIntoRemainingDays = void 0;
|
|
5
|
-
var convertDateIntoRemainingDays = function(date1, date2) {
|
|
6
|
-
var differenceInTime = date2.getTime() - date1.getTime();
|
|
7
|
-
var differenceInDays = differenceInTime / (1000 * 3600 * 24);
|
|
8
|
-
return Math.floor(differenceInDays);
|
|
9
|
-
};
|
|
10
|
-
exports.convertDateIntoRemainingDays = convertDateIntoRemainingDays;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const convertDateIntoRemainingDays: (date1: Date, date2: Date) => number;
|