@sentecacommerce-theme/lib 0.13.14 → 0.13.17
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/components/AnalyticsScripts/index.js +1 -1
- package/dist/cjs/listing/api/queries/useAggregateQuery.js +4 -0
- package/dist/cjs/listing/api/queries/useListingQuery.js +4 -4
- package/dist/cjs/listing/hooks/useListingBreadcrumbs.js +3 -3
- package/dist/cjs/listing/utils/buildCategoryQuery.js +17 -16
- package/dist/cjs/listing/utils/buildFilterQuery.js +4 -3
- package/dist/cjs/navigation/queries/useMenuQuery.js +4 -1
- package/dist/cjs/navigation/ssr/prefetchMenu.js +4 -1
- package/dist/esm/components/AnalyticsScripts/index.js +1 -1
- package/dist/esm/listing/api/queries/useAggregateQuery.js +4 -0
- package/dist/esm/listing/api/queries/useListingQuery.js +5 -5
- package/dist/esm/listing/hooks/useListingBreadcrumbs.js +3 -3
- package/dist/esm/listing/utils/buildCategoryQuery.js +17 -16
- package/dist/esm/listing/utils/buildFilterQuery.js +4 -3
- package/dist/esm/navigation/queries/useMenuQuery.js +4 -1
- package/dist/esm/navigation/ssr/prefetchMenu.js +4 -1
- package/dist/types/listing/types.d.ts +2 -0
- package/package.json +4 -4
@@ -98,7 +98,7 @@ function AnalyticsScripts() {
|
|
98
98
|
}) : null,
|
99
99
|
gtm: hasGoogleId ? /*#__PURE__*/ _react.default.createElement("script", {
|
100
100
|
dangerouslySetInnerHTML: {
|
101
|
-
__html: "\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '".concat((ref6 = config.google) === null || ref6 === void 0 ? void 0 : ref6.id, "', {\n page_path: window.location.pathname,\n });\n ").concat(hasGoogleReMarketing ? "gtag('config', ".concat((ref7 = config.google) === null || ref7 === void 0 ? void 0 : (ref8 = ref7.reMarketing) === null || ref8 === void 0 ? void 0 : ref8.id, ")") : '', "\n ")
|
101
|
+
__html: "\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '".concat((ref6 = config.google) === null || ref6 === void 0 ? void 0 : ref6.id, "', {\n page_path: window.location.pathname,\n });\n ").concat(hasGoogleReMarketing ? "gtag('config', '".concat((ref7 = config.google) === null || ref7 === void 0 ? void 0 : (ref8 = ref7.reMarketing) === null || ref8 === void 0 ? void 0 : ref8.id, "')") : '', "\n ")
|
102
102
|
}
|
103
103
|
}) : null,
|
104
104
|
pixel: ((ref9 = config.facebook) === null || ref9 === void 0 ? void 0 : ref9.pixelId) ? /*#__PURE__*/ _react.default.createElement("script", {
|
@@ -96,6 +96,10 @@ var useAggregateQuery = function(aggregates, request, sort) {
|
|
96
96
|
aliasedSlug,
|
97
97
|
postFilter
|
98
98
|
];
|
99
|
+
if (request === AggregateRequestEnum.Filters) {
|
100
|
+
queryKeys.push('Slug: ' + router.query.slug);
|
101
|
+
queryKeys.push('Cat: ' + router.query.cat);
|
102
|
+
}
|
99
103
|
return (0, _reactQuery).useQuery(queryKeys, _asyncToGenerator(_regeneratorRuntime.default.mark(function _callee() {
|
100
104
|
var query, response;
|
101
105
|
return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
|
@@ -123,7 +123,6 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
123
123
|
var useListingQuery = function() {
|
124
124
|
var ref;
|
125
125
|
var router = (0, _router).useRouter();
|
126
|
-
var slug = (0, _hooks).useListingSlug();
|
127
126
|
var config = (0, _hooks).useListingConfig();
|
128
127
|
var ref1 = (0, _).usePredicate(), predicate = ref1.data;
|
129
128
|
var ref2 = (0, _hooks).useListingAlias(config.meta), aliasedSlug = ref2.slug;
|
@@ -180,11 +179,12 @@ function processListingQuery(_) {
|
|
180
179
|
}
|
181
180
|
function _processListingQuery() {
|
182
181
|
_processListingQuery = _asyncToGenerator(_regeneratorRuntime.default.mark(function _callee(param) {
|
183
|
-
var predicate, router, limit, sort, postFilter, offset, config, slug, _includeVariants, includeVariants, query, type, filter, _sort;
|
182
|
+
var predicate, router, limit, sort, postFilter, offset, config, slug, _includeVariants, includeVariants, ref, query, type, filter, _sort;
|
184
183
|
return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
|
185
184
|
while(1)switch(_ctx.prev = _ctx.next){
|
186
185
|
case 0:
|
187
186
|
predicate = param.predicate, router = param.router, limit = param.limit, sort = param.sort, postFilter = param.postFilter, offset = param.offset, config = param.config, slug = param.slug, _includeVariants = param.includeVariants, includeVariants = _includeVariants === void 0 ? false : _includeVariants;
|
187
|
+
;
|
188
188
|
query = router.query;
|
189
189
|
type = (0, _utils).getListingPageType(router, slug, config);
|
190
190
|
filter = generateFilter(type, query, slug, predicate);
|
@@ -194,7 +194,7 @@ function _processListingQuery() {
|
|
194
194
|
offset: offset || 0,
|
195
195
|
filter: (0, _utils).extendFilter({
|
196
196
|
slug: filter,
|
197
|
-
filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension,
|
197
|
+
filterExtension: (config === null || config === void 0 ? void 0 : (ref = config.getFilterExtension) === null || ref === void 0 ? void 0 : ref.call(config, predicate)) || (config === null || config === void 0 ? void 0 : config.filterExtension),
|
198
198
|
noSplit: true
|
199
199
|
}),
|
200
200
|
sort: (_sort = query.sort) !== null && _sort !== void 0 ? _sort : sort
|
@@ -205,7 +205,7 @@ function _processListingQuery() {
|
|
205
205
|
}, {
|
206
206
|
includeVariants: includeVariants
|
207
207
|
})));
|
208
|
-
case
|
208
|
+
case 7:
|
209
209
|
case "end":
|
210
210
|
return _ctx.stop();
|
211
211
|
}
|
@@ -70,12 +70,12 @@ var useListingBreadcrumbs = function() {
|
|
70
70
|
];
|
71
71
|
}
|
72
72
|
var breadcrumbData = createCatalogBreadcrumb(data, config.type, router);
|
73
|
-
if (config.type === _.ListingTypesEnum.View || config.type === _.ListingTypesEnum.Brand) {
|
73
|
+
if ((config.type === _.ListingTypesEnum.View || config.type === _.ListingTypesEnum.Brand) && categoryName) {
|
74
74
|
var ref2;
|
75
75
|
breadcrumbData.push({
|
76
|
-
name: categoryName
|
76
|
+
name: categoryName,
|
77
77
|
id: categoryId,
|
78
|
-
link: processLink((ref2 = data) === null || ref2 === void 0 ? void 0 : ref2.slug, config.type,
|
78
|
+
link: processLink((ref2 = data) === null || ref2 === void 0 ? void 0 : ref2.slug, config.type, '') + applyFilters(router)
|
79
79
|
});
|
80
80
|
}
|
81
81
|
return breadcrumbData;
|
@@ -34,43 +34,44 @@ function _objectSpread(target) {
|
|
34
34
|
}
|
35
35
|
var buildCategoryQuery = function(param) {
|
36
36
|
var aggregates = param.aggregates, predicate = param.predicate, postFilter = param.postFilter, pageType = param.pageType, config = param.config, router = param.router, slug = param.slug;
|
37
|
-
var
|
38
|
-
var type = (aggregates === null || aggregates === void 0 ? void 0 : (
|
37
|
+
var ref2, ref1;
|
38
|
+
var type = (aggregates === null || aggregates === void 0 ? void 0 : (ref2 = aggregates[0]) === null || ref2 === void 0 ? void 0 : ref2.aggregationType) || '';
|
39
39
|
var term = (aggregates === null || aggregates === void 0 ? void 0 : (ref1 = aggregates[0]) === null || ref1 === void 0 ? void 0 : ref1.aggregationDefinition) || '';
|
40
40
|
var aggValue = getAggValue({
|
41
41
|
id: predicate === null || predicate === void 0 ? void 0 : predicate._id,
|
42
42
|
term: term
|
43
43
|
});
|
44
44
|
var getFilters = function() {
|
45
|
+
var ref;
|
46
|
+
var filterExtension = (config === null || config === void 0 ? void 0 : (ref = config.getFilterExtension) === null || ref === void 0 ? void 0 : ref.call(config, predicate)) || (config === null || config === void 0 ? void 0 : config.filterExtension);
|
45
47
|
var filter = '';
|
46
48
|
switch(pageType){
|
47
49
|
case _index.ListingTypesEnum.Brand:
|
48
50
|
if (router.query.cat) {
|
49
51
|
filter += (0, _extendFilter).extendFilter({
|
50
52
|
slug: slug,
|
51
|
-
filterExtension:
|
53
|
+
filterExtension: filterExtension
|
52
54
|
});
|
53
55
|
} else {
|
54
|
-
|
55
|
-
filter += (ref = config === null || config === void 0 ? void 0 : config.filterExtension) !== null && ref !== void 0 ? ref : '';
|
56
|
+
filter += filterExtension !== null && filterExtension !== void 0 ? filterExtension : '';
|
56
57
|
}
|
58
|
+
// Note: We can't filter the category tree by a category
|
59
|
+
postFilter = postFilter === null || postFilter === void 0 ? void 0 : postFilter.split('&').filter(function(f) {
|
60
|
+
return !f.includes('category');
|
61
|
+
}).join('&');
|
57
62
|
if (postFilter) {
|
58
63
|
if (filter) filter += '&';
|
59
|
-
|
60
|
-
filter += postFilter.split('&').filter(function(f) {
|
61
|
-
return !f.includes('category');
|
62
|
-
}).join('&');
|
64
|
+
filter += postFilter;
|
63
65
|
}
|
64
66
|
break;
|
65
67
|
case _index.ListingTypesEnum.Category:
|
66
68
|
if (router.query.cat) {
|
67
69
|
filter += (0, _extendFilter).extendFilter({
|
68
70
|
slug: slug,
|
69
|
-
filterExtension:
|
71
|
+
filterExtension: filterExtension
|
70
72
|
});
|
71
73
|
} else {
|
72
|
-
|
73
|
-
filter += (ref2 = config === null || config === void 0 ? void 0 : config.filterExtension) !== null && ref2 !== void 0 ? ref2 : '';
|
74
|
+
filter += filterExtension !== null && filterExtension !== void 0 ? filterExtension : '';
|
74
75
|
}
|
75
76
|
if (postFilter) {
|
76
77
|
if (filter) filter += '&';
|
@@ -80,7 +81,7 @@ var buildCategoryQuery = function(param) {
|
|
80
81
|
case _index.ListingTypesEnum.AttrPage:
|
81
82
|
filter += (0, _extendFilter).extendFilter({
|
82
83
|
slug: slug,
|
83
|
-
filterExtension:
|
84
|
+
filterExtension: filterExtension
|
84
85
|
});
|
85
86
|
if (postFilter) filter += "&".concat(postFilter);
|
86
87
|
break;
|
@@ -94,12 +95,12 @@ var buildCategoryQuery = function(param) {
|
|
94
95
|
filter += applyViewsPostFilter({
|
95
96
|
postFilter: postFilter
|
96
97
|
});
|
97
|
-
if (
|
98
|
-
filter += filter ? "&".concat(
|
98
|
+
if (filterExtension) {
|
99
|
+
filter += filter ? "&".concat(filterExtension) : filterExtension;
|
99
100
|
}
|
100
101
|
break;
|
101
102
|
default:
|
102
|
-
return "".concat(
|
103
|
+
return "".concat(filterExtension + "".concat(postFilter !== null && postFilter !== void 0 ? postFilter : ''));
|
103
104
|
}
|
104
105
|
return filter;
|
105
106
|
};
|
@@ -81,10 +81,11 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
81
81
|
}
|
82
82
|
var buildFilterQuery = function(param) {
|
83
83
|
var predicate = param.predicate, slug = param.slug, pageType = param.pageType, router = param.router, aggregates = param.aggregates, config = param.config, postFilter = param.postFilter;
|
84
|
-
var ref;
|
84
|
+
var ref, ref1;
|
85
85
|
var query = (predicate === null || predicate === void 0 ? void 0 : predicate.filters) || (predicate === null || predicate === void 0 ? void 0 : predicate._id) || slug;
|
86
86
|
var queryType = pageType === _index.ListingTypesEnum.Search ? 'text' : pageType;
|
87
|
-
var
|
87
|
+
var collapseMode = (config || {}).collapseMode;
|
88
|
+
var filterExtension = (config === null || config === void 0 ? void 0 : (ref = config.getFilterExtension) === null || ref === void 0 ? void 0 : ref.call(config)) || (config === null || config === void 0 ? void 0 : config.filterExtension);
|
88
89
|
var filter = '';
|
89
90
|
if (pageType === _index.ListingTypesEnum.AttrPage) {
|
90
91
|
var ref2 = _slicedToArray((0, _utils).getAttributePageType(router, slug), 2), type = ref2[0], val = ref2[1];
|
@@ -120,7 +121,7 @@ var buildFilterQuery = function(param) {
|
|
120
121
|
noSplit: true
|
121
122
|
})
|
122
123
|
});
|
123
|
-
if ((
|
124
|
+
if ((ref1 = router.query) === null || ref1 === void 0 ? void 0 : ref1.filter) builtQuery = _objectSpread({}, builtQuery, {
|
124
125
|
postFilter: postFilter
|
125
126
|
});
|
126
127
|
if (pageType !== _index.ListingTypesEnum.Collection && collapseMode) builtQuery = _objectSpread({}, builtQuery, {
|
@@ -43,7 +43,10 @@ function _interopRequireDefault(obj) {
|
|
43
43
|
}
|
44
44
|
var useMenuQuery = function() {
|
45
45
|
var interfaceKey = (0, _index).useConfigState().interfaceKey;
|
46
|
-
return (0, _reactQuery).useQuery(
|
46
|
+
return (0, _reactQuery).useQuery([
|
47
|
+
_keys.NavigationKeysEnum.useMenuQuery,
|
48
|
+
interfaceKey
|
49
|
+
], _asyncToGenerator(_regeneratorRuntime.default.mark(function _callee() {
|
47
50
|
return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
|
48
51
|
while(1)switch(_ctx.prev = _ctx.next){
|
49
52
|
case 0:
|
@@ -55,7 +55,10 @@ function _prefetchMenu() {
|
|
55
55
|
case 2:
|
56
56
|
data = _ctx.sent;
|
57
57
|
menus = data === null || data === void 0 ? void 0 : data.results;
|
58
|
-
queryCache.setQueryData(
|
58
|
+
queryCache.setQueryData([
|
59
|
+
_keys.NavigationKeysEnum.useMenuQuery,
|
60
|
+
interfaceKey
|
61
|
+
], menus, {
|
59
62
|
staleTime: 30000
|
60
63
|
});
|
61
64
|
case 5:
|
@@ -68,7 +68,7 @@ export function AnalyticsScripts() {
|
|
68
68
|
}) : null,
|
69
69
|
gtm: hasGoogleId ? /*#__PURE__*/ React.createElement("script", {
|
70
70
|
dangerouslySetInnerHTML: {
|
71
|
-
__html: "\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '".concat((ref6 = config.google) === null || ref6 === void 0 ? void 0 : ref6.id, "', {\n page_path: window.location.pathname,\n });\n ").concat(hasGoogleReMarketing ? "gtag('config', ".concat((ref7 = config.google) === null || ref7 === void 0 ? void 0 : (ref8 = ref7.reMarketing) === null || ref8 === void 0 ? void 0 : ref8.id, ")") : '', "\n ")
|
71
|
+
__html: "\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '".concat((ref6 = config.google) === null || ref6 === void 0 ? void 0 : ref6.id, "', {\n page_path: window.location.pathname,\n });\n ").concat(hasGoogleReMarketing ? "gtag('config', '".concat((ref7 = config.google) === null || ref7 === void 0 ? void 0 : (ref8 = ref7.reMarketing) === null || ref8 === void 0 ? void 0 : ref8.id, "')") : '', "\n ")
|
72
72
|
}
|
73
73
|
}) : null,
|
74
74
|
pixel: ((ref9 = config.facebook) === null || ref9 === void 0 ? void 0 : ref9.pixelId) ? /*#__PURE__*/ React.createElement("script", {
|
@@ -84,6 +84,10 @@ export var useAggregateQuery = function(aggregates, request, sort) {
|
|
84
84
|
aliasedSlug,
|
85
85
|
postFilter
|
86
86
|
];
|
87
|
+
if (request === AggregateRequestEnum.Filters) {
|
88
|
+
queryKeys.push('Slug: ' + router.query.slug);
|
89
|
+
queryKeys.push('Cat: ' + router.query.cat);
|
90
|
+
}
|
87
91
|
return useQuery(queryKeys, _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|
88
92
|
var query, response;
|
89
93
|
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
@@ -2,7 +2,7 @@ import regeneratorRuntime from "regenerator-runtime";
|
|
2
2
|
import { CatalogFilter } from '@sentecacommerce/sdk';
|
3
3
|
import { useQuery } from 'react-query';
|
4
4
|
import { useRouter } from 'next/router';
|
5
|
-
import { useListingConfig,
|
5
|
+
import { useListingConfig, useListingAlias } from '../../hooks';
|
6
6
|
import { getListingQueryKeys, usePredicate } from '..';
|
7
7
|
import { ListingTypesEnum } from '../../types';
|
8
8
|
import { calculateOffset, getListingPageType, getPostFilters, extendFilter } from '../../utils';
|
@@ -112,7 +112,6 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
112
112
|
export var useListingQuery = function() {
|
113
113
|
var ref;
|
114
114
|
var router = useRouter();
|
115
|
-
var slug = useListingSlug();
|
116
115
|
var config = useListingConfig();
|
117
116
|
var ref1 = usePredicate(), predicate = ref1.data;
|
118
117
|
var ref2 = useListingAlias(config.meta), aliasedSlug = ref2.slug;
|
@@ -168,11 +167,12 @@ export function processListingQuery(_) {
|
|
168
167
|
}
|
169
168
|
function _processListingQuery() {
|
170
169
|
_processListingQuery = _asyncToGenerator(regeneratorRuntime.mark(function _callee(param) {
|
171
|
-
var predicate, router, limit, sort, postFilter, offset, config, slug, _includeVariants, includeVariants, query, type, filter, _sort;
|
170
|
+
var predicate, router, limit, sort, postFilter, offset, config, slug, _includeVariants, includeVariants, ref, query, type, filter, _sort;
|
172
171
|
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
173
172
|
while(1)switch(_ctx.prev = _ctx.next){
|
174
173
|
case 0:
|
175
174
|
predicate = param.predicate, router = param.router, limit = param.limit, sort = param.sort, postFilter = param.postFilter, offset = param.offset, config = param.config, slug = param.slug, _includeVariants = param.includeVariants, includeVariants = _includeVariants === void 0 ? false : _includeVariants;
|
175
|
+
;
|
176
176
|
query = router.query;
|
177
177
|
type = getListingPageType(router, slug, config);
|
178
178
|
filter = generateFilter(type, query, slug, predicate);
|
@@ -182,7 +182,7 @@ function _processListingQuery() {
|
|
182
182
|
offset: offset || 0,
|
183
183
|
filter: extendFilter({
|
184
184
|
slug: filter,
|
185
|
-
filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension,
|
185
|
+
filterExtension: (config === null || config === void 0 ? void 0 : (ref = config.getFilterExtension) === null || ref === void 0 ? void 0 : ref.call(config, predicate)) || (config === null || config === void 0 ? void 0 : config.filterExtension),
|
186
186
|
noSplit: true
|
187
187
|
}),
|
188
188
|
sort: (_sort = query.sort) !== null && _sort !== void 0 ? _sort : sort
|
@@ -193,7 +193,7 @@ function _processListingQuery() {
|
|
193
193
|
}, {
|
194
194
|
includeVariants: includeVariants
|
195
195
|
})));
|
196
|
-
case
|
196
|
+
case 7:
|
197
197
|
case "end":
|
198
198
|
return _ctx.stop();
|
199
199
|
}
|
@@ -61,12 +61,12 @@ export var useListingBreadcrumbs = function() {
|
|
61
61
|
];
|
62
62
|
}
|
63
63
|
var breadcrumbData = createCatalogBreadcrumb(data, config.type, router);
|
64
|
-
if (config.type === ListingTypesEnum.View || config.type === ListingTypesEnum.Brand) {
|
64
|
+
if ((config.type === ListingTypesEnum.View || config.type === ListingTypesEnum.Brand) && categoryName) {
|
65
65
|
var ref2;
|
66
66
|
breadcrumbData.push({
|
67
|
-
name: categoryName
|
67
|
+
name: categoryName,
|
68
68
|
id: categoryId,
|
69
|
-
link: processLink((ref2 = data) === null || ref2 === void 0 ? void 0 : ref2.slug, config.type,
|
69
|
+
link: processLink((ref2 = data) === null || ref2 === void 0 ? void 0 : ref2.slug, config.type, '') + applyFilters(router)
|
70
70
|
});
|
71
71
|
}
|
72
72
|
return breadcrumbData;
|
@@ -30,43 +30,44 @@ function _objectSpread(target) {
|
|
30
30
|
}
|
31
31
|
export var buildCategoryQuery = function(param) {
|
32
32
|
var aggregates = param.aggregates, predicate = param.predicate, postFilter = param.postFilter, pageType = param.pageType, config = param.config, router = param.router, slug = param.slug;
|
33
|
-
var
|
34
|
-
var type = (aggregates === null || aggregates === void 0 ? void 0 : (
|
33
|
+
var ref2, ref1;
|
34
|
+
var type = (aggregates === null || aggregates === void 0 ? void 0 : (ref2 = aggregates[0]) === null || ref2 === void 0 ? void 0 : ref2.aggregationType) || '';
|
35
35
|
var term = (aggregates === null || aggregates === void 0 ? void 0 : (ref1 = aggregates[0]) === null || ref1 === void 0 ? void 0 : ref1.aggregationDefinition) || '';
|
36
36
|
var aggValue = getAggValue({
|
37
37
|
id: predicate === null || predicate === void 0 ? void 0 : predicate._id,
|
38
38
|
term: term
|
39
39
|
});
|
40
40
|
var getFilters = function() {
|
41
|
+
var ref;
|
42
|
+
var filterExtension = (config === null || config === void 0 ? void 0 : (ref = config.getFilterExtension) === null || ref === void 0 ? void 0 : ref.call(config, predicate)) || (config === null || config === void 0 ? void 0 : config.filterExtension);
|
41
43
|
var filter = '';
|
42
44
|
switch(pageType){
|
43
45
|
case ListingTypesEnum.Brand:
|
44
46
|
if (router.query.cat) {
|
45
47
|
filter += extendFilter({
|
46
48
|
slug: slug,
|
47
|
-
filterExtension:
|
49
|
+
filterExtension: filterExtension
|
48
50
|
});
|
49
51
|
} else {
|
50
|
-
|
51
|
-
filter += (ref = config === null || config === void 0 ? void 0 : config.filterExtension) !== null && ref !== void 0 ? ref : '';
|
52
|
+
filter += filterExtension !== null && filterExtension !== void 0 ? filterExtension : '';
|
52
53
|
}
|
54
|
+
// Note: We can't filter the category tree by a category
|
55
|
+
postFilter = postFilter === null || postFilter === void 0 ? void 0 : postFilter.split('&').filter(function(f) {
|
56
|
+
return !f.includes('category');
|
57
|
+
}).join('&');
|
53
58
|
if (postFilter) {
|
54
59
|
if (filter) filter += '&';
|
55
|
-
|
56
|
-
filter += postFilter.split('&').filter(function(f) {
|
57
|
-
return !f.includes('category');
|
58
|
-
}).join('&');
|
60
|
+
filter += postFilter;
|
59
61
|
}
|
60
62
|
break;
|
61
63
|
case ListingTypesEnum.Category:
|
62
64
|
if (router.query.cat) {
|
63
65
|
filter += extendFilter({
|
64
66
|
slug: slug,
|
65
|
-
filterExtension:
|
67
|
+
filterExtension: filterExtension
|
66
68
|
});
|
67
69
|
} else {
|
68
|
-
|
69
|
-
filter += (ref2 = config === null || config === void 0 ? void 0 : config.filterExtension) !== null && ref2 !== void 0 ? ref2 : '';
|
70
|
+
filter += filterExtension !== null && filterExtension !== void 0 ? filterExtension : '';
|
70
71
|
}
|
71
72
|
if (postFilter) {
|
72
73
|
if (filter) filter += '&';
|
@@ -76,7 +77,7 @@ export var buildCategoryQuery = function(param) {
|
|
76
77
|
case ListingTypesEnum.AttrPage:
|
77
78
|
filter += extendFilter({
|
78
79
|
slug: slug,
|
79
|
-
filterExtension:
|
80
|
+
filterExtension: filterExtension
|
80
81
|
});
|
81
82
|
if (postFilter) filter += "&".concat(postFilter);
|
82
83
|
break;
|
@@ -90,12 +91,12 @@ export var buildCategoryQuery = function(param) {
|
|
90
91
|
filter += applyViewsPostFilter({
|
91
92
|
postFilter: postFilter
|
92
93
|
});
|
93
|
-
if (
|
94
|
-
filter += filter ? "&".concat(
|
94
|
+
if (filterExtension) {
|
95
|
+
filter += filter ? "&".concat(filterExtension) : filterExtension;
|
95
96
|
}
|
96
97
|
break;
|
97
98
|
default:
|
98
|
-
return "".concat(
|
99
|
+
return "".concat(filterExtension + "".concat(postFilter !== null && postFilter !== void 0 ? postFilter : ''));
|
99
100
|
}
|
100
101
|
return filter;
|
101
102
|
};
|
@@ -77,10 +77,11 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
77
77
|
}
|
78
78
|
export var buildFilterQuery = function(param) {
|
79
79
|
var predicate = param.predicate, slug = param.slug, pageType = param.pageType, router = param.router, aggregates = param.aggregates, config = param.config, postFilter = param.postFilter;
|
80
|
-
var ref;
|
80
|
+
var ref, ref1;
|
81
81
|
var query = (predicate === null || predicate === void 0 ? void 0 : predicate.filters) || (predicate === null || predicate === void 0 ? void 0 : predicate._id) || slug;
|
82
82
|
var queryType = pageType === ListingTypesEnum.Search ? 'text' : pageType;
|
83
|
-
var
|
83
|
+
var collapseMode = (config || {}).collapseMode;
|
84
|
+
var filterExtension = (config === null || config === void 0 ? void 0 : (ref = config.getFilterExtension) === null || ref === void 0 ? void 0 : ref.call(config)) || (config === null || config === void 0 ? void 0 : config.filterExtension);
|
84
85
|
var filter = '';
|
85
86
|
if (pageType === ListingTypesEnum.AttrPage) {
|
86
87
|
var ref2 = _slicedToArray(getAttributePageType(router, slug), 2), type = ref2[0], val = ref2[1];
|
@@ -116,7 +117,7 @@ export var buildFilterQuery = function(param) {
|
|
116
117
|
noSplit: true
|
117
118
|
})
|
118
119
|
});
|
119
|
-
if ((
|
120
|
+
if ((ref1 = router.query) === null || ref1 === void 0 ? void 0 : ref1.filter) builtQuery = _objectSpread({}, builtQuery, {
|
120
121
|
postFilter: postFilter
|
121
122
|
});
|
122
123
|
if (pageType !== ListingTypesEnum.Collection && collapseMode) builtQuery = _objectSpread({}, builtQuery, {
|
@@ -34,7 +34,10 @@ function _asyncToGenerator(fn) {
|
|
34
34
|
}
|
35
35
|
export var useMenuQuery = function() {
|
36
36
|
var interfaceKey = useConfigState().interfaceKey;
|
37
|
-
return useQuery(
|
37
|
+
return useQuery([
|
38
|
+
NavigationKeysEnum.useMenuQuery,
|
39
|
+
interfaceKey
|
40
|
+
], _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|
38
41
|
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
39
42
|
while(1)switch(_ctx.prev = _ctx.next){
|
40
43
|
case 0:
|
@@ -46,7 +46,10 @@ function _prefetchMenu() {
|
|
46
46
|
case 2:
|
47
47
|
data = _ctx.sent;
|
48
48
|
menus = data === null || data === void 0 ? void 0 : data.results;
|
49
|
-
queryCache.setQueryData(
|
49
|
+
queryCache.setQueryData([
|
50
|
+
NavigationKeysEnum.useMenuQuery,
|
51
|
+
interfaceKey
|
52
|
+
], menus, {
|
50
53
|
staleTime: 30000
|
51
54
|
});
|
52
55
|
case 5:
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { BooleanField, StringField, NumberField, EnumField, ListField, GroupField } from '@sentecacommerce-theme/cms';
|
2
|
+
import { PredicateType } from './api/queries/usePredicate';
|
2
3
|
export declare type FiltersQuery = {
|
3
4
|
storeKey?: string;
|
4
5
|
currencyCode?: string;
|
@@ -82,6 +83,7 @@ export interface ListingPageMeta {
|
|
82
83
|
[key: string]: string;
|
83
84
|
};
|
84
85
|
filterExtension?: StringField;
|
86
|
+
getFilterExtension?: (predicate?: PredicateType) => StringField;
|
85
87
|
collapseMode?: StringField;
|
86
88
|
limit: NumberField;
|
87
89
|
includeVariants?: BooleanField;
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@sentecacommerce-theme/lib",
|
3
3
|
"sideEffects": false,
|
4
|
-
"version": "0.13.
|
4
|
+
"version": "0.13.17",
|
5
5
|
"main": "dist/cjs/index.js",
|
6
6
|
"module": "dist/esm/index.js",
|
7
7
|
"types": "dist/types/index.d.ts",
|
@@ -31,13 +31,13 @@
|
|
31
31
|
"watch:cjs": "swc src --out-dir dist/cjs -w",
|
32
32
|
"watch:esm": "swc src --out-dir dist/esm --no-swcrc -w"
|
33
33
|
},
|
34
|
-
"gitHead": "
|
34
|
+
"gitHead": "44b51525b48496e5cb6ff9dc08cd99084dbd2d3f",
|
35
35
|
"peerDependencies": {
|
36
36
|
"react-query": "^2.26.2"
|
37
37
|
},
|
38
38
|
"dependencies": {
|
39
|
-
"@sentecacommerce-theme/base": "^0.13.
|
40
|
-
"@sentecacommerce-theme/cms": "^0.13.
|
39
|
+
"@sentecacommerce-theme/base": "^0.13.17",
|
40
|
+
"@sentecacommerce-theme/cms": "^0.13.17",
|
41
41
|
"@sentecacommerce/sdk": "2.0.175",
|
42
42
|
"body-scroll-lock": "^3.1.5",
|
43
43
|
"copy-to-clipboard": "^3.3.1",
|