@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
@@ -158,7 +158,8 @@ function _objectSpread(target) {
|
|
158
158
|
mode: 'cors',
|
159
159
|
cache: 'no-cache',
|
160
160
|
headers: {
|
161
|
-
'Content-Type': 'application/json'
|
161
|
+
'Content-Type': 'application/json',
|
162
|
+
'senteca-locale': global.location.pathname.split('/')[1] || ''
|
162
163
|
},
|
163
164
|
body: JSON.stringify(payload)
|
164
165
|
});
|
@@ -44,14 +44,16 @@ var getSDKConfig = function() {
|
|
44
44
|
var defaultConfig = getOptions(options);
|
45
45
|
var headers = ((ref = _sdk.HttpClient.defaultConfig) === null || ref === void 0 ? void 0 : ref.options.headers) || (defaultConfig === null || defaultConfig === void 0 ? void 0 : defaultConfig.headers) || {};
|
46
46
|
var config = new _sdk.Configuration(_objectSpread({}, ((ref1 = _sdk.HttpClient.defaultConfig) === null || ref1 === void 0 ? void 0 : ref1.options) || defaultConfig, options, {
|
47
|
-
headers: _objectSpread({}, headers, options.headers || {}
|
47
|
+
headers: _objectSpread({}, headers, options.headers || {}, {
|
48
|
+
'senteca-locale': (0, _utils).getLocaleFromPath()
|
49
|
+
})
|
48
50
|
}));
|
49
51
|
return config;
|
50
52
|
};
|
51
53
|
exports.getSDKConfig = getSDKConfig;
|
52
54
|
var getOptions = function() {
|
53
55
|
var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
54
|
-
if (
|
56
|
+
if (!(0, _utils).canUseDOM()) {
|
55
57
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
56
58
|
var nodeFetch = require('node-fetch');
|
57
59
|
var ref;
|
@@ -10,6 +10,7 @@ var _utils = require("../../utils");
|
|
10
10
|
var _getSDKConfig = require("../getSDKConfig");
|
11
11
|
var _utils1 = require("./utils");
|
12
12
|
var _promoCode = require("../../api.v2/core/misc/promo-code");
|
13
|
+
var _ = require("../..");
|
13
14
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
14
15
|
try {
|
15
16
|
var info = gen[key](arg);
|
@@ -122,6 +123,7 @@ var MyCartApiFactory = function() {
|
|
122
123
|
}(),
|
123
124
|
useGet: function() {
|
124
125
|
var queryCache = (0, _reactQuery).useQueryCache();
|
126
|
+
var isLoading = (0, _).useIsAuthenticated().isLoading;
|
125
127
|
return (0, _reactQuery).useQuery(myCartCacheKeys.useGet, _asyncToGenerator(_regeneratorRuntime.default.mark(function _callee() {
|
126
128
|
var data;
|
127
129
|
return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
|
@@ -140,12 +142,14 @@ var MyCartApiFactory = function() {
|
|
140
142
|
}
|
141
143
|
}, _callee);
|
142
144
|
})), {
|
145
|
+
enabled: !isLoading,
|
143
146
|
retry: false,
|
144
|
-
refetchOnMount:
|
147
|
+
refetchOnMount: true,
|
145
148
|
refetchOnWindowFocus: false
|
146
149
|
});
|
147
150
|
},
|
148
151
|
useGetCompact: function() {
|
152
|
+
var isLoading = (0, _).useIsAuthenticated().isLoading;
|
149
153
|
return (0, _reactQuery).useQuery(myCartCacheKeys.useGetCompact, _asyncToGenerator(_regeneratorRuntime.default.mark(function _callee() {
|
150
154
|
var compactBasket;
|
151
155
|
return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
|
@@ -158,7 +162,9 @@ var MyCartApiFactory = function() {
|
|
158
162
|
return _ctx.stop();
|
159
163
|
}
|
160
164
|
}, _callee);
|
161
|
-
}))
|
165
|
+
})), {
|
166
|
+
enabled: !isLoading
|
167
|
+
});
|
162
168
|
},
|
163
169
|
useIsExisting: function(productId, variantId, collapseKey) {
|
164
170
|
return (0, _reactQuery).useQuery([
|
@@ -1,9 +1,11 @@
|
|
1
1
|
Object.defineProperty(exports, "__esModule", {
|
2
2
|
value: true
|
3
3
|
});
|
4
|
+
var _exportNames = {};
|
4
5
|
var _useReplaceBasketMutation = _interopRequireWildcard(require("./useReplaceBasketMutation"));
|
5
6
|
Object.keys(_useReplaceBasketMutation).forEach(function(key) {
|
6
7
|
if (key === "default" || key === "__esModule") return;
|
8
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
7
9
|
if (key in exports && exports[key] === _useReplaceBasketMutation[key]) return;
|
8
10
|
Object.defineProperty(exports, key, {
|
9
11
|
enumerable: true,
|
@@ -12,6 +14,18 @@ Object.keys(_useReplaceBasketMutation).forEach(function(key) {
|
|
12
14
|
}
|
13
15
|
});
|
14
16
|
});
|
17
|
+
var _useChangeGiftVariant = _interopRequireWildcard(require("./useChangeGiftVariant"));
|
18
|
+
Object.keys(_useChangeGiftVariant).forEach(function(key) {
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
20
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
21
|
+
if (key in exports && exports[key] === _useChangeGiftVariant[key]) return;
|
22
|
+
Object.defineProperty(exports, key, {
|
23
|
+
enumerable: true,
|
24
|
+
get: function() {
|
25
|
+
return _useChangeGiftVariant[key];
|
26
|
+
}
|
27
|
+
});
|
28
|
+
});
|
15
29
|
function _interopRequireWildcard(obj) {
|
16
30
|
if (obj && obj.__esModule) {
|
17
31
|
return obj;
|
@@ -0,0 +1,116 @@
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
2
|
+
value: true
|
3
|
+
});
|
4
|
+
exports.useChangeGiftVariantMutation = void 0;
|
5
|
+
var _regeneratorRuntime = _interopRequireDefault(require("regenerator-runtime"));
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
7
|
+
var _reactQuery = require("react-query");
|
8
|
+
var _sdk = require("@sentecacommerce/sdk");
|
9
|
+
var _index = require("../../index");
|
10
|
+
function _arrayLikeToArray(arr, len) {
|
11
|
+
if (len == null || len > arr.length) len = arr.length;
|
12
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
13
|
+
return arr2;
|
14
|
+
}
|
15
|
+
function _arrayWithHoles(arr) {
|
16
|
+
if (Array.isArray(arr)) return arr;
|
17
|
+
}
|
18
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
19
|
+
try {
|
20
|
+
var info = gen[key](arg);
|
21
|
+
var value = info.value;
|
22
|
+
} catch (error) {
|
23
|
+
reject(error);
|
24
|
+
return;
|
25
|
+
}
|
26
|
+
if (info.done) {
|
27
|
+
resolve(value);
|
28
|
+
} else {
|
29
|
+
Promise.resolve(value).then(_next, _throw);
|
30
|
+
}
|
31
|
+
}
|
32
|
+
function _asyncToGenerator(fn) {
|
33
|
+
return function() {
|
34
|
+
var self = this, args = arguments;
|
35
|
+
return new Promise(function(resolve, reject) {
|
36
|
+
var gen = fn.apply(self, args);
|
37
|
+
function _next(value) {
|
38
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
39
|
+
}
|
40
|
+
function _throw(err) {
|
41
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
42
|
+
}
|
43
|
+
_next(undefined);
|
44
|
+
});
|
45
|
+
};
|
46
|
+
}
|
47
|
+
function _interopRequireDefault(obj) {
|
48
|
+
return obj && obj.__esModule ? obj : {
|
49
|
+
default: obj
|
50
|
+
};
|
51
|
+
}
|
52
|
+
function _iterableToArrayLimit(arr, i) {
|
53
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
54
|
+
if (_i == null) return;
|
55
|
+
var _arr = [];
|
56
|
+
var _n = true;
|
57
|
+
var _d = false;
|
58
|
+
var _s, _e;
|
59
|
+
try {
|
60
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
61
|
+
_arr.push(_s.value);
|
62
|
+
if (i && _arr.length === i) break;
|
63
|
+
}
|
64
|
+
} catch (err) {
|
65
|
+
_d = true;
|
66
|
+
_e = err;
|
67
|
+
} finally{
|
68
|
+
try {
|
69
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
70
|
+
} finally{
|
71
|
+
if (_d) throw _e;
|
72
|
+
}
|
73
|
+
}
|
74
|
+
return _arr;
|
75
|
+
}
|
76
|
+
function _nonIterableRest() {
|
77
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
78
|
+
}
|
79
|
+
function _slicedToArray(arr, i) {
|
80
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
81
|
+
}
|
82
|
+
function _unsupportedIterableToArray(o, minLen) {
|
83
|
+
if (!o) return;
|
84
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
85
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
86
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
87
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
88
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
89
|
+
}
|
90
|
+
var useChangeGiftVariantMutation = function() {
|
91
|
+
var ref = _slicedToArray((0, _index).useReplaceBasket(), 1), replaceBasket = ref[0];
|
92
|
+
return (0, _reactQuery).useMutation(function() {
|
93
|
+
var _ref = _asyncToGenerator(_regeneratorRuntime.default.mark(function _callee(props) {
|
94
|
+
return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
|
95
|
+
while(1)switch(_ctx.prev = _ctx.next){
|
96
|
+
case 0:
|
97
|
+
_ctx.next = 2;
|
98
|
+
return (0, _sdk).MyCartChangeSelectableGiftLineItemVariant(props);
|
99
|
+
case 2:
|
100
|
+
return _ctx.abrupt("return", _ctx.sent);
|
101
|
+
case 3:
|
102
|
+
case "end":
|
103
|
+
return _ctx.stop();
|
104
|
+
}
|
105
|
+
}, _callee);
|
106
|
+
}));
|
107
|
+
return function(props) {
|
108
|
+
return _ref.apply(this, arguments);
|
109
|
+
};
|
110
|
+
}(), {
|
111
|
+
onSuccess: function(data) {
|
112
|
+
return replaceBasket(data);
|
113
|
+
}
|
114
|
+
});
|
115
|
+
};
|
116
|
+
exports.useChangeGiftVariantMutation = useChangeGiftVariantMutation;
|
@@ -26,6 +26,18 @@ Object.keys(_useBasketCrossSaleItems).forEach(function(key) {
|
|
26
26
|
}
|
27
27
|
});
|
28
28
|
});
|
29
|
+
var _useChangeGiftVariant = _interopRequireWildcard(require("./useChangeGiftVariant"));
|
30
|
+
Object.keys(_useChangeGiftVariant).forEach(function(key) {
|
31
|
+
if (key === "default" || key === "__esModule") return;
|
32
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
33
|
+
if (key in exports && exports[key] === _useChangeGiftVariant[key]) return;
|
34
|
+
Object.defineProperty(exports, key, {
|
35
|
+
enumerable: true,
|
36
|
+
get: function() {
|
37
|
+
return _useChangeGiftVariant[key];
|
38
|
+
}
|
39
|
+
});
|
40
|
+
});
|
29
41
|
function _interopRequireWildcard(obj) {
|
30
42
|
if (obj && obj.__esModule) {
|
31
43
|
return obj;
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
2
|
+
value: true
|
3
|
+
});
|
4
|
+
Object.defineProperty(exports, "useChangeGiftVariant", {
|
5
|
+
enumerable: true,
|
6
|
+
get: function() {
|
7
|
+
return _mutations.useChangeGiftVariantMutation;
|
8
|
+
}
|
9
|
+
});
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
11
|
+
var _mutations = require("../api/mutations");
|
12
|
+
function _interopRequireDefault(obj) {
|
13
|
+
return obj && obj.__esModule ? obj : {
|
14
|
+
default: obj
|
15
|
+
};
|
16
|
+
}
|
@@ -8,6 +8,7 @@ var _nodeFetch = _interopRequireDefault(require("node-fetch"));
|
|
8
8
|
var _getSDKConfig = require("../api/getSDKConfig");
|
9
9
|
var _reactQuery = require("react-query");
|
10
10
|
var _tokens = require("../utils/tokens");
|
11
|
+
var _utils = require("../utils");
|
11
12
|
var _router = require("next/router");
|
12
13
|
function _defineProperty(obj, key, value) {
|
13
14
|
if (key in obj) {
|
@@ -51,7 +52,8 @@ function SentecaProvider(param) {
|
|
51
52
|
if (localeData) {
|
52
53
|
options.headers = _objectSpread({}, options.headers || {}, {
|
53
54
|
InterfaceKey: localeData.interfaceKey,
|
54
|
-
StoreKey: localeData.storeKey
|
55
|
+
StoreKey: localeData.storeKey,
|
56
|
+
'senteca-locale': (0, _utils).getLocaleFromPath()
|
55
57
|
});
|
56
58
|
}
|
57
59
|
_sdk.HttpClient.defaultConfig = new _sdk.Configuration(options);
|
@@ -91,7 +91,9 @@ var useAggregateResult = function(type, aggregates, slug, predicate, query) {
|
|
91
91
|
aggType: a.filterDefinition,
|
92
92
|
aggKey: filterKey,
|
93
93
|
aggOperator: operatorMap[a.aggregationType]
|
94
|
-
}, selected, router)
|
94
|
+
}, selected, router), undefined, {
|
95
|
+
shallow: true
|
96
|
+
});
|
95
97
|
}
|
96
98
|
},
|
97
99
|
]);
|
@@ -108,6 +110,8 @@ var useAggregateResult = function(type, aggregates, slug, predicate, query) {
|
|
108
110
|
query: _objectSpread({}, router.query, {
|
109
111
|
filter: filterByType(router.query.filter, a.filterDefinition)
|
110
112
|
})
|
113
|
+
}, undefined, {
|
114
|
+
shallow: true
|
111
115
|
});
|
112
116
|
},
|
113
117
|
type: a.aggregationType
|
@@ -70,7 +70,7 @@ var useAvailability = function(param) {
|
|
70
70
|
setStatus(ProductQuantityStatusEnum.OutOfStock);
|
71
71
|
return;
|
72
72
|
}
|
73
|
-
if (
|
73
|
+
if (quantity - (quantityInBasket || 0) < 1) {
|
74
74
|
setStatus(ProductQuantityStatusEnum.MaxQuantityReached);
|
75
75
|
return;
|
76
76
|
}
|
@@ -104,40 +104,40 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
104
104
|
var ProductStateContext = /*#__PURE__*/ _react.default.createContext(undefined);
|
105
105
|
var CountDispatchContext = /*#__PURE__*/ _react.default.createContext(undefined);
|
106
106
|
function ProductProvider(param) {
|
107
|
-
var product = param.product, children = param.children, defaultVariantId = param.defaultVariantId;
|
108
|
-
var
|
107
|
+
var product = param.product, children = param.children, defaultVariantId = param.defaultVariantId, _includeBrandInName = param.includeBrandInName, includeBrandInName = _includeBrandInName === void 0 ? false : _includeBrandInName;
|
108
|
+
var ref42 = _slicedToArray(_react.default.useState(false), 2), mounted = ref42[0], setMounted = ref42[1];
|
109
109
|
var ref1 = _slicedToArray(_react.default.useState(getCombinationsAndAttributeRules), 2), ref2 = ref1[0], combinations = ref2.combinations, attributeRules = ref2.attributeRules, setCombinationsAndAttributeRules = ref1[1];
|
110
110
|
var ref3 = _slicedToArray(_react.default.useState(getVariantsWithInventory), 2), variants = ref3[0], setVariants = ref3[1];
|
111
111
|
var ref4 = _slicedToArray(_react.default.useState(getDefaultVariant), 2), selectedVariant = ref4[0], setSelectedVariant = ref4[1];
|
112
112
|
var metaData = _react.default.useMemo(function() {
|
113
|
-
var ref, ref5, ref6, ref7, ref8, ref9, ref10, ref11, ref12, ref13, ref14, ref15, ref16, ref17, ref18, ref19, ref20, ref21, ref22, ref23, ref24, ref25, ref26, ref27, ref28, ref29, ref30, ref31, ref32, ref33, ref34, ref35;
|
113
|
+
var ref, ref5, ref6, ref7, ref8, ref9, ref10, ref11, ref12, 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;
|
114
114
|
var rootCategory = product === null || product === void 0 ? void 0 : (ref = product.categories) === null || ref === void 0 ? void 0 : ref[0];
|
115
115
|
var rootCategoryId = rootCategory === null || rootCategory === void 0 ? void 0 : rootCategory.resourceId;
|
116
116
|
var metaObj = {
|
117
117
|
_id: product === null || product === void 0 ? void 0 : product._id,
|
118
|
-
name: (0, _).getTranslatableField(selectedVariant === null || selectedVariant === void 0 ? void 0 : selectedVariant.name) || (0, _).getTranslatableField(product === null || product === void 0 ? void 0 : product.name),
|
118
|
+
name: includeBrandInName && (product === null || product === void 0 ? void 0 : (ref5 = product.brands) === null || ref5 === void 0 ? void 0 : (ref6 = ref5[0]) === null || ref6 === void 0 ? void 0 : (ref7 = ref6.resource) === null || ref7 === void 0 ? void 0 : ref7.name) ? "".concat((0, _).getTranslatableField(product === null || product === void 0 ? void 0 : (ref8 = product.brands) === null || ref8 === void 0 ? void 0 : (ref9 = ref8[0]) === null || ref9 === void 0 ? void 0 : (ref10 = ref9.resource) === null || ref10 === void 0 ? void 0 : ref10.name), " ").concat((0, _).getTranslatableField(selectedVariant === null || selectedVariant === void 0 ? void 0 : selectedVariant.name) || (0, _).getTranslatableField(product === null || product === void 0 ? void 0 : product.name)) : (0, _).getTranslatableField(selectedVariant === null || selectedVariant === void 0 ? void 0 : selectedVariant.name) || (0, _).getTranslatableField(product === null || product === void 0 ? void 0 : product.name),
|
119
119
|
slug: (0, _).getTranslatableField(product === null || product === void 0 ? void 0 : product.slug),
|
120
120
|
description: (0, _).getTranslatableField(selectedVariant === null || selectedVariant === void 0 ? void 0 : selectedVariant.description) || (0, _).getTranslatableField(product === null || product === void 0 ? void 0 : product.description),
|
121
121
|
shortDescription: (0, _).getTranslatableField(selectedVariant === null || selectedVariant === void 0 ? void 0 : selectedVariant.metaDescription) || (0, _).getTranslatableField(product === null || product === void 0 ? void 0 : product.metaDescription),
|
122
122
|
brand: {
|
123
|
-
_id: product === null || product === void 0 ? void 0 : (
|
124
|
-
name: (0, _).getTranslatableField(product === null || product === void 0 ? void 0 : (
|
125
|
-
slug: (0, _).getTranslatableField(product === null || product === void 0 ? void 0 : (
|
126
|
-
logo: product === null || product === void 0 ? void 0 : (
|
123
|
+
_id: product === null || product === void 0 ? void 0 : (ref11 = product.brands) === null || ref11 === void 0 ? void 0 : (ref12 = ref11[0]) === null || ref12 === void 0 ? void 0 : ref12.resourceId,
|
124
|
+
name: (0, _).getTranslatableField(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),
|
125
|
+
slug: (0, _).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.slug),
|
126
|
+
logo: 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 : (ref21 = ref20.resource) === null || ref21 === void 0 ? void 0 : (ref22 = ref21.assets) === null || ref22 === void 0 ? void 0 : (ref23 = ref22[0]) === null || ref23 === void 0 ? void 0 : (ref24 = ref23.sources) === null || ref24 === void 0 ? void 0 : (ref25 = ref24[0]) === null || ref25 === void 0 ? void 0 : ref25.url
|
127
127
|
},
|
128
128
|
category: {
|
129
|
-
_id: product === null || product === void 0 ? void 0 : (
|
130
|
-
name: (0, _).getTranslatableField(product === null || product === void 0 ? void 0 : (
|
131
|
-
slug: (0, _).getTranslatableField(product === null || product === void 0 ? void 0 : (
|
129
|
+
_id: product === null || product === void 0 ? void 0 : (ref27 = product.categories) === null || ref27 === void 0 ? void 0 : (ref28 = ref27[(product === null || product === void 0 ? void 0 : (ref26 = product.categories) === null || ref26 === void 0 ? void 0 : ref26.length) - 1]) === null || ref28 === void 0 ? void 0 : ref28.resourceId,
|
130
|
+
name: (0, _).getTranslatableField(product === null || product === void 0 ? void 0 : (ref30 = product.categories) === null || ref30 === void 0 ? void 0 : (ref31 = ref30[(product === null || product === void 0 ? void 0 : (ref29 = product.categories) === null || ref29 === void 0 ? void 0 : ref29.length) - 1]) === null || ref31 === void 0 ? void 0 : (ref32 = ref31.resource) === null || ref32 === void 0 ? void 0 : ref32.name),
|
131
|
+
slug: (0, _).getTranslatableField(product === null || product === void 0 ? void 0 : (ref34 = product.categories) === null || ref34 === void 0 ? void 0 : (ref35 = ref34[(product === null || product === void 0 ? void 0 : (ref33 = product.categories) === null || ref33 === void 0 ? void 0 : ref33.length) - 1]) === null || ref35 === void 0 ? void 0 : (ref36 = ref35.resource) === null || ref36 === void 0 ? void 0 : ref36.slug)
|
132
132
|
},
|
133
133
|
rootCategory: {
|
134
134
|
_id: rootCategoryId,
|
135
|
-
name: (0, _).getTranslatableField(rootCategory === null || rootCategory === void 0 ? void 0 : (
|
136
|
-
slug: (0, _).getTranslatableField(rootCategory === null || rootCategory === void 0 ? void 0 : (
|
135
|
+
name: (0, _).getTranslatableField(rootCategory === null || rootCategory === void 0 ? void 0 : (ref37 = rootCategory.resource) === null || ref37 === void 0 ? void 0 : ref37.name),
|
136
|
+
slug: (0, _).getTranslatableField(rootCategory === null || rootCategory === void 0 ? void 0 : (ref38 = rootCategory.resource) === null || ref38 === void 0 ? void 0 : ref38.slug)
|
137
137
|
},
|
138
138
|
categories: (0, _utils).formatCategories(product === null || product === void 0 ? void 0 : product.categories, rootCategoryId),
|
139
139
|
reviewRatingStatistics: product === null || product === void 0 ? void 0 : product.reviewRatingStatistics,
|
140
|
-
content: Boolean(selectedVariant === null || selectedVariant === void 0 ? void 0 : (
|
140
|
+
content: Boolean(selectedVariant === null || selectedVariant === void 0 ? void 0 : (ref39 = selectedVariant.content) === null || ref39 === void 0 ? void 0 : ref39.map(_utils.createProductContent).length) ? selectedVariant === null || selectedVariant === void 0 ? void 0 : (ref40 = selectedVariant.content) === null || ref40 === void 0 ? void 0 : ref40.map(_utils.createProductContent) : product === null || product === void 0 ? void 0 : (ref41 = product.content) === null || ref41 === void 0 ? void 0 : ref41.map(_utils.createProductContent),
|
141
141
|
assets: (0, _assetsToMap).assetsFieldsToMap(product === null || product === void 0 ? void 0 : product.assets)
|
142
142
|
};
|
143
143
|
return metaObj;
|
@@ -190,20 +190,20 @@ function ProductProvider(param) {
|
|
190
190
|
variants
|
191
191
|
]);
|
192
192
|
function getVariantsWithInventory() {
|
193
|
-
var
|
194
|
-
var variantsWithInventory = product === null || product === void 0 ? void 0 : (
|
195
|
-
var
|
193
|
+
var ref46;
|
194
|
+
var variantsWithInventory = product === null || product === void 0 ? void 0 : (ref46 = product.variants) === null || ref46 === void 0 ? void 0 : ref46.reduce(function(map, _, index, arr) {
|
195
|
+
var ref47, ref43, ref44, ref45;
|
196
196
|
var currentVariant = arr[index];
|
197
197
|
var mappedAttributes = (0, _utils).createMappedAttributes(currentVariant);
|
198
198
|
var mappedOptions = (0, _utils).createMappedOptions(currentVariant === null || currentVariant === void 0 ? void 0 : currentVariant.availableOptions) || [];
|
199
|
-
var isAvailable = currentVariant === null || currentVariant === void 0 ? void 0 : (
|
199
|
+
var isAvailable = currentVariant === null || currentVariant === void 0 ? void 0 : (ref47 = currentVariant.inventorySnapshot) === null || ref47 === void 0 ? void 0 : ref47.canOrder;
|
200
200
|
var updatedVariant = _objectSpread({}, currentVariant, {
|
201
201
|
inventory: {
|
202
|
-
hasAvailableQuantity: (
|
203
|
-
availableQuantity: (
|
202
|
+
hasAvailableQuantity: (ref43 = currentVariant.inventorySnapshot) === null || ref43 === void 0 ? void 0 : ref43.canOrder,
|
203
|
+
availableQuantity: (ref44 = currentVariant.inventorySnapshot) === null || ref44 === void 0 ? void 0 : ref44.availableQuantity
|
204
204
|
},
|
205
205
|
isAvailable: isAvailable ? true : false,
|
206
|
-
quantity: isAvailable ? currentVariant === null || currentVariant === void 0 ? void 0 : (
|
206
|
+
quantity: isAvailable ? currentVariant === null || currentVariant === void 0 ? void 0 : (ref45 = currentVariant.inventorySnapshot) === null || ref45 === void 0 ? void 0 : ref45.availableQuantity : 0,
|
207
207
|
attributes: mappedAttributes,
|
208
208
|
options: mappedOptions,
|
209
209
|
selectedOptions: [],
|
@@ -317,16 +317,26 @@ function ProductProvider(param) {
|
|
317
317
|
return variants === null || variants === void 0 ? void 0 : variants[id];
|
318
318
|
}
|
319
319
|
function getVariantByCombination(key, value) {
|
320
|
-
var
|
321
|
-
var
|
322
|
-
|
320
|
+
var ref48;
|
321
|
+
var split = value === null || value === void 0 ? void 0 : value.split(':');
|
322
|
+
if ((split === null || split === void 0 ? void 0 : split[0]) === 'collapseKey') {
|
323
|
+
var id = Object.keys(variants).find(function(el) {
|
324
|
+
var ref;
|
325
|
+
return variants[el].collapseKey === (split === null || split === void 0 ? void 0 : split[1]) && ((ref = variants[el].attributes.find(function(attr) {
|
326
|
+
return attr.name === 'size';
|
327
|
+
})) === null || ref === void 0 ? void 0 : ref.value) === key;
|
328
|
+
});
|
329
|
+
return variants[id];
|
330
|
+
}
|
331
|
+
var id3 = (ref48 = combinations[key]) === null || ref48 === void 0 ? void 0 : ref48.params[value];
|
332
|
+
return variants === null || variants === void 0 ? void 0 : variants[id3];
|
323
333
|
}
|
324
334
|
function getCustomFieldValue(field) {
|
325
335
|
return customFields === null || customFields === void 0 ? void 0 : customFields[field];
|
326
336
|
}
|
327
337
|
function getCombinationsForAttributeRule(key, id) {
|
328
|
-
var ref,
|
329
|
-
var result = attributeRules === null || attributeRules === void 0 ? void 0 : (ref = attributeRules[key]) === null || ref === void 0 ? void 0 : (
|
338
|
+
var ref, ref49;
|
339
|
+
var result = attributeRules === null || attributeRules === void 0 ? void 0 : (ref = attributeRules[key]) === null || ref === void 0 ? void 0 : (ref49 = ref.values) === null || ref49 === void 0 ? void 0 : ref49[id];
|
330
340
|
return result;
|
331
341
|
}
|
332
342
|
var collapsedImages = (0, _utils).createCollapseKeyImagesMap(product);
|
@@ -2,7 +2,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
2
2
|
value: true
|
3
3
|
});
|
4
4
|
exports.useWishlistItem = void 0;
|
5
|
-
var _react =
|
5
|
+
var _react = _interopRequireWildcard(require("react"));
|
6
6
|
var _ = require("../../../");
|
7
7
|
var _utils = require("../../basket-hooks/useBasketLineItem/utils");
|
8
8
|
var _utils1 = require("../../../utils");
|
@@ -14,10 +14,26 @@ function _arrayLikeToArray(arr, len) {
|
|
14
14
|
function _arrayWithHoles(arr) {
|
15
15
|
if (Array.isArray(arr)) return arr;
|
16
16
|
}
|
17
|
-
function
|
18
|
-
|
19
|
-
|
20
|
-
}
|
17
|
+
function _interopRequireWildcard(obj) {
|
18
|
+
if (obj && obj.__esModule) {
|
19
|
+
return obj;
|
20
|
+
} else {
|
21
|
+
var newObj = {};
|
22
|
+
if (obj != null) {
|
23
|
+
for(var key in obj){
|
24
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
25
|
+
var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
|
26
|
+
if (desc.get || desc.set) {
|
27
|
+
Object.defineProperty(newObj, key, desc);
|
28
|
+
} else {
|
29
|
+
newObj[key] = obj[key];
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
}
|
34
|
+
newObj.default = obj;
|
35
|
+
return newObj;
|
36
|
+
}
|
21
37
|
}
|
22
38
|
function _iterableToArrayLimit(arr, i) {
|
23
39
|
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
@@ -59,15 +75,19 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
59
75
|
}
|
60
76
|
var useWishlistItem = function(props) {
|
61
77
|
var ref16;
|
62
|
-
var
|
78
|
+
var item = props.item, expiry = props.expiry;
|
79
|
+
var ref1 = _slicedToArray((0, _).useBoolean(false), 2), isExpired = ref1[0], setIsExpired = ref1[1];
|
63
80
|
var ref2 = _slicedToArray(_.wishlistApi.useSync(), 1), syncWishlist = ref2[0];
|
64
81
|
var ref3 = (0, _).usePrefetchProduct((0, _).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;
|
82
|
+
(0, _react).useEffect(function() {
|
83
|
+
if (expiry) {
|
84
|
+
if (Date.now() > expiry + (item === null || item === void 0 ? void 0 : item.snapshotFrom)) {
|
85
|
+
setIsExpired.on();
|
86
|
+
}
|
87
|
+
}
|
88
|
+
}, []);
|
65
89
|
var data = _react.default.useMemo(function() {
|
66
90
|
var ref, ref4, ref5, ref6, ref7, ref8, ref9, ref10, ref11, ref12, ref13, ref14, ref15;
|
67
|
-
var item = props.item;
|
68
|
-
if (props.expiry && (0, _utils).getTimeStamp(props.expiry) < (item === null || item === void 0 ? void 0 : item.snapshotFrom)) {
|
69
|
-
setIsExpired(true);
|
70
|
-
}
|
71
91
|
var offer = item === null || item === void 0 ? void 0 : (ref = item.productVariant) === null || ref === void 0 ? void 0 : ref.offer;
|
72
92
|
var mappedAttributes = (0, _utils).createMappedAttributes(item === null || item === void 0 ? void 0 : (ref4 = item.productVariant) === null || ref4 === void 0 ? void 0 : ref4.attributes) || {};
|
73
93
|
var mappedCustomField = (0, _utils1).customFieldsToMap(item.custom);
|
@@ -107,12 +127,16 @@ var useWishlistItem = function(props) {
|
|
107
127
|
}
|
108
128
|
};
|
109
129
|
}, [
|
110
|
-
|
130
|
+
item
|
131
|
+
]);
|
132
|
+
(0, _react).useEffect(function() {
|
133
|
+
if (isExpired) {
|
134
|
+
syncWishlist();
|
135
|
+
setIsExpired.off();
|
136
|
+
}
|
137
|
+
}, [
|
138
|
+
isExpired
|
111
139
|
]);
|
112
|
-
if (isExpired) {
|
113
|
-
syncWishlist();
|
114
|
-
setIsExpired(false);
|
115
|
-
}
|
116
140
|
return data;
|
117
141
|
};
|
118
142
|
exports.useWishlistItem = useWishlistItem;
|
@@ -137,7 +137,7 @@ var useListingQuery = function() {
|
|
137
137
|
predicate: predicate,
|
138
138
|
sort: sort,
|
139
139
|
postFilter: postFilter,
|
140
|
-
slug:
|
140
|
+
slug: aliasedSlug,
|
141
141
|
offset: offset
|
142
142
|
});
|
143
143
|
return (0, _reactQuery).useQuery(queryKeys, _asyncToGenerator(_regeneratorRuntime.default.mark(function _callee() {
|
@@ -5,11 +5,11 @@ exports.useListingBreadcrumbs = void 0;
|
|
5
5
|
var _react = _interopRequireDefault(require("react"));
|
6
6
|
var _router = require("next/router");
|
7
7
|
var _api = require("../api");
|
8
|
-
var
|
9
|
-
var
|
8
|
+
var _index = require("./index");
|
9
|
+
var _index1 = require("../../index");
|
10
10
|
var _typeToSuffix = require("../../utils/typeToSuffix");
|
11
11
|
var _getTranslatableField = require("../../utils/getTranslatableField");
|
12
|
-
var
|
12
|
+
var _ = require("..");
|
13
13
|
function _arrayLikeToArray(arr, len) {
|
14
14
|
if (len == null || len > arr.length) len = arr.length;
|
15
15
|
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
@@ -42,12 +42,15 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
42
42
|
}
|
43
43
|
var _instance;
|
44
44
|
var useListingBreadcrumbs = function() {
|
45
|
-
var
|
46
|
-
var config = (0,
|
45
|
+
var ref3 = (0, _api).usePredicate(), data = ref3.data, isLoading = ref3.isLoading;
|
46
|
+
var config = (0, _index).useListingConfig();
|
47
47
|
var router = (0, _router).useRouter();
|
48
|
-
var slug = (0,
|
48
|
+
var slug = (0, _index1).useListingAlias(config.meta).slug;
|
49
|
+
var ref1 = (0, _index).useListingCategories(), categoriesData = ref1.data;
|
50
|
+
var categoryName = (0, _index).getCategoryName(router, categoriesData);
|
51
|
+
var categoryId = (0, _index).getFilterByType('category', router);
|
49
52
|
var result = _react.default.useMemo(function() {
|
50
|
-
if (config.type ===
|
53
|
+
if (config.type === _.ListingTypesEnum.AttrPage) {
|
51
54
|
var ref;
|
52
55
|
return [
|
53
56
|
{
|
@@ -66,7 +69,16 @@ var useListingBreadcrumbs = function() {
|
|
66
69
|
},
|
67
70
|
];
|
68
71
|
}
|
69
|
-
|
72
|
+
var breadcrumbData = createCatalogBreadcrumb(data, config.type, router);
|
73
|
+
if (config.type === _.ListingTypesEnum.View || config.type === _.ListingTypesEnum.Brand) {
|
74
|
+
var ref2;
|
75
|
+
breadcrumbData.push({
|
76
|
+
name: categoryName || '',
|
77
|
+
id: categoryId,
|
78
|
+
link: processLink((ref2 = data) === null || ref2 === void 0 ? void 0 : ref2.slug, config.type, router.query.slug) + applyFilters(router)
|
79
|
+
});
|
80
|
+
}
|
81
|
+
return breadcrumbData;
|
70
82
|
}, [
|
71
83
|
data,
|
72
84
|
config.type,
|
@@ -103,14 +103,14 @@ function generateUrl(current, router, slug, config) {
|
|
103
103
|
res = "/".concat(router.query.slug, "/").concat((0, _utils).getTranslatableField(current.meta.slug), "/").concat(suffix);
|
104
104
|
}
|
105
105
|
if (pageType === _types.ListingTypesEnum.View) {
|
106
|
-
res = "/".concat(router.query.slug, "/").concat(
|
106
|
+
res = "/".concat(router.query.slug, "/").concat(suffix);
|
107
107
|
}
|
108
108
|
if (pageType === _types.ListingTypesEnum.Search) {
|
109
109
|
var _q;
|
110
110
|
res = "/".concat((0, _utils).getTranslatableField(current.meta.slug), "/c?search=").concat((_q = router.query.q) !== null && _q !== void 0 ? _q : router.query.search);
|
111
111
|
}
|
112
112
|
var filter = router.query.filter;
|
113
|
-
if (suffix === 'b') {
|
113
|
+
if (suffix === 'b' || suffix === 'v') {
|
114
114
|
if (filter) {
|
115
115
|
if (Array.isArray(filter)) {
|
116
116
|
filter = _toConsumableArray(filter);
|
@@ -136,6 +136,8 @@ function ListingFiltersProvider(param) {
|
|
136
136
|
query: _objectSpread({}, router.query, {
|
137
137
|
filter: filterByType(router.query.filter, filter)
|
138
138
|
})
|
139
|
+
}, undefined, {
|
140
|
+
shallow: true
|
139
141
|
});
|
140
142
|
},
|
141
143
|
type: type
|
@@ -155,6 +157,8 @@ function ListingFiltersProvider(param) {
|
|
155
157
|
router.push({
|
156
158
|
pathname: router.pathname,
|
157
159
|
query: query
|
160
|
+
}, undefined, {
|
161
|
+
shallow: true
|
158
162
|
});
|
159
163
|
};
|
160
164
|
var selectedFilters = _react.default.useMemo(function() {
|
@@ -197,7 +201,9 @@ function generateFilters(param) {
|
|
197
201
|
aggType: filter,
|
198
202
|
aggKey: filterKey,
|
199
203
|
aggOperator: filtersOperatorsMap[type]
|
200
|
-
}, Boolean(selected), router)
|
204
|
+
}, Boolean(selected), router), undefined, {
|
205
|
+
shallow: true
|
206
|
+
});
|
201
207
|
}
|
202
208
|
};
|
203
209
|
});
|