@sentecacommerce-theme/lib 0.14.10 → 0.14.11
Sign up to get free protection for your applications and to get access to all the features.
- 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/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/useCheckoutShippingModule/index.js +4 -2
- package/dist/esm/index.js +1 -0
- package/dist/types/hooks/CompareContext/CompareContext.d.ts +16 -0
- package/dist/types/hooks/CompareContext/index.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +4 -4
@@ -104,8 +104,12 @@ function genericOfficeValidation(param) {
|
|
104
104
|
}
|
105
105
|
function pickupFromStoreValidation(param) {
|
106
106
|
var mod = param.mod, errorLabels = param.errorLabels;
|
107
|
-
var ref;
|
108
|
-
|
107
|
+
var ref, ref12;
|
108
|
+
// Returning undefined means validation is passed
|
109
|
+
if (mod === null || mod === void 0 ? void 0 : (ref = mod.moduleData) === null || ref === void 0 ? void 0 : ref.isWarehouseShipping) {
|
110
|
+
return undefined;
|
111
|
+
}
|
112
|
+
return !(mod === null || mod === void 0 ? void 0 : (ref12 = mod.moduleData) === null || ref12 === void 0 ? void 0 : ref12.stockLocation) ? {
|
109
113
|
pickupFromStore: errorLabels.noStoreSelected
|
110
114
|
} : undefined;
|
111
115
|
}
|
@@ -135,8 +139,8 @@ function validateShipping(data, mod, errorLabels, validations) {
|
|
135
139
|
var requiredFields = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : defaultRequiredFields, enableNoShippingMethodMode = arguments.length > 5 ? arguments[5] : void 0;
|
136
140
|
var validateErrors = {};
|
137
141
|
var globalErrors = requiredFields.reduce(function(errors, field) {
|
138
|
-
var ref,
|
139
|
-
if (!(data === null || data === void 0 ? void 0 : (ref = data[field]) === null || ref === void 0 ? void 0 : (
|
142
|
+
var ref, ref14;
|
143
|
+
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))) {
|
140
144
|
return _objectSpread({}, errors, _defineProperty({}, field, errorLabels.fieldIsRequired));
|
141
145
|
}
|
142
146
|
return errors;
|
@@ -148,13 +152,13 @@ function validateShipping(data, mod, errorLabels, validations) {
|
|
148
152
|
globalErrors.phoneNumber = (errorLabels === null || errorLabels === void 0 ? void 0 : errorLabels.invalidPhoneNumber) || '';
|
149
153
|
}
|
150
154
|
if (!enableNoShippingMethodMode) {
|
151
|
-
var
|
152
|
-
if (!(mod === null || mod === void 0 ? void 0 : mod.moduleKey) || !(mod === null || mod === void 0 ? void 0 : (
|
155
|
+
var ref15, ref13;
|
156
|
+
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)) {
|
153
157
|
return _objectSpread({}, globalErrors, {
|
154
158
|
courier: errorLabels.selectCourier
|
155
159
|
});
|
156
160
|
}
|
157
|
-
var validate = (
|
161
|
+
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];
|
158
162
|
if (!validate) {
|
159
163
|
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"));
|
160
164
|
}
|
@@ -0,0 +1,141 @@
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
2
|
+
value: true
|
3
|
+
});
|
4
|
+
exports.CompareContextProvider = CompareContextProvider;
|
5
|
+
exports.useCompareState = useCompareState;
|
6
|
+
exports.useCompareFunctions = useCompareFunctions;
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
8
|
+
function _arrayLikeToArray(arr, len) {
|
9
|
+
if (len == null || len > arr.length) len = arr.length;
|
10
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
11
|
+
return arr2;
|
12
|
+
}
|
13
|
+
function _arrayWithHoles(arr) {
|
14
|
+
if (Array.isArray(arr)) return arr;
|
15
|
+
}
|
16
|
+
function _interopRequireWildcard(obj) {
|
17
|
+
if (obj && obj.__esModule) {
|
18
|
+
return obj;
|
19
|
+
} else {
|
20
|
+
var newObj = {};
|
21
|
+
if (obj != null) {
|
22
|
+
for(var key in obj){
|
23
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
24
|
+
var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
|
25
|
+
if (desc.get || desc.set) {
|
26
|
+
Object.defineProperty(newObj, key, desc);
|
27
|
+
} else {
|
28
|
+
newObj[key] = obj[key];
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
newObj.default = obj;
|
34
|
+
return newObj;
|
35
|
+
}
|
36
|
+
}
|
37
|
+
function _iterableToArrayLimit(arr, i) {
|
38
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
39
|
+
if (_i == null) return;
|
40
|
+
var _arr = [];
|
41
|
+
var _n = true;
|
42
|
+
var _d = false;
|
43
|
+
var _s, _e;
|
44
|
+
try {
|
45
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
46
|
+
_arr.push(_s.value);
|
47
|
+
if (i && _arr.length === i) break;
|
48
|
+
}
|
49
|
+
} catch (err) {
|
50
|
+
_d = true;
|
51
|
+
_e = err;
|
52
|
+
} finally{
|
53
|
+
try {
|
54
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
55
|
+
} finally{
|
56
|
+
if (_d) throw _e;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
return _arr;
|
60
|
+
}
|
61
|
+
function _nonIterableRest() {
|
62
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
63
|
+
}
|
64
|
+
function _slicedToArray(arr, i) {
|
65
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
66
|
+
}
|
67
|
+
function _unsupportedIterableToArray(o, minLen) {
|
68
|
+
if (!o) return;
|
69
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
70
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
71
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
72
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
73
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
74
|
+
}
|
75
|
+
var CompareContextState = /*#__PURE__*/ _react.default.createContext(undefined);
|
76
|
+
var CompareContextFunctions = /*#__PURE__*/ _react.default.createContext(undefined);
|
77
|
+
function CompareContextProvider(param) {
|
78
|
+
var children = param.children;
|
79
|
+
var ref = _slicedToArray((0, _react).useState([]), 2), itemsToCompare = ref[0], setItemsToCompare = ref[1];
|
80
|
+
// notAllowedState is needed in order to trigger rerender in useEffect dependency on the client
|
81
|
+
// it allow us to know that we try to add more items than allowed
|
82
|
+
var ref1 = _slicedToArray((0, _react).useState(0), 2), notAllowedState = ref1[0], setNotAllowedState = ref1[1];
|
83
|
+
var itemAlreadyAdded = function(id) {
|
84
|
+
return itemsToCompare.filter(function(i) {
|
85
|
+
return i._id === id;
|
86
|
+
}).length !== 0;
|
87
|
+
};
|
88
|
+
var addItemToCompare = function(item, maxItemLength) {
|
89
|
+
var alreadyAdded = itemAlreadyAdded(item._id);
|
90
|
+
if (alreadyAdded) {
|
91
|
+
return;
|
92
|
+
}
|
93
|
+
if (itemsToCompare.length === maxItemLength) {
|
94
|
+
setNotAllowedState(notAllowedState + 1);
|
95
|
+
return;
|
96
|
+
}
|
97
|
+
if (itemsToCompare.length < maxItemLength) {
|
98
|
+
itemsToCompare.push(item);
|
99
|
+
setNotAllowedState(0);
|
100
|
+
setItemsToCompare(itemsToCompare);
|
101
|
+
}
|
102
|
+
};
|
103
|
+
var removeComparedItem = function(id) {
|
104
|
+
var filtered = itemsToCompare.filter(function(i) {
|
105
|
+
return i._id !== id;
|
106
|
+
});
|
107
|
+
setItemsToCompare(filtered);
|
108
|
+
};
|
109
|
+
var removeAllComparedItems = function() {
|
110
|
+
return setItemsToCompare([]);
|
111
|
+
};
|
112
|
+
var notAllowed = function() {
|
113
|
+
return notAllowedState;
|
114
|
+
};
|
115
|
+
var functions = {
|
116
|
+
itemAlreadyAdded: itemAlreadyAdded,
|
117
|
+
addItemToCompare: addItemToCompare,
|
118
|
+
removeComparedItem: removeComparedItem,
|
119
|
+
removeAllComparedItems: removeAllComparedItems,
|
120
|
+
notAllowed: notAllowed
|
121
|
+
};
|
122
|
+
return(/*#__PURE__*/ _react.default.createElement(CompareContextState.Provider, {
|
123
|
+
value: itemsToCompare
|
124
|
+
}, /*#__PURE__*/ _react.default.createElement(CompareContextFunctions.Provider, {
|
125
|
+
value: functions
|
126
|
+
}, children)));
|
127
|
+
}
|
128
|
+
function useCompareState() {
|
129
|
+
var context = _react.default.useContext(CompareContextState);
|
130
|
+
if (context === undefined) {
|
131
|
+
throw new Error('CompareContextState must be used within a CompareContextProvider');
|
132
|
+
}
|
133
|
+
return context;
|
134
|
+
}
|
135
|
+
function useCompareFunctions() {
|
136
|
+
var context = _react.default.useContext(CompareContextFunctions);
|
137
|
+
if (context === undefined) {
|
138
|
+
throw new Error('CompareContextFunctions must be used within a CompareContextProvider');
|
139
|
+
}
|
140
|
+
return context;
|
141
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
2
|
+
value: true
|
3
|
+
});
|
4
|
+
Object.defineProperty(exports, "CompareContextProvider", {
|
5
|
+
enumerable: true,
|
6
|
+
get: function() {
|
7
|
+
return _compareContext.CompareContextProvider;
|
8
|
+
}
|
9
|
+
});
|
10
|
+
Object.defineProperty(exports, "useCompareState", {
|
11
|
+
enumerable: true,
|
12
|
+
get: function() {
|
13
|
+
return _compareContext.useCompareState;
|
14
|
+
}
|
15
|
+
});
|
16
|
+
Object.defineProperty(exports, "useCompareFunctions", {
|
17
|
+
enumerable: true,
|
18
|
+
get: function() {
|
19
|
+
return _compareContext.useCompareFunctions;
|
20
|
+
}
|
21
|
+
});
|
22
|
+
var _compareContext = require("./CompareContext");
|
@@ -35,13 +35,15 @@ var useCheckoutShippingModule = function(orderQuery) {
|
|
35
35
|
var isEnabled = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
|
36
36
|
var cartData = orderQuery.data;
|
37
37
|
return (0, _react).useMemo(function() {
|
38
|
-
var ref;
|
38
|
+
var ref, ref1;
|
39
39
|
if (!isEnabled) return;
|
40
40
|
var shipping = cartData === null || cartData === void 0 ? void 0 : (ref = cartData.shippings) === null || ref === void 0 ? void 0 : ref[0];
|
41
41
|
return {
|
42
42
|
moduleKey: shipping === null || shipping === void 0 ? void 0 : shipping.moduleKey,
|
43
43
|
moduleData: _objectSpread({}, shipping === null || shipping === void 0 ? void 0 : shipping.moduleData, {
|
44
|
-
methodKey: shipping === null || shipping === void 0 ? void 0 : shipping.moduleMethodKey
|
44
|
+
methodKey: shipping === null || shipping === void 0 ? void 0 : shipping.moduleMethodKey,
|
45
|
+
// Special case of warehouse for christian of roma
|
46
|
+
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'
|
45
47
|
})
|
46
48
|
};
|
47
49
|
}, [
|
package/dist/cjs/index.js
CHANGED
@@ -1058,6 +1058,18 @@ Object.keys(_types).forEach(function(key) {
|
|
1058
1058
|
}
|
1059
1059
|
});
|
1060
1060
|
});
|
1061
|
+
var _ = _interopRequireWildcard(require("./hooks/CompareContext/"));
|
1062
|
+
Object.keys(_).forEach(function(key) {
|
1063
|
+
if (key === "default" || key === "__esModule") return;
|
1064
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
1065
|
+
if (key in exports && exports[key] === _[key]) return;
|
1066
|
+
Object.defineProperty(exports, key, {
|
1067
|
+
enumerable: true,
|
1068
|
+
get: function() {
|
1069
|
+
return _[key];
|
1070
|
+
}
|
1071
|
+
});
|
1072
|
+
});
|
1061
1073
|
var _utils1 = _interopRequireWildcard(require("./utils"));
|
1062
1074
|
Object.keys(_utils1).forEach(function(key) {
|
1063
1075
|
if (key === "default" || key === "__esModule") return;
|
@@ -1214,15 +1226,15 @@ Object.keys(_misc).forEach(function(key) {
|
|
1214
1226
|
}
|
1215
1227
|
});
|
1216
1228
|
});
|
1217
|
-
var
|
1218
|
-
Object.keys(
|
1229
|
+
var _1 = _interopRequireWildcard(require("./ssr/"));
|
1230
|
+
Object.keys(_1).forEach(function(key) {
|
1219
1231
|
if (key === "default" || key === "__esModule") return;
|
1220
1232
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
1221
|
-
if (key in exports && exports[key] ===
|
1233
|
+
if (key in exports && exports[key] === _1[key]) return;
|
1222
1234
|
Object.defineProperty(exports, key, {
|
1223
1235
|
enumerable: true,
|
1224
1236
|
get: function() {
|
1225
|
-
return
|
1237
|
+
return _1[key];
|
1226
1238
|
}
|
1227
1239
|
});
|
1228
1240
|
});
|
@@ -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';
|
@@ -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';
|
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';
|
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.11",
|
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": "9f85ecb7a9f320e4ba8a0d73bd34747c45e9ec33",
|
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.11",
|
40
|
+
"@sentecacommerce-theme/cms": "^0.14.11",
|
41
41
|
"@sentecacommerce/sdk": "2.0.175",
|
42
42
|
"body-scroll-lock": "^3.1.5",
|
43
43
|
"copy-to-clipboard": "^3.3.1",
|