@sentecacommerce-theme/lib 0.13.1 → 0.13.2
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/dist/cjs/analytics/Pixel/mainScript.js +2 -1
- package/dist/cjs/api/getSDKConfig.js +4 -2
- package/dist/cjs/api/myCartApi/index.js +8 -2
- package/dist/cjs/basket/api/mutations/index.js +14 -0
- package/dist/cjs/basket/api/mutations/useChangeGiftVariant.js +116 -0
- package/dist/cjs/basket/hooks/index.js +12 -0
- package/dist/cjs/basket/hooks/useChangeGiftVariant.js +16 -0
- package/dist/cjs/config/SentecaProvider.js +3 -1
- package/dist/cjs/hooks/useAggregateResult/index.js +5 -1
- package/dist/cjs/hooks/useAvailability/index.js +1 -1
- package/dist/cjs/hooks/useClearAllFilters/index.js +2 -0
- package/dist/cjs/hooks/useProduct/index.js +36 -26
- package/dist/cjs/hooks/wishlist-hooks/useWishlistItem/index.js +39 -15
- package/dist/cjs/listing/api/queries/useListingQuery.js +1 -1
- package/dist/cjs/listing/hooks/useListingBreadcrumbs.js +20 -8
- package/dist/cjs/listing/hooks/useListingCategories.js +2 -2
- package/dist/cjs/listing/hooks/useListingFilters.js +7 -1
- package/dist/cjs/listing/hooks/useListingMeta.js +51 -40
- package/dist/cjs/listing/hooks/useSlideFilter.js +27 -4
- package/dist/cjs/listing/ssr/prefetchCategories.js +5 -6
- package/dist/cjs/listing/ssr/prefetchPredicate.js +4 -4
- package/dist/cjs/listing/utils/buildCategoryQuery.js +22 -1
- package/dist/cjs/navigation/components/SearchBox/Components/EmptyBox/index.js +7 -7
- package/dist/cjs/navigation/components/SearchBox/index.js +4 -4
- package/dist/cjs/seo/components/TranslationsMeta/index.js +43 -14
- package/dist/cjs/seo/components/index.js +12 -0
- package/dist/cjs/seo/hooks/useSeoTranslations.js +55 -14
- package/dist/cjs/ui/components/GridStyles.js +2 -2
- package/dist/cjs/ui/components/RangeSliderInput.js +14 -1
- package/dist/cjs/user/api/queries/useGetMyLoyaltyCardQuery.js +49 -3
- package/dist/cjs/utils/getLocaleFromPath.js +13 -0
- package/dist/cjs/utils/getSelectedFilters.js +3 -1
- package/dist/cjs/utils/index.js +12 -0
- package/dist/cjs/utils/isTouchDevice.js +2 -1
- package/dist/cjs/utils/localStorage.js +7 -2
- package/dist/esm/analytics/Pixel/mainScript.js +2 -1
- package/dist/esm/api/getSDKConfig.js +5 -3
- package/dist/esm/api/myCartApi/index.js +8 -2
- package/dist/esm/basket/api/mutations/index.js +1 -0
- package/dist/esm/basket/api/mutations/useChangeGiftVariant.js +106 -0
- package/dist/esm/basket/hooks/index.js +1 -0
- package/dist/esm/basket/hooks/useChangeGiftVariant.js +3 -0
- package/dist/esm/config/SentecaProvider.js +3 -1
- package/dist/esm/hooks/useAggregateResult/index.js +5 -1
- package/dist/esm/hooks/useAvailability/index.js +1 -1
- package/dist/esm/hooks/useClearAllFilters/index.js +2 -0
- package/dist/esm/hooks/useProduct/index.js +28 -18
- package/dist/esm/hooks/wishlist-hooks/useWishlistItem/index.js +21 -13
- package/dist/esm/listing/api/queries/useListingQuery.js +1 -1
- package/dist/esm/listing/hooks/useListingBreadcrumbs.js +15 -3
- package/dist/esm/listing/hooks/useListingCategories.js +2 -2
- package/dist/esm/listing/hooks/useListingFilters.js +7 -1
- package/dist/esm/listing/hooks/useListingMeta.js +51 -42
- package/dist/esm/listing/hooks/useSlideFilter.js +27 -4
- package/dist/esm/listing/ssr/prefetchCategories.js +6 -7
- package/dist/esm/listing/ssr/prefetchPredicate.js +4 -4
- package/dist/esm/listing/utils/buildCategoryQuery.js +22 -1
- package/dist/esm/navigation/components/SearchBox/Components/EmptyBox/index.js +7 -7
- package/dist/esm/navigation/components/SearchBox/index.js +4 -4
- package/dist/esm/seo/components/TranslationsMeta/index.js +43 -14
- package/dist/esm/seo/components/index.js +1 -0
- package/dist/esm/seo/hooks/useSeoTranslations.js +55 -14
- package/dist/esm/ui/components/GridStyles.js +2 -2
- package/dist/esm/ui/components/RangeSliderInput.js +14 -1
- package/dist/esm/user/api/queries/useGetMyLoyaltyCardQuery.js +44 -3
- package/dist/esm/utils/getLocaleFromPath.js +8 -0
- package/dist/esm/utils/getSelectedFilters.js +3 -1
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/isTouchDevice.js +2 -1
- package/dist/esm/utils/localStorage.js +7 -2
- package/dist/types/basket/api/mutations/index.d.ts +1 -0
- package/dist/types/basket/api/mutations/useChangeGiftVariant.d.ts +2 -0
- package/dist/types/basket/hooks/index.d.ts +1 -0
- package/dist/types/basket/hooks/useChangeGiftVariant.d.ts +2 -0
- package/dist/types/hooks/basket-hooks/useBasketLineItem/index.d.ts +1 -2
- package/dist/types/hooks/useProduct/index.d.ts +2 -1
- package/dist/types/listing/hooks/useListingMeta.d.ts +4 -0
- package/dist/types/listing/hooks/useSlideFilter.d.ts +4 -0
- package/dist/types/listing/types.d.ts +10 -0
- package/dist/types/navigation/components/SearchBox/Components/EmptyBox/index.d.ts +5 -4
- package/dist/types/navigation/components/SearchBox/index.d.ts +7 -6
- package/dist/types/seo/components/TranslationsMeta/index.d.ts +1 -0
- package/dist/types/seo/components/index.d.ts +1 -0
- package/dist/types/seo/hooks/useSeoTranslations.d.ts +5 -3
- package/dist/types/ui/components/GridStyles.d.ts +2 -1
- package/dist/types/ui/components/RangeSliderInput.d.ts +2 -1
- package/dist/types/utils/getLocaleFromPath.d.ts +1 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/package.json +2 -2
@@ -148,7 +148,7 @@ var RangeSlideClasses = {
|
|
148
148
|
};
|
149
149
|
exports.RangeSlideClasses = RangeSlideClasses;
|
150
150
|
var RangeSliderInput = function(param) {
|
151
|
-
var defaultValue = param.defaultValue, onChange = param.onChange, _min = param.min, min = _min === void 0 ? 0 : _min, _max = param.max, max = _max === void 0 ? 100 : _max, _step = param.step, step = _step === void 0 ? 1 : _step;
|
151
|
+
var defaultValue = param.defaultValue, onChange = param.onChange, onSlide = param.onSlide, _min = param.min, min = _min === void 0 ? 0 : _min, _max = param.max, max = _max === void 0 ? 100 : _max, _step = param.step, step = _step === void 0 ? 1 : _step;
|
152
152
|
var ref1 = _slicedToArray((0, _react).useState(defaultValue), 2), value = ref1[0], setValue = ref1[1];
|
153
153
|
var inputLeftRef = _react.default.useRef(null);
|
154
154
|
var inputRightRef = _react.default.useRef(null);
|
@@ -161,6 +161,17 @@ var RangeSliderInput = function(param) {
|
|
161
161
|
}, [
|
162
162
|
defaultValue
|
163
163
|
]);
|
164
|
+
var onSlideGeneric = function() {
|
165
|
+
var inputLeft = inputLeftRef.current;
|
166
|
+
var inputRight = inputRightRef.current;
|
167
|
+
if (!inputLeft || !inputRight) return;
|
168
|
+
var leftValue = Math.min(Number(inputLeft.value), Number(inputRight.value) - 1);
|
169
|
+
var rightValue = Math.max(Number(inputRight.value), Number(inputLeft.value) + 1);
|
170
|
+
onSlide === null || onSlide === void 0 ? void 0 : onSlide({
|
171
|
+
left: leftValue,
|
172
|
+
right: rightValue
|
173
|
+
});
|
174
|
+
};
|
164
175
|
var updateLeftValue = (0, _react).useCallback(function() {
|
165
176
|
var inputLeft = inputLeftRef.current;
|
166
177
|
var inputRight = inputRightRef.current;
|
@@ -169,6 +180,7 @@ var RangeSliderInput = function(param) {
|
|
169
180
|
setValue(_objectSpread({}, value, {
|
170
181
|
left: leftValue
|
171
182
|
}));
|
183
|
+
onSlideGeneric();
|
172
184
|
}, [
|
173
185
|
setValue,
|
174
186
|
value
|
@@ -181,6 +193,7 @@ var RangeSliderInput = function(param) {
|
|
181
193
|
setValue(_objectSpread({}, value, {
|
182
194
|
right: rightValue
|
183
195
|
}));
|
196
|
+
onSlideGeneric();
|
184
197
|
}, [
|
185
198
|
setValue,
|
186
199
|
value
|
@@ -2,12 +2,58 @@ Object.defineProperty(exports, "__esModule", {
|
|
2
2
|
value: true
|
3
3
|
});
|
4
4
|
exports.useGetMyLoyaltyCardQuery = void 0;
|
5
|
+
var _regeneratorRuntime = _interopRequireDefault(require("regenerator-runtime"));
|
5
6
|
var _sdk = require("@sentecacommerce/sdk");
|
6
7
|
var _reactQuery = require("react-query");
|
8
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
9
|
+
try {
|
10
|
+
var info = gen[key](arg);
|
11
|
+
var value = info.value;
|
12
|
+
} catch (error) {
|
13
|
+
reject(error);
|
14
|
+
return;
|
15
|
+
}
|
16
|
+
if (info.done) {
|
17
|
+
resolve(value);
|
18
|
+
} else {
|
19
|
+
Promise.resolve(value).then(_next, _throw);
|
20
|
+
}
|
21
|
+
}
|
22
|
+
function _asyncToGenerator(fn) {
|
23
|
+
return function() {
|
24
|
+
var self = this, args = arguments;
|
25
|
+
return new Promise(function(resolve, reject) {
|
26
|
+
var gen = fn.apply(self, args);
|
27
|
+
function _next(value) {
|
28
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
29
|
+
}
|
30
|
+
function _throw(err) {
|
31
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
32
|
+
}
|
33
|
+
_next(undefined);
|
34
|
+
});
|
35
|
+
};
|
36
|
+
}
|
37
|
+
function _interopRequireDefault(obj) {
|
38
|
+
return obj && obj.__esModule ? obj : {
|
39
|
+
default: obj
|
40
|
+
};
|
41
|
+
}
|
7
42
|
var useGetMyLoyaltyCardQuery = function(callback) {
|
8
|
-
return (0, _reactQuery).useQuery('get-loyalty-card-key', function() {
|
9
|
-
return (
|
10
|
-
|
43
|
+
return (0, _reactQuery).useQuery('get-loyalty-card-key', _asyncToGenerator(_regeneratorRuntime.default.mark(function _callee() {
|
44
|
+
return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
|
45
|
+
while(1)switch(_ctx.prev = _ctx.next){
|
46
|
+
case 0:
|
47
|
+
return _ctx.abrupt("return", (0, _sdk).MyWalletGetByType('loyalty-program'));
|
48
|
+
case 1:
|
49
|
+
case "end":
|
50
|
+
return _ctx.stop();
|
51
|
+
}
|
52
|
+
}, _callee);
|
53
|
+
})), {
|
54
|
+
refetchOnMount: false,
|
55
|
+
refetchOnWindowFocus: false,
|
56
|
+
retry: false,
|
11
57
|
onSuccess: function() {
|
12
58
|
var ref;
|
13
59
|
return callback === null || callback === void 0 ? void 0 : (ref = callback.onSuccess) === null || ref === void 0 ? void 0 : ref.call(callback);
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
2
|
+
value: true
|
3
|
+
});
|
4
|
+
exports.getLocaleFromPath = void 0;
|
5
|
+
var _canUseDom = require("./canUseDom");
|
6
|
+
var getLocaleFromPath = function() {
|
7
|
+
if (!(0, _canUseDom).canUseDOM()) return '';
|
8
|
+
var locale = window.location.pathname.split('/')[1] || '';
|
9
|
+
// the allowed standards: bg bg-BG, en en-US/en-UK
|
10
|
+
if (locale.length !== 2 && locale.length !== 5) return '';
|
11
|
+
return locale;
|
12
|
+
};
|
13
|
+
exports.getLocaleFromPath = getLocaleFromPath;
|
@@ -99,7 +99,9 @@ var getSelectedFilters = function(router, slug, data, config) {
|
|
99
99
|
aggType: key,
|
100
100
|
aggKey: "".concat(valueFrom, ",").concat(valueTo),
|
101
101
|
aggOperator: _listing.filtersOperatorsMap.stats
|
102
|
-
}, true, router)
|
102
|
+
}, true, router), undefined, {
|
103
|
+
shallow: true
|
104
|
+
});
|
103
105
|
},
|
104
106
|
selected: true,
|
105
107
|
data: _objectSpread({}, data.raw, {
|
package/dist/cjs/utils/index.js
CHANGED
@@ -170,6 +170,18 @@ Object.keys(_adjustColor).forEach(function(key) {
|
|
170
170
|
}
|
171
171
|
});
|
172
172
|
});
|
173
|
+
var _getLocaleFromPath = _interopRequireWildcard(require("./getLocaleFromPath"));
|
174
|
+
Object.keys(_getLocaleFromPath).forEach(function(key) {
|
175
|
+
if (key === "default" || key === "__esModule") return;
|
176
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
177
|
+
if (key in exports && exports[key] === _getLocaleFromPath[key]) return;
|
178
|
+
Object.defineProperty(exports, key, {
|
179
|
+
enumerable: true,
|
180
|
+
get: function() {
|
181
|
+
return _getLocaleFromPath[key];
|
182
|
+
}
|
183
|
+
});
|
184
|
+
});
|
173
185
|
var _calcDiscount = _interopRequireWildcard(require("./calcDiscount"));
|
174
186
|
Object.keys(_calcDiscount).forEach(function(key) {
|
175
187
|
if (key === "default" || key === "__esModule") return;
|
@@ -2,6 +2,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
2
2
|
value: true
|
3
3
|
});
|
4
4
|
exports.isTouchDevice = isTouchDevice;
|
5
|
+
var _canUseDom = require("./canUseDom");
|
5
6
|
function isTouchDevice() {
|
6
|
-
return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;
|
7
|
+
return (0, _canUseDom).canUseDOM() && ('ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0);
|
7
8
|
}
|
@@ -4,12 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
exports.writeToLocalStorage = exports.readFromLocalStorage = void 0;
|
5
5
|
var readFromLocalStorage = function(key) {
|
6
6
|
if (typeof window !== 'undefined') {
|
7
|
-
|
7
|
+
try {
|
8
|
+
return JSON.parse(localStorage.getItem(key));
|
9
|
+
} catch (e) {
|
10
|
+
console.log(e);
|
11
|
+
return null;
|
12
|
+
}
|
8
13
|
}
|
9
14
|
};
|
10
15
|
exports.readFromLocalStorage = readFromLocalStorage;
|
11
16
|
var writeToLocalStorage = function(key, data) {
|
12
|
-
if (typeof window !== 'undefined') {
|
17
|
+
if (typeof window !== 'undefined' && data !== undefined) {
|
13
18
|
localStorage.setItem(key, JSON.stringify(data));
|
14
19
|
}
|
15
20
|
};
|
@@ -246,7 +246,8 @@ function _objectSpread(target) {
|
|
246
246
|
mode: 'cors',
|
247
247
|
cache: 'no-cache',
|
248
248
|
headers: {
|
249
|
-
'Content-Type': 'application/json'
|
249
|
+
'Content-Type': 'application/json',
|
250
|
+
'senteca-locale': global.location.pathname.split('/')[1] || ''
|
250
251
|
},
|
251
252
|
body: JSON.stringify(payload)
|
252
253
|
});
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Configuration, HttpClient } from '@sentecacommerce/sdk';
|
2
2
|
import Cookies from 'js-cookie';
|
3
|
-
import { ANONYMOUS_TOKEN_KEY, AUTH_TOKEN_KEY } from '../utils';
|
3
|
+
import { ANONYMOUS_TOKEN_KEY, AUTH_TOKEN_KEY, getLocaleFromPath, canUseDOM } from '../utils';
|
4
4
|
function _defineProperty(obj, key, value) {
|
5
5
|
if (key in obj) {
|
6
6
|
Object.defineProperty(obj, key, {
|
@@ -35,13 +35,15 @@ export var getSDKConfig = function() {
|
|
35
35
|
var defaultConfig = getOptions(options);
|
36
36
|
var headers = ((ref = HttpClient.defaultConfig) === null || ref === void 0 ? void 0 : ref.options.headers) || (defaultConfig === null || defaultConfig === void 0 ? void 0 : defaultConfig.headers) || {};
|
37
37
|
var config = new Configuration(_objectSpread({}, ((ref1 = HttpClient.defaultConfig) === null || ref1 === void 0 ? void 0 : ref1.options) || defaultConfig, options, {
|
38
|
-
headers: _objectSpread({}, headers, options.headers || {}
|
38
|
+
headers: _objectSpread({}, headers, options.headers || {}, {
|
39
|
+
'senteca-locale': getLocaleFromPath()
|
40
|
+
})
|
39
41
|
}));
|
40
42
|
return config;
|
41
43
|
};
|
42
44
|
export var getOptions = function() {
|
43
45
|
var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
44
|
-
if (
|
46
|
+
if (!canUseDOM()) {
|
45
47
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
46
48
|
var nodeFetch = require('node-fetch');
|
47
49
|
var ref;
|
@@ -6,6 +6,7 @@ import { readFromLocalStorage, writeToLocalStorage, getTranslatableField } from
|
|
6
6
|
import { getSDKConfig } from '../getSDKConfig';
|
7
7
|
import { syncResponse, getLineItemId, onMutate } from './utils';
|
8
8
|
import { queryKey as promoCodeQueryKey } from '../../api.v2/core/misc/promo-code';
|
9
|
+
import { useIsAuthenticated } from '../..';
|
9
10
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
10
11
|
try {
|
11
12
|
var info = gen[key](arg);
|
@@ -110,6 +111,7 @@ export var MyCartApiFactory = function() {
|
|
110
111
|
}(),
|
111
112
|
useGet: function() {
|
112
113
|
var queryCache = useQueryCache();
|
114
|
+
var isLoading = useIsAuthenticated().isLoading;
|
113
115
|
return useQuery(myCartCacheKeys.useGet, _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|
114
116
|
var data;
|
115
117
|
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
@@ -128,12 +130,14 @@ export var MyCartApiFactory = function() {
|
|
128
130
|
}
|
129
131
|
}, _callee);
|
130
132
|
})), {
|
133
|
+
enabled: !isLoading,
|
131
134
|
retry: false,
|
132
|
-
refetchOnMount:
|
135
|
+
refetchOnMount: true,
|
133
136
|
refetchOnWindowFocus: false
|
134
137
|
});
|
135
138
|
},
|
136
139
|
useGetCompact: function() {
|
140
|
+
var isLoading = useIsAuthenticated().isLoading;
|
137
141
|
return useQuery(myCartCacheKeys.useGetCompact, _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|
138
142
|
var compactBasket;
|
139
143
|
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
@@ -146,7 +150,9 @@ export var MyCartApiFactory = function() {
|
|
146
150
|
return _ctx.stop();
|
147
151
|
}
|
148
152
|
}, _callee);
|
149
|
-
}))
|
153
|
+
})), {
|
154
|
+
enabled: !isLoading
|
155
|
+
});
|
150
156
|
},
|
151
157
|
useIsExisting: function(productId, variantId, collapseKey) {
|
152
158
|
return useQuery([
|
@@ -0,0 +1,106 @@
|
|
1
|
+
import regeneratorRuntime from "regenerator-runtime";
|
2
|
+
import React from 'react';
|
3
|
+
import { useMutation } from 'react-query';
|
4
|
+
import { MyCartChangeSelectableGiftLineItemVariant } from '@sentecacommerce/sdk';
|
5
|
+
import { useReplaceBasket } from '../../index';
|
6
|
+
function _arrayLikeToArray(arr, len) {
|
7
|
+
if (len == null || len > arr.length) len = arr.length;
|
8
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
9
|
+
return arr2;
|
10
|
+
}
|
11
|
+
function _arrayWithHoles(arr) {
|
12
|
+
if (Array.isArray(arr)) return arr;
|
13
|
+
}
|
14
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
15
|
+
try {
|
16
|
+
var info = gen[key](arg);
|
17
|
+
var value = info.value;
|
18
|
+
} catch (error) {
|
19
|
+
reject(error);
|
20
|
+
return;
|
21
|
+
}
|
22
|
+
if (info.done) {
|
23
|
+
resolve(value);
|
24
|
+
} else {
|
25
|
+
Promise.resolve(value).then(_next, _throw);
|
26
|
+
}
|
27
|
+
}
|
28
|
+
function _asyncToGenerator(fn) {
|
29
|
+
return function() {
|
30
|
+
var self = this, args = arguments;
|
31
|
+
return new Promise(function(resolve, reject) {
|
32
|
+
var gen = fn.apply(self, args);
|
33
|
+
function _next(value) {
|
34
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
35
|
+
}
|
36
|
+
function _throw(err) {
|
37
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
38
|
+
}
|
39
|
+
_next(undefined);
|
40
|
+
});
|
41
|
+
};
|
42
|
+
}
|
43
|
+
function _iterableToArrayLimit(arr, i) {
|
44
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
45
|
+
if (_i == null) return;
|
46
|
+
var _arr = [];
|
47
|
+
var _n = true;
|
48
|
+
var _d = false;
|
49
|
+
var _s, _e;
|
50
|
+
try {
|
51
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
52
|
+
_arr.push(_s.value);
|
53
|
+
if (i && _arr.length === i) break;
|
54
|
+
}
|
55
|
+
} catch (err) {
|
56
|
+
_d = true;
|
57
|
+
_e = err;
|
58
|
+
} finally{
|
59
|
+
try {
|
60
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
61
|
+
} finally{
|
62
|
+
if (_d) throw _e;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
return _arr;
|
66
|
+
}
|
67
|
+
function _nonIterableRest() {
|
68
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
69
|
+
}
|
70
|
+
function _slicedToArray(arr, i) {
|
71
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
72
|
+
}
|
73
|
+
function _unsupportedIterableToArray(o, minLen) {
|
74
|
+
if (!o) return;
|
75
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
76
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
77
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
78
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
79
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
80
|
+
}
|
81
|
+
export var useChangeGiftVariantMutation = function() {
|
82
|
+
var ref = _slicedToArray(useReplaceBasket(), 1), replaceBasket = ref[0];
|
83
|
+
return useMutation(function() {
|
84
|
+
var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee(props) {
|
85
|
+
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
86
|
+
while(1)switch(_ctx.prev = _ctx.next){
|
87
|
+
case 0:
|
88
|
+
_ctx.next = 2;
|
89
|
+
return MyCartChangeSelectableGiftLineItemVariant(props);
|
90
|
+
case 2:
|
91
|
+
return _ctx.abrupt("return", _ctx.sent);
|
92
|
+
case 3:
|
93
|
+
case "end":
|
94
|
+
return _ctx.stop();
|
95
|
+
}
|
96
|
+
}, _callee);
|
97
|
+
}));
|
98
|
+
return function(props) {
|
99
|
+
return _ref.apply(this, arguments);
|
100
|
+
};
|
101
|
+
}(), {
|
102
|
+
onSuccess: function(data) {
|
103
|
+
return replaceBasket(data);
|
104
|
+
}
|
105
|
+
});
|
106
|
+
};
|
@@ -4,6 +4,7 @@ import fetch from 'node-fetch';
|
|
4
4
|
import { getOptions } from '../api/getSDKConfig';
|
5
5
|
import { ReactQueryConfigProvider, useQueryCache } from 'react-query';
|
6
6
|
import { removeAnonToken, removeAuthToken } from '../utils/tokens';
|
7
|
+
import { getLocaleFromPath } from '../utils';
|
7
8
|
import { useRouter } from 'next/router';
|
8
9
|
function _defineProperty(obj, key, value) {
|
9
10
|
if (key in obj) {
|
@@ -42,7 +43,8 @@ export function SentecaProvider(param) {
|
|
42
43
|
if (localeData) {
|
43
44
|
options.headers = _objectSpread({}, options.headers || {}, {
|
44
45
|
InterfaceKey: localeData.interfaceKey,
|
45
|
-
StoreKey: localeData.storeKey
|
46
|
+
StoreKey: localeData.storeKey,
|
47
|
+
'senteca-locale': getLocaleFromPath()
|
46
48
|
});
|
47
49
|
}
|
48
50
|
HttpClient.defaultConfig = new Configuration(options);
|
@@ -87,7 +87,9 @@ export var useAggregateResult = function(type, aggregates, slug, predicate, quer
|
|
87
87
|
aggType: a.filterDefinition,
|
88
88
|
aggKey: filterKey,
|
89
89
|
aggOperator: operatorMap[a.aggregationType]
|
90
|
-
}, selected, router)
|
90
|
+
}, selected, router), undefined, {
|
91
|
+
shallow: true
|
92
|
+
});
|
91
93
|
}
|
92
94
|
},
|
93
95
|
]);
|
@@ -104,6 +106,8 @@ export var useAggregateResult = function(type, aggregates, slug, predicate, quer
|
|
104
106
|
query: _objectSpread({}, router.query, {
|
105
107
|
filter: filterByType(router.query.filter, a.filterDefinition)
|
106
108
|
})
|
109
|
+
}, undefined, {
|
110
|
+
shallow: true
|
107
111
|
});
|
108
112
|
},
|
109
113
|
type: a.aggregationType
|
@@ -65,7 +65,7 @@ export var useAvailability = function(param) {
|
|
65
65
|
setStatus(ProductQuantityStatusEnum.OutOfStock);
|
66
66
|
return;
|
67
67
|
}
|
68
|
-
if (
|
68
|
+
if (quantity - (quantityInBasket || 0) < 1) {
|
69
69
|
setStatus(ProductQuantityStatusEnum.MaxQuantityReached);
|
70
70
|
return;
|
71
71
|
}
|
@@ -92,7 +92,7 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
92
92
|
var ProductStateContext = /*#__PURE__*/ React.createContext(undefined);
|
93
93
|
var CountDispatchContext = /*#__PURE__*/ React.createContext(undefined);
|
94
94
|
export function ProductProvider(param) {
|
95
|
-
var product = param.product, children = param.children, defaultVariantId = param.defaultVariantId;
|
95
|
+
var product = param.product, children = param.children, defaultVariantId = param.defaultVariantId, _includeBrandInName = param.includeBrandInName, includeBrandInName = _includeBrandInName === void 0 ? false : _includeBrandInName;
|
96
96
|
var getVariantsWithInventory = function getVariantsWithInventory() {
|
97
97
|
var ref9;
|
98
98
|
var variantsWithInventory = product === null || product === void 0 ? void 0 : (ref9 = product.variants) === null || ref9 === void 0 ? void 0 : ref9.reduce(function(map, _, index, arr) {
|
@@ -221,16 +221,26 @@ export function ProductProvider(param) {
|
|
221
221
|
return variants === null || variants === void 0 ? void 0 : variants[id];
|
222
222
|
};
|
223
223
|
var getVariantByCombination = function getVariantByCombination(key, value) {
|
224
|
-
var
|
225
|
-
var
|
226
|
-
|
224
|
+
var ref11;
|
225
|
+
var split = value === null || value === void 0 ? void 0 : value.split(':');
|
226
|
+
if ((split === null || split === void 0 ? void 0 : split[0]) === 'collapseKey') {
|
227
|
+
var id = Object.keys(variants).find(function(el) {
|
228
|
+
var ref;
|
229
|
+
return variants[el].collapseKey === (split === null || split === void 0 ? void 0 : split[1]) && ((ref = variants[el].attributes.find(function(attr) {
|
230
|
+
return attr.name === 'size';
|
231
|
+
})) === null || ref === void 0 ? void 0 : ref.value) === key;
|
232
|
+
});
|
233
|
+
return variants[id];
|
234
|
+
}
|
235
|
+
var id3 = (ref11 = combinations[key]) === null || ref11 === void 0 ? void 0 : ref11.params[value];
|
236
|
+
return variants === null || variants === void 0 ? void 0 : variants[id3];
|
227
237
|
};
|
228
238
|
var getCustomFieldValue = function getCustomFieldValue(field) {
|
229
239
|
return customFields === null || customFields === void 0 ? void 0 : customFields[field];
|
230
240
|
};
|
231
241
|
var getCombinationsForAttributeRule = function getCombinationsForAttributeRule(key, id) {
|
232
|
-
var ref,
|
233
|
-
var result = attributeRules === null || attributeRules === void 0 ? void 0 : (ref = attributeRules[key]) === null || ref === void 0 ? void 0 : (
|
242
|
+
var ref, ref12;
|
243
|
+
var result = attributeRules === null || attributeRules === void 0 ? void 0 : (ref = attributeRules[key]) === null || ref === void 0 ? void 0 : (ref12 = ref.values) === null || ref12 === void 0 ? void 0 : ref12[id];
|
234
244
|
return result;
|
235
245
|
};
|
236
246
|
var ref5 = _slicedToArray(React.useState(false), 2), mounted = ref5[0], setMounted = ref5[1];
|
@@ -238,34 +248,34 @@ export function ProductProvider(param) {
|
|
238
248
|
var ref3 = _slicedToArray(React.useState(getVariantsWithInventory), 2), variants = ref3[0], setVariants = ref3[1];
|
239
249
|
var ref4 = _slicedToArray(React.useState(getDefaultVariant), 2), selectedVariant = ref4[0], setSelectedVariant = ref4[1];
|
240
250
|
var metaData = React.useMemo(function() {
|
241
|
-
var ref,
|
251
|
+
var ref, ref13, ref14, ref15, ref16, ref17, ref18, ref19, ref20, ref21, ref22, ref23, ref24, ref25, ref26, ref27, ref28, ref29, ref30, ref31, ref32, ref33, ref34, ref35, ref36, ref37, ref38, ref39, ref40, ref41, ref42, ref43, ref44, ref45, ref46, ref47, ref48, ref49;
|
242
252
|
var rootCategory = product === null || product === void 0 ? void 0 : (ref = product.categories) === null || ref === void 0 ? void 0 : ref[0];
|
243
253
|
var rootCategoryId = rootCategory === null || rootCategory === void 0 ? void 0 : rootCategory.resourceId;
|
244
254
|
var metaObj = {
|
245
255
|
_id: product === null || product === void 0 ? void 0 : product._id,
|
246
|
-
name: getTranslatableField(selectedVariant === null || selectedVariant === void 0 ? void 0 : selectedVariant.name) || getTranslatableField(product === null || product === void 0 ? void 0 : product.name),
|
256
|
+
name: includeBrandInName && (product === null || product === void 0 ? void 0 : (ref13 = product.brands) === null || ref13 === void 0 ? void 0 : (ref14 = ref13[0]) === null || ref14 === void 0 ? void 0 : (ref15 = ref14.resource) === null || ref15 === void 0 ? void 0 : ref15.name) ? "".concat(getTranslatableField(product === null || product === void 0 ? void 0 : (ref16 = product.brands) === null || ref16 === void 0 ? void 0 : (ref17 = ref16[0]) === null || ref17 === void 0 ? void 0 : (ref18 = ref17.resource) === null || ref18 === void 0 ? void 0 : ref18.name), " ").concat(getTranslatableField(selectedVariant === null || selectedVariant === void 0 ? void 0 : selectedVariant.name) || getTranslatableField(product === null || product === void 0 ? void 0 : product.name)) : getTranslatableField(selectedVariant === null || selectedVariant === void 0 ? void 0 : selectedVariant.name) || getTranslatableField(product === null || product === void 0 ? void 0 : product.name),
|
247
257
|
slug: getTranslatableField(product === null || product === void 0 ? void 0 : product.slug),
|
248
258
|
description: getTranslatableField(selectedVariant === null || selectedVariant === void 0 ? void 0 : selectedVariant.description) || getTranslatableField(product === null || product === void 0 ? void 0 : product.description),
|
249
259
|
shortDescription: getTranslatableField(selectedVariant === null || selectedVariant === void 0 ? void 0 : selectedVariant.metaDescription) || getTranslatableField(product === null || product === void 0 ? void 0 : product.metaDescription),
|
250
260
|
brand: {
|
251
|
-
_id: product === null || product === void 0 ? void 0 : (
|
252
|
-
name: getTranslatableField(product === null || product === void 0 ? void 0 : (
|
253
|
-
slug: getTranslatableField(product === null || product === void 0 ? void 0 : (
|
254
|
-
logo: product === null || product === void 0 ? void 0 : (
|
261
|
+
_id: product === null || product === void 0 ? void 0 : (ref19 = product.brands) === null || ref19 === void 0 ? void 0 : (ref20 = ref19[0]) === null || ref20 === void 0 ? void 0 : ref20.resourceId,
|
262
|
+
name: getTranslatableField(product === null || product === void 0 ? void 0 : (ref21 = product.brands) === null || ref21 === void 0 ? void 0 : (ref22 = ref21[0]) === null || ref22 === void 0 ? void 0 : (ref23 = ref22.resource) === null || ref23 === void 0 ? void 0 : ref23.name),
|
263
|
+
slug: getTranslatableField(product === null || product === void 0 ? void 0 : (ref24 = product.brands) === null || ref24 === void 0 ? void 0 : (ref25 = ref24[0]) === null || ref25 === void 0 ? void 0 : (ref26 = ref25.resource) === null || ref26 === void 0 ? void 0 : ref26.slug),
|
264
|
+
logo: product === null || product === void 0 ? void 0 : (ref27 = product.brands) === null || ref27 === void 0 ? void 0 : (ref28 = ref27[0]) === null || ref28 === void 0 ? void 0 : (ref29 = ref28.resource) === null || ref29 === void 0 ? void 0 : (ref30 = ref29.assets) === null || ref30 === void 0 ? void 0 : (ref31 = ref30[0]) === null || ref31 === void 0 ? void 0 : (ref32 = ref31.sources) === null || ref32 === void 0 ? void 0 : (ref33 = ref32[0]) === null || ref33 === void 0 ? void 0 : ref33.url
|
255
265
|
},
|
256
266
|
category: {
|
257
|
-
_id: product === null || product === void 0 ? void 0 : (
|
258
|
-
name: getTranslatableField(product === null || product === void 0 ? void 0 : (
|
259
|
-
slug: getTranslatableField(product === null || product === void 0 ? void 0 : (
|
267
|
+
_id: product === null || product === void 0 ? void 0 : (ref35 = product.categories) === null || ref35 === void 0 ? void 0 : (ref36 = ref35[(product === null || product === void 0 ? void 0 : (ref34 = product.categories) === null || ref34 === void 0 ? void 0 : ref34.length) - 1]) === null || ref36 === void 0 ? void 0 : ref36.resourceId,
|
268
|
+
name: getTranslatableField(product === null || product === void 0 ? void 0 : (ref38 = product.categories) === null || ref38 === void 0 ? void 0 : (ref39 = ref38[(product === null || product === void 0 ? void 0 : (ref37 = product.categories) === null || ref37 === void 0 ? void 0 : ref37.length) - 1]) === null || ref39 === void 0 ? void 0 : (ref40 = ref39.resource) === null || ref40 === void 0 ? void 0 : ref40.name),
|
269
|
+
slug: getTranslatableField(product === null || product === void 0 ? void 0 : (ref42 = product.categories) === null || ref42 === void 0 ? void 0 : (ref43 = ref42[(product === null || product === void 0 ? void 0 : (ref41 = product.categories) === null || ref41 === void 0 ? void 0 : ref41.length) - 1]) === null || ref43 === void 0 ? void 0 : (ref44 = ref43.resource) === null || ref44 === void 0 ? void 0 : ref44.slug)
|
260
270
|
},
|
261
271
|
rootCategory: {
|
262
272
|
_id: rootCategoryId,
|
263
|
-
name: getTranslatableField(rootCategory === null || rootCategory === void 0 ? void 0 : (
|
264
|
-
slug: getTranslatableField(rootCategory === null || rootCategory === void 0 ? void 0 : (
|
273
|
+
name: getTranslatableField(rootCategory === null || rootCategory === void 0 ? void 0 : (ref45 = rootCategory.resource) === null || ref45 === void 0 ? void 0 : ref45.name),
|
274
|
+
slug: getTranslatableField(rootCategory === null || rootCategory === void 0 ? void 0 : (ref46 = rootCategory.resource) === null || ref46 === void 0 ? void 0 : ref46.slug)
|
265
275
|
},
|
266
276
|
categories: formatCategories(product === null || product === void 0 ? void 0 : product.categories, rootCategoryId),
|
267
277
|
reviewRatingStatistics: product === null || product === void 0 ? void 0 : product.reviewRatingStatistics,
|
268
|
-
content: Boolean(selectedVariant === null || selectedVariant === void 0 ? void 0 : (
|
278
|
+
content: Boolean(selectedVariant === null || selectedVariant === void 0 ? void 0 : (ref47 = selectedVariant.content) === null || ref47 === void 0 ? void 0 : ref47.map(createProductContent).length) ? selectedVariant === null || selectedVariant === void 0 ? void 0 : (ref48 = selectedVariant.content) === null || ref48 === void 0 ? void 0 : ref48.map(createProductContent) : product === null || product === void 0 ? void 0 : (ref49 = product.content) === null || ref49 === void 0 ? void 0 : ref49.map(createProductContent),
|
269
279
|
assets: assetsFieldsToMap(product === null || product === void 0 ? void 0 : product.assets)
|
270
280
|
};
|
271
281
|
return metaObj;
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { wishlistApi } from '../../../';
|
1
|
+
import React, { useEffect } from 'react';
|
2
|
+
import { useBoolean, wishlistApi } from '../../../';
|
3
3
|
import { usePrefetchProduct, getTranslatableField } from '../../../';
|
4
|
-
import {
|
4
|
+
import { createMappedAttributes } from '../../basket-hooks/useBasketLineItem/utils';
|
5
5
|
import { customFieldsToMap } from '../../../utils';
|
6
6
|
function _arrayLikeToArray(arr, len) {
|
7
7
|
if (len == null || len > arr.length) len = arr.length;
|
@@ -51,15 +51,19 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
51
51
|
}
|
52
52
|
export var useWishlistItem = function(props) {
|
53
53
|
var ref16;
|
54
|
-
var
|
54
|
+
var item = props.item, expiry = props.expiry;
|
55
|
+
var ref1 = _slicedToArray(useBoolean(false), 2), isExpired = ref1[0], setIsExpired = ref1[1];
|
55
56
|
var ref2 = _slicedToArray(wishlistApi.useSync(), 1), syncWishlist = ref2[0];
|
56
57
|
var ref3 = usePrefetchProduct(getTranslatableField(props === null || props === void 0 ? void 0 : (ref16 = props.item) === null || ref16 === void 0 ? void 0 : ref16.productSlug)), onMouseDown = ref3.onMouseDown, onMouseEnter = ref3.onMouseEnter, onMouseLeave = ref3.onMouseLeave;
|
58
|
+
useEffect(function() {
|
59
|
+
if (expiry) {
|
60
|
+
if (Date.now() > expiry + (item === null || item === void 0 ? void 0 : item.snapshotFrom)) {
|
61
|
+
setIsExpired.on();
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}, []);
|
57
65
|
var data = React.useMemo(function() {
|
58
66
|
var ref, ref4, ref5, ref6, ref7, ref8, ref9, ref10, ref11, ref12, ref13, ref14, ref15;
|
59
|
-
var item = props.item;
|
60
|
-
if (props.expiry && getTimeStamp(props.expiry) < (item === null || item === void 0 ? void 0 : item.snapshotFrom)) {
|
61
|
-
setIsExpired(true);
|
62
|
-
}
|
63
67
|
var offer = item === null || item === void 0 ? void 0 : (ref = item.productVariant) === null || ref === void 0 ? void 0 : ref.offer;
|
64
68
|
var mappedAttributes = createMappedAttributes(item === null || item === void 0 ? void 0 : (ref4 = item.productVariant) === null || ref4 === void 0 ? void 0 : ref4.attributes) || {};
|
65
69
|
var mappedCustomField = customFieldsToMap(item.custom);
|
@@ -99,11 +103,15 @@ export var useWishlistItem = function(props) {
|
|
99
103
|
}
|
100
104
|
};
|
101
105
|
}, [
|
102
|
-
|
106
|
+
item
|
107
|
+
]);
|
108
|
+
useEffect(function() {
|
109
|
+
if (isExpired) {
|
110
|
+
syncWishlist();
|
111
|
+
setIsExpired.off();
|
112
|
+
}
|
113
|
+
}, [
|
114
|
+
isExpired
|
103
115
|
]);
|
104
|
-
if (isExpired) {
|
105
|
-
syncWishlist();
|
106
|
-
setIsExpired(false);
|
107
|
-
}
|
108
116
|
return data;
|
109
117
|
};
|
@@ -126,7 +126,7 @@ export var useListingQuery = function() {
|
|
126
126
|
predicate: predicate,
|
127
127
|
sort: sort,
|
128
128
|
postFilter: postFilter,
|
129
|
-
slug:
|
129
|
+
slug: aliasedSlug,
|
130
130
|
offset: offset
|
131
131
|
});
|
132
132
|
return useQuery(queryKeys, _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|