@sentecacommerce-theme/lib 0.13.12 → 0.13.15
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/listing/api/queries/useAggregateQuery.js +4 -0
- package/dist/cjs/listing/api/queries/useListingQuery.js +4 -4
- package/dist/cjs/listing/hooks/useListingCategories.js +5 -1
- package/dist/cjs/listing/utils/buildCategoryQuery.js +24 -14
- 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/cjs/seo/components/ProductSEO/index.js +17 -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/useListingCategories.js +5 -1
- package/dist/esm/listing/utils/buildCategoryQuery.js +24 -14
- 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/esm/seo/components/ProductSEO/index.js +8 -2
- package/dist/types/listing/types.d.ts +2 -0
- package/dist/types/seo/components/ProductSEO/index.d.ts +0 -11
- package/package.json +4 -4
@@ -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
|
}
|
@@ -42,26 +42,36 @@ var buildCategoryQuery = function(param) {
|
|
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
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
50
|
+
if (router.query.cat) {
|
51
|
+
filter += (0, _extendFilter).extendFilter({
|
52
|
+
slug: slug,
|
53
|
+
filterExtension: filterExtension
|
54
|
+
});
|
55
|
+
} else {
|
56
|
+
filter += filterExtension !== null && filterExtension !== void 0 ? filterExtension : '';
|
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('&');
|
62
|
+
if (postFilter) {
|
63
|
+
if (filter) filter += '&';
|
64
|
+
filter += postFilter;
|
65
|
+
}
|
55
66
|
break;
|
56
67
|
case _index.ListingTypesEnum.Category:
|
57
68
|
if (router.query.cat) {
|
58
69
|
filter += (0, _extendFilter).extendFilter({
|
59
70
|
slug: slug,
|
60
|
-
filterExtension:
|
71
|
+
filterExtension: filterExtension
|
61
72
|
});
|
62
73
|
} else {
|
63
|
-
|
64
|
-
filter += (ref = config === null || config === void 0 ? void 0 : config.filterExtension) !== null && ref !== void 0 ? ref : '';
|
74
|
+
filter += filterExtension !== null && filterExtension !== void 0 ? filterExtension : '';
|
65
75
|
}
|
66
76
|
if (postFilter) {
|
67
77
|
if (filter) filter += '&';
|
@@ -71,7 +81,7 @@ var buildCategoryQuery = function(param) {
|
|
71
81
|
case _index.ListingTypesEnum.AttrPage:
|
72
82
|
filter += (0, _extendFilter).extendFilter({
|
73
83
|
slug: slug,
|
74
|
-
filterExtension:
|
84
|
+
filterExtension: filterExtension
|
75
85
|
});
|
76
86
|
if (postFilter) filter += "&".concat(postFilter);
|
77
87
|
break;
|
@@ -85,12 +95,12 @@ var buildCategoryQuery = function(param) {
|
|
85
95
|
filter += applyViewsPostFilter({
|
86
96
|
postFilter: postFilter
|
87
97
|
});
|
88
|
-
if (
|
89
|
-
filter += filter ? "&".concat(
|
98
|
+
if (filterExtension) {
|
99
|
+
filter += filter ? "&".concat(filterExtension) : filterExtension;
|
90
100
|
}
|
91
101
|
break;
|
92
102
|
default:
|
93
|
-
return "".concat(
|
103
|
+
return "".concat(filterExtension + "".concat(postFilter !== null && postFilter !== void 0 ? postFilter : ''));
|
94
104
|
}
|
95
105
|
return filter;
|
96
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:
|
@@ -16,12 +16,28 @@ function _interopRequireDefault(obj) {
|
|
16
16
|
default: obj
|
17
17
|
};
|
18
18
|
}
|
19
|
+
/**
|
20
|
+
* Template Options:
|
21
|
+
* :title: -> is going to be replace with the title
|
22
|
+
* :name: -> is going to be replace with the name
|
23
|
+
* :description: -> is going to be replace with the description
|
24
|
+
* :category: -> is going to be replace with the category
|
25
|
+
* :price: -> is going to be replace with the price
|
26
|
+
* :quantity: -> is going to be replace with the quantity
|
27
|
+
* :brand: -> is going to be replace with the brand
|
28
|
+
*
|
29
|
+
*/ var truncateToCharLength = function(text, maxLenChars) {
|
30
|
+
var separator = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : ' ';
|
31
|
+
var cut = text.indexOf(separator, maxLenChars);
|
32
|
+
if (cut === -1) return text;
|
33
|
+
return text.substring(0, cut);
|
34
|
+
};
|
19
35
|
function ProductSEO() {
|
20
36
|
var ref16 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _favorTitleTemplateOverMeta = ref16.favorTitleTemplateOverMeta, favorTitleTemplateOverMeta = _favorTitleTemplateOverMeta === void 0 ? false : _favorTitleTemplateOverMeta, _favorDescriptionTemplateOverMeta = ref16.favorDescriptionTemplateOverMeta, favorDescriptionTemplateOverMeta = _favorDescriptionTemplateOverMeta === void 0 ? false : _favorDescriptionTemplateOverMeta, _titleTemplate = ref16.titleTemplate, titleTemplate = _titleTemplate === void 0 ? ':title:' : _titleTemplate, _descriptionTemplate = ref16.descriptionTemplate, descriptionTemplate = _descriptionTemplate === void 0 ? ':description:' : _descriptionTemplate;
|
21
37
|
var ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, ref10, ref11, ref12, ref13, ref14;
|
22
38
|
var ref15 = (0, _useProduct).useProductState(), selectedVariant = ref15.selectedVariant, metaData = ref15.metaData, seoData = ref15.seoData;
|
23
39
|
var domain = (0, _useConfig).useConfigState().domain;
|
24
|
-
var description = (0, _utils).escape(seoData.description || metaData.shortDescription || metaData.description || '');
|
40
|
+
var description = (0, _utils).escape(seoData.description || metaData.shortDescription || truncateToCharLength(metaData === null || metaData === void 0 ? void 0 : metaData.description, 200) || '');
|
25
41
|
var title = seoData.title || metaData.name || '';
|
26
42
|
var price = (0, _usePrice).usePrice({
|
27
43
|
price: selectedVariant === null || selectedVariant === void 0 ? void 0 : (ref1 = selectedVariant.offer) === null || ref1 === void 0 ? void 0 : ref1.originalPrice
|
@@ -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
|
}
|
@@ -38,26 +38,36 @@ export var buildCategoryQuery = function(param) {
|
|
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
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
46
|
+
if (router.query.cat) {
|
47
|
+
filter += extendFilter({
|
48
|
+
slug: slug,
|
49
|
+
filterExtension: filterExtension
|
50
|
+
});
|
51
|
+
} else {
|
52
|
+
filter += filterExtension !== null && filterExtension !== void 0 ? filterExtension : '';
|
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('&');
|
58
|
+
if (postFilter) {
|
59
|
+
if (filter) filter += '&';
|
60
|
+
filter += postFilter;
|
61
|
+
}
|
51
62
|
break;
|
52
63
|
case ListingTypesEnum.Category:
|
53
64
|
if (router.query.cat) {
|
54
65
|
filter += extendFilter({
|
55
66
|
slug: slug,
|
56
|
-
filterExtension:
|
67
|
+
filterExtension: filterExtension
|
57
68
|
});
|
58
69
|
} else {
|
59
|
-
|
60
|
-
filter += (ref = config === null || config === void 0 ? void 0 : config.filterExtension) !== null && ref !== void 0 ? ref : '';
|
70
|
+
filter += filterExtension !== null && filterExtension !== void 0 ? filterExtension : '';
|
61
71
|
}
|
62
72
|
if (postFilter) {
|
63
73
|
if (filter) filter += '&';
|
@@ -67,7 +77,7 @@ export var buildCategoryQuery = function(param) {
|
|
67
77
|
case ListingTypesEnum.AttrPage:
|
68
78
|
filter += extendFilter({
|
69
79
|
slug: slug,
|
70
|
-
filterExtension:
|
80
|
+
filterExtension: filterExtension
|
71
81
|
});
|
72
82
|
if (postFilter) filter += "&".concat(postFilter);
|
73
83
|
break;
|
@@ -81,12 +91,12 @@ export var buildCategoryQuery = function(param) {
|
|
81
91
|
filter += applyViewsPostFilter({
|
82
92
|
postFilter: postFilter
|
83
93
|
});
|
84
|
-
if (
|
85
|
-
filter += filter ? "&".concat(
|
94
|
+
if (filterExtension) {
|
95
|
+
filter += filter ? "&".concat(filterExtension) : filterExtension;
|
86
96
|
}
|
87
97
|
break;
|
88
98
|
default:
|
89
|
-
return "".concat(
|
99
|
+
return "".concat(filterExtension + "".concat(postFilter !== null && postFilter !== void 0 ? postFilter : ''));
|
90
100
|
}
|
91
101
|
return filter;
|
92
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:
|
@@ -16,12 +16,18 @@ import { useConfigState } from '../../../hooks/useConfig';
|
|
16
16
|
* :quantity: -> is going to be replace with the quantity
|
17
17
|
* :brand: -> is going to be replace with the brand
|
18
18
|
*
|
19
|
-
*/
|
19
|
+
*/ var truncateToCharLength = function(text, maxLenChars) {
|
20
|
+
var separator = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : ' ';
|
21
|
+
var cut = text.indexOf(separator, maxLenChars);
|
22
|
+
if (cut === -1) return text;
|
23
|
+
return text.substring(0, cut);
|
24
|
+
};
|
25
|
+
export function ProductSEO() {
|
20
26
|
var ref16 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _favorTitleTemplateOverMeta = ref16.favorTitleTemplateOverMeta, favorTitleTemplateOverMeta = _favorTitleTemplateOverMeta === void 0 ? false : _favorTitleTemplateOverMeta, _favorDescriptionTemplateOverMeta = ref16.favorDescriptionTemplateOverMeta, favorDescriptionTemplateOverMeta = _favorDescriptionTemplateOverMeta === void 0 ? false : _favorDescriptionTemplateOverMeta, _titleTemplate = ref16.titleTemplate, titleTemplate = _titleTemplate === void 0 ? ':title:' : _titleTemplate, _descriptionTemplate = ref16.descriptionTemplate, descriptionTemplate = _descriptionTemplate === void 0 ? ':description:' : _descriptionTemplate;
|
21
27
|
var ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, ref10, ref11, ref12, ref13, ref14;
|
22
28
|
var ref15 = useProductState(), selectedVariant = ref15.selectedVariant, metaData = ref15.metaData, seoData = ref15.seoData;
|
23
29
|
var domain = useConfigState().domain;
|
24
|
-
var description = escape(seoData.description || metaData.shortDescription || metaData.description || '');
|
30
|
+
var description = escape(seoData.description || metaData.shortDescription || truncateToCharLength(metaData === null || metaData === void 0 ? void 0 : metaData.description, 200) || '');
|
25
31
|
var title = seoData.title || metaData.name || '';
|
26
32
|
var price = usePrice({
|
27
33
|
price: selectedVariant === null || selectedVariant === void 0 ? void 0 : (ref1 = selectedVariant.offer) === null || ref1 === void 0 ? void 0 : ref1.originalPrice
|
@@ -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;
|
@@ -1,14 +1,3 @@
|
|
1
|
-
/**
|
2
|
-
* Template Options:
|
3
|
-
* :title: -> is going to be replace with the title
|
4
|
-
* :name: -> is going to be replace with the name
|
5
|
-
* :description: -> is going to be replace with the description
|
6
|
-
* :category: -> is going to be replace with the category
|
7
|
-
* :price: -> is going to be replace with the price
|
8
|
-
* :quantity: -> is going to be replace with the quantity
|
9
|
-
* :brand: -> is going to be replace with the brand
|
10
|
-
*
|
11
|
-
*/
|
12
1
|
export declare function ProductSEO({ favorTitleTemplateOverMeta, favorDescriptionTemplateOverMeta, titleTemplate, descriptionTemplate, }?: {
|
13
2
|
favorTitleTemplateOverMeta?: boolean;
|
14
3
|
favorDescriptionTemplateOverMeta?: boolean;
|
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.15",
|
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": "29ad2b188f1645f30ed28f6068e232bbe6fc732b",
|
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.15",
|
40
|
+
"@sentecacommerce-theme/cms": "^0.13.15",
|
41
41
|
"@sentecacommerce/sdk": "2.0.175",
|
42
42
|
"body-scroll-lock": "^3.1.5",
|
43
43
|
"copy-to-clipboard": "^3.3.1",
|