@sentecacommerce-theme/lib 0.12.101 → 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.
Files changed (37) hide show
  1. package/dist/cjs/basket/api/mutations/index.js +14 -0
  2. package/dist/cjs/basket/api/mutations/useChangeGiftVariant.js +116 -0
  3. package/dist/cjs/basket/hooks/index.js +12 -0
  4. package/dist/cjs/basket/hooks/useChangeGiftVariant.js +16 -0
  5. package/dist/cjs/hooks/useAggregateResult/index.js +5 -1
  6. package/dist/cjs/hooks/useClearAllFilters/index.js +2 -0
  7. package/dist/cjs/listing/hooks/useListingBreadcrumbs.js +20 -8
  8. package/dist/cjs/listing/hooks/useListingCategories.js +2 -2
  9. package/dist/cjs/listing/hooks/useListingFilters.js +7 -1
  10. package/dist/cjs/listing/hooks/useListingMeta.js +12 -10
  11. package/dist/cjs/listing/hooks/useSlideFilter.js +3 -1
  12. package/dist/cjs/listing/utils/buildCategoryQuery.js +22 -1
  13. package/dist/cjs/user/api/queries/useGetMyLoyaltyCardQuery.js +49 -3
  14. package/dist/cjs/utils/getSelectedFilters.js +3 -1
  15. package/dist/cjs/utils/localStorage.js +7 -2
  16. package/dist/esm/basket/api/mutations/index.js +1 -0
  17. package/dist/esm/basket/api/mutations/useChangeGiftVariant.js +106 -0
  18. package/dist/esm/basket/hooks/index.js +1 -0
  19. package/dist/esm/basket/hooks/useChangeGiftVariant.js +3 -0
  20. package/dist/esm/hooks/useAggregateResult/index.js +5 -1
  21. package/dist/esm/hooks/useClearAllFilters/index.js +2 -0
  22. package/dist/esm/listing/hooks/useListingBreadcrumbs.js +15 -3
  23. package/dist/esm/listing/hooks/useListingCategories.js +2 -2
  24. package/dist/esm/listing/hooks/useListingFilters.js +7 -1
  25. package/dist/esm/listing/hooks/useListingMeta.js +12 -12
  26. package/dist/esm/listing/hooks/useSlideFilter.js +3 -1
  27. package/dist/esm/listing/utils/buildCategoryQuery.js +22 -1
  28. package/dist/esm/user/api/queries/useGetMyLoyaltyCardQuery.js +44 -3
  29. package/dist/esm/utils/getSelectedFilters.js +3 -1
  30. package/dist/esm/utils/localStorage.js +7 -2
  31. package/dist/types/basket/api/mutations/index.d.ts +1 -0
  32. package/dist/types/basket/api/mutations/useChangeGiftVariant.d.ts +2 -0
  33. package/dist/types/basket/hooks/index.d.ts +1 -0
  34. package/dist/types/basket/hooks/useChangeGiftVariant.d.ts +2 -0
  35. package/dist/types/hooks/basket-hooks/useBasketLineItem/index.d.ts +1 -2
  36. package/dist/types/listing/hooks/useListingMeta.d.ts +4 -0
  37. package/package.json +4 -4
@@ -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
+ }
@@ -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
@@ -39,6 +39,8 @@ var useClearAllFilters = function() {
39
39
  router.push({
40
40
  pathname: router.pathname,
41
41
  query: query
42
+ }, undefined, {
43
+ shallow: true
42
44
  });
43
45
  };
44
46
  };
@@ -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 _ = require("./");
9
- var _index = require("../../index");
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 _1 = require("..");
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 ref1 = (0, _api).usePredicate(), data = ref1.data, isLoading = ref1.isLoading;
46
- var config = (0, _).useListingConfig();
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, _index).useListingAlias(config.meta).slug;
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 === _1.ListingTypesEnum.AttrPage) {
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
- return createCatalogBreadcrumb(data, config.type, router);
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((0, _utils).getTranslatableField(current.meta.slug), "/").concat(suffix);
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
  });
@@ -1,6 +1,8 @@
1
1
  Object.defineProperty(exports, "__esModule", {
2
2
  value: true
3
3
  });
4
+ exports.getFilterByType = getFilterByType;
5
+ exports.getCategoryName = getCategoryName;
4
6
  exports.useListingMeta = void 0;
5
7
  var _react = _interopRequireDefault(require("react"));
6
8
  var _api = require("../api");
@@ -116,7 +118,7 @@ var useListingMeta = function() {
116
118
  };
117
119
  exports.useListingMeta = useListingMeta;
118
120
  function processDisplayName(slug, config, name, breadcrumb, router, aggData, categoriesData) {
119
- var ref, ref5;
121
+ var ref, ref5, ref6;
120
122
  var listingName = (0, _utils).getTranslatableField(name);
121
123
  var brandName = getBrandName(router, aggData);
122
124
  var categoryName = getCategoryName(router, categoriesData);
@@ -130,7 +132,7 @@ function processDisplayName(slug, config, name, breadcrumb, router, aggData, cat
130
132
  defaultName: listingName,
131
133
  attribute: (ref = config.titleAliases) === null || ref === void 0 ? void 0 : ref[slug],
132
134
  childAttribute: (0, _utils).getTranslatableField(breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.label),
133
- search: router === null || router === void 0 ? void 0 : (ref5 = router.query) === null || ref5 === void 0 ? void 0 : ref5.search,
135
+ search: (router === null || router === void 0 ? void 0 : (ref5 = router.query) === null || ref5 === void 0 ? void 0 : ref5.q) || (router === null || router === void 0 ? void 0 : (ref6 = router.query) === null || ref6 === void 0 ? void 0 : ref6.search),
134
136
  isWithAttribute: Boolean(router === null || router === void 0 ? void 0 : router.query.cat)
135
137
  });
136
138
  return title || listingName;
@@ -138,35 +140,35 @@ function processDisplayName(slug, config, name, breadcrumb, router, aggData, cat
138
140
  function getFilterByType(filterType, router) {
139
141
  var filterId = '';
140
142
  if (Array.isArray(router === null || router === void 0 ? void 0 : router.query.filter)) {
141
- var ref, ref6;
143
+ var ref, ref7;
142
144
  var filters = (ref = router === null || router === void 0 ? void 0 : router.query.filter) === null || ref === void 0 ? void 0 : ref.filter(function(x) {
143
145
  return x === null || x === void 0 ? void 0 : x.includes(filterType);
144
146
  });
145
147
  if ((filters === null || filters === void 0 ? void 0 : filters.length) && filters.length > 1) {
146
148
  return '';
147
149
  }
148
- var filterTerm = (ref6 = /\d+/.exec((filters === null || filters === void 0 ? void 0 : filters[0]) || '')) === null || ref6 === void 0 ? void 0 : ref6[0];
150
+ var filterTerm = (ref7 = /\d+/.exec((filters === null || filters === void 0 ? void 0 : filters[0]) || '')) === null || ref7 === void 0 ? void 0 : ref7[0];
149
151
  if (!filterTerm) return '';
150
152
  filterId = filterTerm;
151
153
  } else {
152
- var ref7, ref8, ref9;
153
- var isFiltered = router === null || router === void 0 ? void 0 : (ref7 = router.query) === null || ref7 === void 0 ? void 0 : (ref8 = ref7.filter) === null || ref8 === void 0 ? void 0 : ref8.includes(filterType);
154
+ var ref8, ref9, ref10;
155
+ var isFiltered = router === null || router === void 0 ? void 0 : (ref8 = router.query) === null || ref8 === void 0 ? void 0 : (ref9 = ref8.filter) === null || ref9 === void 0 ? void 0 : ref9.includes(filterType);
154
156
  if (!isFiltered) {
155
157
  return '';
156
158
  }
157
- filterId = (ref9 = /(\w+)-(\d+)/.exec(router === null || router === void 0 ? void 0 : router.query.filter)) === null || ref9 === void 0 ? void 0 : ref9[0];
159
+ filterId = (ref10 = /(\w+)-(\d+)/.exec(router === null || router === void 0 ? void 0 : router.query.filter)) === null || ref10 === void 0 ? void 0 : ref10[0];
158
160
  }
159
161
  return filterId;
160
162
  }
161
163
  function getBrandName(router, filtersData) {
162
- var ref, ref10, ref11;
164
+ var ref, ref11, ref12;
163
165
  var brandId = getFilterByType('brand', router);
164
166
  var brand = (ref = filtersData === null || filtersData === void 0 ? void 0 : filtersData.find(function(x) {
165
167
  return x.name === 'Brands';
166
- })) === null || ref === void 0 ? void 0 : (ref10 = ref.items) === null || ref10 === void 0 ? void 0 : ref10.find(function(x) {
168
+ })) === null || ref === void 0 ? void 0 : (ref11 = ref.items) === null || ref11 === void 0 ? void 0 : ref11.find(function(x) {
167
169
  return x.data.key === brandId;
168
170
  });
169
- return (0, _utils).getTranslatableField(brand === null || brand === void 0 ? void 0 : (ref11 = brand.meta) === null || ref11 === void 0 ? void 0 : ref11.name);
171
+ return (0, _utils).getTranslatableField(brand === null || brand === void 0 ? void 0 : (ref12 = brand.meta) === null || ref12 === void 0 ? void 0 : ref12.name);
170
172
  }
171
173
  function getCategoryName(router, categories) {
172
174
  var categoryId = getFilterByType('category', router);
@@ -110,7 +110,9 @@ var useSlideFilter = function(filterName, min, max) {
110
110
  aggType: filterName,
111
111
  aggKey: "".concat(formattedFrom, ",").concat(formattedTo),
112
112
  aggOperator: _useListingFilters.filtersOperatorsMap.stats
113
- }, false, router, true));
113
+ }, false, router, true), undefined, {
114
+ shallow: true
115
+ });
114
116
  }, 500);
115
117
  setState({
116
118
  from: formattedFrom,
@@ -64,7 +64,7 @@ var buildCategoryQuery = function(param) {
64
64
  filter += (ref = config === null || config === void 0 ? void 0 : config.filterExtension) !== null && ref !== void 0 ? ref : '';
65
65
  }
66
66
  if (postFilter) {
67
- if (router.query.cat) filter += '&';
67
+ if (filter) filter += '&';
68
68
  filter += postFilter;
69
69
  }
70
70
  break;
@@ -81,6 +81,14 @@ var buildCategoryQuery = function(param) {
81
81
  filter += "text;eq;\"".concat(searchQuery, "\"");
82
82
  if (postFilter) filter += "&".concat(postFilter);
83
83
  break;
84
+ case _index.ListingTypesEnum.View:
85
+ filter += applyViewsPostFilter({
86
+ postFilter: postFilter
87
+ });
88
+ if (config === null || config === void 0 ? void 0 : config.filterExtension) {
89
+ filter += filter ? "&".concat(config === null || config === void 0 ? void 0 : config.filterExtension) : config === null || config === void 0 ? void 0 : config.filterExtension;
90
+ }
91
+ break;
84
92
  default:
85
93
  return "".concat((config === null || config === void 0 ? void 0 : config.filterExtension) + "".concat(postFilter !== null && postFilter !== void 0 ? postFilter : ''));
86
94
  }
@@ -113,3 +121,16 @@ var applyBrandsPostFilter = function(param) {
113
121
  }
114
122
  return '';
115
123
  };
124
+ var applyViewsPostFilter = function(param) {
125
+ var postFilter = param.postFilter;
126
+ if (postFilter) {
127
+ var filtersArr = postFilter.split('&');
128
+ var filters = filtersArr.reduce(function(res, val, i) {
129
+ if (val.includes('category')) return res;
130
+ if (!res) return res + "".concat(val);
131
+ return res += "&".concat(val);
132
+ }, '');
133
+ return "".concat(filters);
134
+ }
135
+ return '';
136
+ };
@@ -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 (0, _sdk).MyWalletGetByType('loyalty-program');
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);
@@ -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, {
@@ -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
- return JSON.parse(localStorage.getItem(key));
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
  };
@@ -1 +1,2 @@
1
1
  export * from './useReplaceBasketMutation';
2
+ export * from './useChangeGiftVariant';
@@ -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
+ };
@@ -1,2 +1,3 @@
1
1
  export * from './useReplaceBasket';
2
2
  export * from './useBasketCrossSaleItems';
3
+ export * from './useChangeGiftVariant';
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { useChangeGiftVariantMutation } from '../api/mutations';
3
+ export { useChangeGiftVariantMutation as useChangeGiftVariant };
@@ -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
@@ -35,6 +35,8 @@ export var useClearAllFilters = function() {
35
35
  router.push({
36
36
  pathname: router.pathname,
37
37
  query: query
38
+ }, undefined, {
39
+ shallow: true
38
40
  });
39
41
  };
40
42
  };
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { useRouter } from 'next/router';
3
3
  import { usePredicate } from '../api';
4
- import { useListingConfig } from './';
4
+ import { useListingCategories, useListingConfig, getCategoryName, getFilterByType } from './index';
5
5
  import { useListingAlias } from '../../index';
6
6
  import { typeToSuffix } from '../../utils/typeToSuffix';
7
7
  import { getTranslatableField } from '../../utils/getTranslatableField';
@@ -33,10 +33,13 @@ function _unsupportedIterableToArray(o, minLen) {
33
33
  }
34
34
  var _instance;
35
35
  export var useListingBreadcrumbs = function() {
36
- var ref1 = usePredicate(), data = ref1.data, isLoading = ref1.isLoading;
36
+ var ref3 = usePredicate(), data = ref3.data, isLoading = ref3.isLoading;
37
37
  var config = useListingConfig();
38
38
  var router = useRouter();
39
39
  var slug = useListingAlias(config.meta).slug;
40
+ var ref1 = useListingCategories(), categoriesData = ref1.data;
41
+ var categoryName = getCategoryName(router, categoriesData);
42
+ var categoryId = getFilterByType('category', router);
40
43
  var result = React.useMemo(function() {
41
44
  if (config.type === ListingTypesEnum.AttrPage) {
42
45
  var ref;
@@ -57,7 +60,16 @@ export var useListingBreadcrumbs = function() {
57
60
  },
58
61
  ];
59
62
  }
60
- return createCatalogBreadcrumb(data, config.type, router);
63
+ var breadcrumbData = createCatalogBreadcrumb(data, config.type, router);
64
+ if (config.type === ListingTypesEnum.View || config.type === ListingTypesEnum.Brand) {
65
+ var ref2;
66
+ breadcrumbData.push({
67
+ name: categoryName || '',
68
+ id: categoryId,
69
+ link: processLink((ref2 = data) === null || ref2 === void 0 ? void 0 : ref2.slug, config.type, router.query.slug) + applyFilters(router)
70
+ });
71
+ }
72
+ return breadcrumbData;
61
73
  }, [
62
74
  data,
63
75
  config.type,
@@ -92,14 +92,14 @@ function generateUrl(current, router, slug, config) {
92
92
  res = "/".concat(router.query.slug, "/").concat(getTranslatableField(current.meta.slug), "/").concat(suffix);
93
93
  }
94
94
  if (pageType === ListingTypesEnum.View) {
95
- res = "/".concat(router.query.slug, "/").concat(getTranslatableField(current.meta.slug), "/").concat(suffix);
95
+ res = "/".concat(router.query.slug, "/").concat(suffix);
96
96
  }
97
97
  if (pageType === ListingTypesEnum.Search) {
98
98
  var _q;
99
99
  res = "/".concat(getTranslatableField(current.meta.slug), "/c?search=").concat((_q = router.query.q) !== null && _q !== void 0 ? _q : router.query.search);
100
100
  }
101
101
  var filter = router.query.filter;
102
- if (suffix === 'b') {
102
+ if (suffix === 'b' || suffix === 'v') {
103
103
  if (filter) {
104
104
  if (Array.isArray(filter)) {
105
105
  filter = _toConsumableArray(filter);
@@ -125,6 +125,8 @@ export function ListingFiltersProvider(param) {
125
125
  query: _objectSpread({}, router.query, {
126
126
  filter: filterByType(router.query.filter, filter)
127
127
  })
128
+ }, undefined, {
129
+ shallow: true
128
130
  });
129
131
  },
130
132
  type: type
@@ -144,6 +146,8 @@ export function ListingFiltersProvider(param) {
144
146
  router.push({
145
147
  pathname: router.pathname,
146
148
  query: query
149
+ }, undefined, {
150
+ shallow: true
147
151
  });
148
152
  };
149
153
  var selectedFilters = React.useMemo(function() {
@@ -186,7 +190,9 @@ function generateFilters(param) {
186
190
  aggType: filter,
187
191
  aggKey: filterKey,
188
192
  aggOperator: filtersOperatorsMap[type]
189
- }, Boolean(selected), router));
193
+ }, Boolean(selected), router), undefined, {
194
+ shallow: true
195
+ });
190
196
  }
191
197
  };
192
198
  });
@@ -106,7 +106,7 @@ export var useListingMeta = function() {
106
106
  return result;
107
107
  };
108
108
  function processDisplayName(slug, config, name, breadcrumb, router, aggData, categoriesData) {
109
- var ref, ref5;
109
+ var ref, ref5, ref6;
110
110
  var listingName = getTranslatableField(name);
111
111
  var brandName = getBrandName(router, aggData);
112
112
  var categoryName = getCategoryName(router, categoriesData);
@@ -120,45 +120,45 @@ function processDisplayName(slug, config, name, breadcrumb, router, aggData, cat
120
120
  defaultName: listingName,
121
121
  attribute: (ref = config.titleAliases) === null || ref === void 0 ? void 0 : ref[slug],
122
122
  childAttribute: getTranslatableField(breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.label),
123
- search: router === null || router === void 0 ? void 0 : (ref5 = router.query) === null || ref5 === void 0 ? void 0 : ref5.search,
123
+ search: (router === null || router === void 0 ? void 0 : (ref5 = router.query) === null || ref5 === void 0 ? void 0 : ref5.q) || (router === null || router === void 0 ? void 0 : (ref6 = router.query) === null || ref6 === void 0 ? void 0 : ref6.search),
124
124
  isWithAttribute: Boolean(router === null || router === void 0 ? void 0 : router.query.cat)
125
125
  });
126
126
  return title || listingName;
127
127
  }
128
- function getFilterByType(filterType, router) {
128
+ export function getFilterByType(filterType, router) {
129
129
  var filterId = '';
130
130
  if (Array.isArray(router === null || router === void 0 ? void 0 : router.query.filter)) {
131
- var ref, ref6;
131
+ var ref, ref7;
132
132
  var filters = (ref = router === null || router === void 0 ? void 0 : router.query.filter) === null || ref === void 0 ? void 0 : ref.filter(function(x) {
133
133
  return x === null || x === void 0 ? void 0 : x.includes(filterType);
134
134
  });
135
135
  if ((filters === null || filters === void 0 ? void 0 : filters.length) && filters.length > 1) {
136
136
  return '';
137
137
  }
138
- var filterTerm = (ref6 = /\d+/.exec((filters === null || filters === void 0 ? void 0 : filters[0]) || '')) === null || ref6 === void 0 ? void 0 : ref6[0];
138
+ var filterTerm = (ref7 = /\d+/.exec((filters === null || filters === void 0 ? void 0 : filters[0]) || '')) === null || ref7 === void 0 ? void 0 : ref7[0];
139
139
  if (!filterTerm) return '';
140
140
  filterId = filterTerm;
141
141
  } else {
142
- var ref7, ref8, ref9;
143
- var isFiltered = router === null || router === void 0 ? void 0 : (ref7 = router.query) === null || ref7 === void 0 ? void 0 : (ref8 = ref7.filter) === null || ref8 === void 0 ? void 0 : ref8.includes(filterType);
142
+ var ref8, ref9, ref10;
143
+ var isFiltered = router === null || router === void 0 ? void 0 : (ref8 = router.query) === null || ref8 === void 0 ? void 0 : (ref9 = ref8.filter) === null || ref9 === void 0 ? void 0 : ref9.includes(filterType);
144
144
  if (!isFiltered) {
145
145
  return '';
146
146
  }
147
- filterId = (ref9 = /(\w+)-(\d+)/.exec(router === null || router === void 0 ? void 0 : router.query.filter)) === null || ref9 === void 0 ? void 0 : ref9[0];
147
+ filterId = (ref10 = /(\w+)-(\d+)/.exec(router === null || router === void 0 ? void 0 : router.query.filter)) === null || ref10 === void 0 ? void 0 : ref10[0];
148
148
  }
149
149
  return filterId;
150
150
  }
151
151
  function getBrandName(router, filtersData) {
152
- var ref, ref10, ref11;
152
+ var ref, ref11, ref12;
153
153
  var brandId = getFilterByType('brand', router);
154
154
  var brand = (ref = filtersData === null || filtersData === void 0 ? void 0 : filtersData.find(function(x) {
155
155
  return x.name === 'Brands';
156
- })) === null || ref === void 0 ? void 0 : (ref10 = ref.items) === null || ref10 === void 0 ? void 0 : ref10.find(function(x) {
156
+ })) === null || ref === void 0 ? void 0 : (ref11 = ref.items) === null || ref11 === void 0 ? void 0 : ref11.find(function(x) {
157
157
  return x.data.key === brandId;
158
158
  });
159
- return getTranslatableField(brand === null || brand === void 0 ? void 0 : (ref11 = brand.meta) === null || ref11 === void 0 ? void 0 : ref11.name);
159
+ return getTranslatableField(brand === null || brand === void 0 ? void 0 : (ref12 = brand.meta) === null || ref12 === void 0 ? void 0 : ref12.name);
160
160
  }
161
- function getCategoryName(router, categories) {
161
+ export function getCategoryName(router, categories) {
162
162
  var categoryId = getFilterByType('category', router);
163
163
  if (!categoryId || !categories) return;
164
164
  var stack = _toConsumableArray(categories);
@@ -106,7 +106,9 @@ export var useSlideFilter = function(filterName, min, max) {
106
106
  aggType: filterName,
107
107
  aggKey: "".concat(formattedFrom, ",").concat(formattedTo),
108
108
  aggOperator: filtersOperatorsMap.stats
109
- }, false, router, true));
109
+ }, false, router, true), undefined, {
110
+ shallow: true
111
+ });
110
112
  }, 500);
111
113
  setState({
112
114
  from: formattedFrom,
@@ -60,7 +60,7 @@ export var buildCategoryQuery = function(param) {
60
60
  filter += (ref = config === null || config === void 0 ? void 0 : config.filterExtension) !== null && ref !== void 0 ? ref : '';
61
61
  }
62
62
  if (postFilter) {
63
- if (router.query.cat) filter += '&';
63
+ if (filter) filter += '&';
64
64
  filter += postFilter;
65
65
  }
66
66
  break;
@@ -77,6 +77,14 @@ export var buildCategoryQuery = function(param) {
77
77
  filter += "text;eq;\"".concat(searchQuery, "\"");
78
78
  if (postFilter) filter += "&".concat(postFilter);
79
79
  break;
80
+ case ListingTypesEnum.View:
81
+ filter += applyViewsPostFilter({
82
+ postFilter: postFilter
83
+ });
84
+ if (config === null || config === void 0 ? void 0 : config.filterExtension) {
85
+ filter += filter ? "&".concat(config === null || config === void 0 ? void 0 : config.filterExtension) : config === null || config === void 0 ? void 0 : config.filterExtension;
86
+ }
87
+ break;
80
88
  default:
81
89
  return "".concat((config === null || config === void 0 ? void 0 : config.filterExtension) + "".concat(postFilter !== null && postFilter !== void 0 ? postFilter : ''));
82
90
  }
@@ -108,3 +116,16 @@ var applyBrandsPostFilter = function(param) {
108
116
  }
109
117
  return '';
110
118
  };
119
+ var applyViewsPostFilter = function(param) {
120
+ var postFilter = param.postFilter;
121
+ if (postFilter) {
122
+ var filtersArr = postFilter.split('&');
123
+ var filters = filtersArr.reduce(function(res, val, i) {
124
+ if (val.includes('category')) return res;
125
+ if (!res) return res + "".concat(val);
126
+ return res += "&".concat(val);
127
+ }, '');
128
+ return "".concat(filters);
129
+ }
130
+ return '';
131
+ };
@@ -1,9 +1,50 @@
1
+ import regeneratorRuntime from "regenerator-runtime";
1
2
  import { MyWalletGetByType } from '@sentecacommerce/sdk';
2
3
  import { useQuery } from 'react-query';
4
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
5
+ try {
6
+ var info = gen[key](arg);
7
+ var value = info.value;
8
+ } catch (error) {
9
+ reject(error);
10
+ return;
11
+ }
12
+ if (info.done) {
13
+ resolve(value);
14
+ } else {
15
+ Promise.resolve(value).then(_next, _throw);
16
+ }
17
+ }
18
+ function _asyncToGenerator(fn) {
19
+ return function() {
20
+ var self = this, args = arguments;
21
+ return new Promise(function(resolve, reject) {
22
+ var gen = fn.apply(self, args);
23
+ function _next(value) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
25
+ }
26
+ function _throw(err) {
27
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
28
+ }
29
+ _next(undefined);
30
+ });
31
+ };
32
+ }
3
33
  export var useGetMyLoyaltyCardQuery = function(callback) {
4
- return useQuery('get-loyalty-card-key', function() {
5
- return MyWalletGetByType('loyalty-program');
6
- }, {
34
+ return useQuery('get-loyalty-card-key', _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
35
+ return regeneratorRuntime.wrap(function _callee$(_ctx) {
36
+ while(1)switch(_ctx.prev = _ctx.next){
37
+ case 0:
38
+ return _ctx.abrupt("return", MyWalletGetByType('loyalty-program'));
39
+ case 1:
40
+ case "end":
41
+ return _ctx.stop();
42
+ }
43
+ }, _callee);
44
+ })), {
45
+ refetchOnMount: false,
46
+ refetchOnWindowFocus: false,
47
+ retry: false,
7
48
  onSuccess: function() {
8
49
  var ref;
9
50
  return callback === null || callback === void 0 ? void 0 : (ref = callback.onSuccess) === null || ref === void 0 ? void 0 : ref.call(callback);
@@ -95,7 +95,9 @@ export var getSelectedFilters = function(router, slug, data, config) {
95
95
  aggType: key,
96
96
  aggKey: "".concat(valueFrom, ",").concat(valueTo),
97
97
  aggOperator: filtersOperatorsMap.stats
98
- }, true, router));
98
+ }, true, router), undefined, {
99
+ shallow: true
100
+ });
99
101
  },
100
102
  selected: true,
101
103
  data: _objectSpread({}, data.raw, {
@@ -1,10 +1,15 @@
1
1
  export var readFromLocalStorage = function(key) {
2
2
  if (typeof window !== 'undefined') {
3
- return JSON.parse(localStorage.getItem(key));
3
+ try {
4
+ return JSON.parse(localStorage.getItem(key));
5
+ } catch (e) {
6
+ console.log(e);
7
+ return null;
8
+ }
4
9
  }
5
10
  };
6
11
  export var writeToLocalStorage = function(key, data) {
7
- if (typeof window !== 'undefined') {
12
+ if (typeof window !== 'undefined' && data !== undefined) {
8
13
  localStorage.setItem(key, JSON.stringify(data));
9
14
  }
10
15
  };
@@ -1 +1,2 @@
1
1
  export * from './useReplaceBasketMutation';
2
+ export * from './useChangeGiftVariant';
@@ -0,0 +1,2 @@
1
+ import { OrderSelectableGiftVariantUpdateDTO, OrderDTO } from '@sentecacommerce/sdk';
2
+ export declare const useChangeGiftVariantMutation: () => import("react-query").MutationResultPair<OrderDTO, unknown, OrderSelectableGiftVariantUpdateDTO, unknown>;
@@ -1,2 +1,3 @@
1
1
  export * from './useReplaceBasket';
2
2
  export * from './useBasketCrossSaleItems';
3
+ export * from './useChangeGiftVariant';
@@ -0,0 +1,2 @@
1
+ import { useChangeGiftVariantMutation } from '../api/mutations';
2
+ export { useChangeGiftVariantMutation as useChangeGiftVariant };
@@ -2,7 +2,7 @@ import { LineItemDTO, LineItemDTOLineItemModeEnum, LineItemDTOStatusEnum, MoneyD
2
2
  import { BaseProductType } from '../../useLineItem';
3
3
  import { SelectedOptionType } from '../../useProduct/utils';
4
4
  import { AssetsMap } from '../../../utils/assetsToMap';
5
- interface BasketLineItemProps extends BaseProductType {
5
+ export interface BasketLineItemProps extends BaseProductType {
6
6
  productId: string;
7
7
  lineItemId: string;
8
8
  quantityInBasket: number;
@@ -36,4 +36,3 @@ export declare const useBasketLineItem: (props: {
36
36
  item: LineItemDTO;
37
37
  expiry?: number;
38
38
  }) => BasketLineItemProps;
39
- export {};
@@ -1,4 +1,6 @@
1
1
  import { AssetType } from '../../utils/assetsToMap';
2
+ import { NextRouter } from 'next/router';
3
+ import { Node } from './useListingCategories';
2
4
  export declare type UseListingMetaResult = {
3
5
  displayName: string;
4
6
  description: string;
@@ -10,3 +12,5 @@ export declare type UseListingMetaResult = {
10
12
  getCustomFieldByKey: (key: string) => any | undefined;
11
13
  };
12
14
  export declare const useListingMeta: () => UseListingMetaResult;
15
+ export declare function getFilterByType(filterType: string, router?: NextRouter): string;
16
+ export declare function getCategoryName(router?: NextRouter, categories?: Node[] | null): string | undefined;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sentecacommerce-theme/lib",
3
3
  "sideEffects": false,
4
- "version": "0.12.101",
4
+ "version": "0.13.2",
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": "b48bfd0a30f37d4720d671c959e84d4943fb4f6d",
34
+ "gitHead": "a02a163a7ab04039fc81e5e8ce3c38e93131968c",
35
35
  "peerDependencies": {
36
36
  "react-query": "^2.26.2"
37
37
  },
38
38
  "dependencies": {
39
- "@sentecacommerce-theme/base": "^0.12.101",
40
- "@sentecacommerce-theme/cms": "^0.12.101",
39
+ "@sentecacommerce-theme/base": "^0.13.1",
40
+ "@sentecacommerce-theme/cms": "^0.13.1",
41
41
  "@sentecacommerce/sdk": "2.0.161",
42
42
  "body-scroll-lock": "^3.1.5",
43
43
  "copy-to-clipboard": "^3.3.1",