@sentecacommerce-theme/lib 0.13.7-alpha.5 → 0.13.7-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/analytics/Pixel/hooks/usePixelProductClick.js +1 -1
- package/dist/cjs/analytics/Pixel/hooks/usePixelProductDetails.js +1 -1
- package/dist/cjs/analytics/Pixel/hooks/usePixelProductsImpression.js +1 -1
- package/dist/cjs/analytics/Pixel/usePixel.js +1 -1
- package/dist/cjs/analytics/Releva/useReleva.js +1 -1
- package/dist/cjs/api.v2/core/checkout/payments/useSetMerchantPaymentMethod.js +1 -1
- package/dist/cjs/checkout/hooks/useBnpCalculateForCart.js +1 -1
- package/dist/cjs/components/Html/index.js +1 -1
- package/dist/cjs/hooks/ui-hooks/useIsDesktop/index.js +2 -2
- package/dist/cjs/hooks/useAllSelectedFilters/index.js +3 -3
- package/dist/cjs/hooks/usePrice/index.js +1 -1
- package/dist/cjs/hooks/useSelectedFilters/index.js +3 -3
- package/dist/cjs/listing/api/queries/useAggregateQuery.js +7 -7
- package/dist/cjs/listing/api/queries/useInfiniteListing.js +4 -4
- package/dist/cjs/listing/api/queries/useListingQuery.js +37 -22
- package/dist/cjs/listing/api/queries/usePredicate.js +4 -4
- package/dist/cjs/listing/components/BasicListingSEO.js +1 -1
- package/dist/cjs/listing/hooks/useListingAlias.js +2 -4
- package/dist/cjs/listing/hooks/useListingBreadcrumbs.js +4 -4
- package/dist/cjs/listing/hooks/useListingCategories.js +7 -8
- package/dist/cjs/listing/hooks/useListingConfig.js +3 -5
- package/dist/cjs/listing/hooks/useListingFilters.js +18 -19
- package/dist/cjs/listing/hooks/useListingItems.js +2 -2
- package/dist/cjs/listing/hooks/useListingMeta.js +5 -4
- package/dist/cjs/listing/hooks/useListingPagination.js +4 -4
- package/dist/cjs/listing/hooks/useListingSlug.js +3 -1
- package/dist/cjs/listing/hooks/useSlideFilter.js +4 -3
- package/dist/cjs/listing/hooks/utils.js +2 -1
- package/dist/cjs/listing/ssr/prefetchListing.js +4 -4
- package/dist/cjs/listing/utils/buildCategoryQuery.js +8 -9
- package/dist/cjs/listing/utils/buildFilterQuery.js +5 -7
- package/dist/cjs/listing/utils/getListingAlias.js +5 -6
- package/dist/cjs/listing/utils/getListingPageType.js +4 -3
- package/dist/cjs/navigation/components/SearchBox/Components/PopularSearches/index.js +1 -1
- package/dist/cjs/product/hooks/useBnpOffers.js +2 -25
- package/dist/cjs/seo/components/GlobalSEO/index.js +3 -3
- package/dist/esm/analytics/Pixel/hooks/usePixelProductClick.js +1 -1
- package/dist/esm/analytics/Pixel/hooks/usePixelProductDetails.js +1 -1
- package/dist/esm/analytics/Pixel/hooks/usePixelProductsImpression.js +1 -1
- package/dist/esm/analytics/Pixel/usePixel.js +1 -1
- package/dist/esm/analytics/Releva/useReleva.js +1 -1
- package/dist/esm/api.v2/core/checkout/payments/useSetMerchantPaymentMethod.js +1 -1
- package/dist/esm/checkout/hooks/useBnpCalculateForCart.js +1 -1
- package/dist/esm/components/Html/index.js +1 -1
- package/dist/esm/hooks/ui-hooks/useIsDesktop/index.js +2 -2
- package/dist/esm/hooks/useAllSelectedFilters/index.js +4 -4
- package/dist/esm/hooks/usePrice/index.js +1 -1
- package/dist/esm/hooks/useSelectedFilters/index.js +4 -4
- package/dist/esm/listing/api/queries/useAggregateQuery.js +7 -7
- package/dist/esm/listing/api/queries/useInfiniteListing.js +4 -4
- package/dist/esm/listing/api/queries/useListingQuery.js +37 -22
- package/dist/esm/listing/api/queries/usePredicate.js +4 -4
- package/dist/esm/listing/components/BasicListingSEO.js +1 -1
- package/dist/esm/listing/hooks/useListingAlias.js +2 -4
- package/dist/esm/listing/hooks/useListingBreadcrumbs.js +5 -5
- package/dist/esm/listing/hooks/useListingCategories.js +8 -9
- package/dist/esm/listing/hooks/useListingConfig.js +4 -6
- package/dist/esm/listing/hooks/useListingFilters.js +18 -19
- package/dist/esm/listing/hooks/useListingItems.js +2 -2
- package/dist/esm/listing/hooks/useListingMeta.js +6 -5
- package/dist/esm/listing/hooks/useListingPagination.js +4 -4
- package/dist/esm/listing/hooks/useListingSlug.js +3 -1
- package/dist/esm/listing/hooks/useSlideFilter.js +5 -4
- package/dist/esm/listing/hooks/utils.js +2 -1
- package/dist/esm/listing/ssr/prefetchListing.js +4 -4
- package/dist/esm/listing/utils/buildCategoryQuery.js +8 -9
- package/dist/esm/listing/utils/buildFilterQuery.js +5 -7
- package/dist/esm/listing/utils/getListingAlias.js +5 -6
- package/dist/esm/listing/utils/getListingPageType.js +4 -3
- package/dist/esm/navigation/components/SearchBox/Components/PopularSearches/index.js +1 -1
- package/dist/esm/product/hooks/useBnpOffers.js +2 -2
- package/dist/esm/seo/components/GlobalSEO/index.js +3 -3
- package/dist/types/listing/api/queries/useAggregateQuery.d.ts +2 -1
- package/dist/types/listing/api/queries/useListingQuery.d.ts +4 -2
- package/dist/types/listing/api/queries/usePredicate.d.ts +2 -1
- package/dist/types/listing/hooks/useListingAlias.d.ts +2 -1
- package/dist/types/listing/hooks/useListingFilters.d.ts +0 -1
- package/dist/types/listing/hooks/useListingItems.d.ts +3 -2
- package/dist/types/listing/hooks/useListingSEOCategories.d.ts +6 -4
- package/dist/types/listing/hooks/utils.d.ts +3 -2
- package/dist/types/listing/ssr/prefetchCategories.d.ts +2 -2
- package/dist/types/listing/ssr/prefetchListing.d.ts +4 -4
- package/dist/types/listing/ssr/prefetchPredicate.d.ts +2 -1
- package/dist/types/listing/types.d.ts +27 -16
- package/dist/types/listing/utils/buildCategoryQuery.d.ts +2 -1
- package/dist/types/listing/utils/buildFilterQuery.d.ts +2 -1
- package/dist/types/listing/utils/extendFilter.d.ts +3 -2
- package/dist/types/listing/utils/getListingAlias.d.ts +2 -1
- package/dist/types/listing/utils/getListingPageType.d.ts +2 -2
- package/dist/types/types/index.d.ts +38 -40
- package/dist/types/utils/getSelectedFilters.d.ts +2 -1
- package/package.json +16 -11
@@ -6,7 +6,6 @@ import { useListingConfig, useListingSlug, useListingAlias } from '../../hooks';
|
|
6
6
|
import { getListingQueryKeys, usePredicate } from '..';
|
7
7
|
import { ListingTypesEnum } from '../../types';
|
8
8
|
import { calculateOffset, getListingPageType, getPostFilters, extendFilter } from '../../utils';
|
9
|
-
import { useConfigState } from '../../..';
|
10
9
|
function _arrayWithHoles(arr) {
|
11
10
|
if (Array.isArray(arr)) return arr;
|
12
11
|
}
|
@@ -97,46 +96,47 @@ function _slicedToArray(arr, i) {
|
|
97
96
|
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
|
98
97
|
}
|
99
98
|
export var useListingQuery = function() {
|
100
|
-
var ref
|
99
|
+
var ref;
|
101
100
|
var router = useRouter();
|
102
101
|
var slug = useListingSlug();
|
103
102
|
var config = useListingConfig();
|
104
|
-
var
|
105
|
-
var
|
106
|
-
var ref4 = useListingAlias(), aliasedSlug = ref4.slug;
|
103
|
+
var ref1 = usePredicate(), predicate = ref1.data;
|
104
|
+
var ref2 = useListingAlias(config.meta), aliasedSlug = ref2.slug;
|
107
105
|
var query = router.query;
|
108
106
|
var postFilter = getPostFilters(router);
|
109
|
-
var
|
110
|
-
var
|
111
|
-
var _sort, ref7;
|
112
|
-
var sort = (ref7 = (_sort = query.sort) !== null && _sort !== void 0 ? _sort : globalConfig === null || globalConfig === void 0 ? void 0 : (ref2 = globalConfig.listing) === null || ref2 === void 0 ? void 0 : ref2.defaultSortKey) !== null && ref7 !== void 0 ? ref7 : 'defaultSort';
|
107
|
+
var limit = Number((query === null || query === void 0 ? void 0 : query.limit) || (config === null || config === void 0 ? void 0 : (ref = config.meta) === null || ref === void 0 ? void 0 : ref.limit) || 24);
|
108
|
+
var sort = query.sort || (config === null || config === void 0 ? void 0 : config.defaultSortKey) || 'defaultSort';
|
113
109
|
var offset = calculateOffset(query === null || query === void 0 ? void 0 : query.page, limit);
|
114
|
-
var _sort1, ref8;
|
115
110
|
var queryKeys = getListingQueryKeys({
|
116
111
|
type: config.type,
|
117
112
|
predicate: predicate,
|
118
|
-
sort:
|
113
|
+
sort: sort,
|
119
114
|
postFilter: postFilter,
|
120
115
|
slug: slug,
|
121
116
|
offset: offset
|
122
117
|
});
|
118
|
+
console.log('useListingQuery', isListingQueryEnabled(config.type, predicate));
|
123
119
|
return useQuery(queryKeys, _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|
124
120
|
var data;
|
125
121
|
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
126
122
|
while(1)switch(_ctx.prev = _ctx.next){
|
127
123
|
case 0:
|
128
|
-
|
124
|
+
_ctx.next = 2;
|
125
|
+
return processListingQuery({
|
129
126
|
predicate: predicate,
|
130
127
|
limit: limit,
|
131
128
|
sort: sort,
|
132
129
|
router: router,
|
133
130
|
postFilter: postFilter,
|
134
131
|
offset: offset,
|
135
|
-
config:
|
132
|
+
config: config.meta,
|
136
133
|
slug: aliasedSlug
|
137
134
|
});
|
138
|
-
return _ctx.abrupt("return", data);
|
139
135
|
case 2:
|
136
|
+
data = _ctx.sent;
|
137
|
+
console.log('listing is Processed');
|
138
|
+
return _ctx.abrupt("return", data);
|
139
|
+
case 5:
|
140
140
|
case "end":
|
141
141
|
return _ctx.stop();
|
142
142
|
}
|
@@ -155,31 +155,46 @@ export function processListingQuery(_) {
|
|
155
155
|
}
|
156
156
|
function _processListingQuery() {
|
157
157
|
_processListingQuery = _asyncToGenerator(regeneratorRuntime.mark(function _callee(param) {
|
158
|
-
var predicate, router, limit, sort, postFilter, offset, config, slug,
|
158
|
+
var predicate, router, limit, sort, postFilter, offset, config, slug, query, type, filter, _sort, _sort1;
|
159
159
|
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
160
160
|
while(1)switch(_ctx.prev = _ctx.next){
|
161
161
|
case 0:
|
162
162
|
predicate = param.predicate, router = param.router, limit = param.limit, sort = param.sort, postFilter = param.postFilter, offset = param.offset, config = param.config, slug = param.slug;
|
163
|
-
;
|
163
|
+
console.log('processListingQuery');
|
164
164
|
query = router.query;
|
165
165
|
type = getListingPageType(router, slug, config);
|
166
166
|
filter = generateFilter(type, query, slug, predicate);
|
167
167
|
;
|
168
|
-
|
168
|
+
console.log(_objectSpread({
|
169
169
|
limit: limit,
|
170
170
|
offset: offset || 0,
|
171
171
|
filter: extendFilter({
|
172
172
|
slug: filter,
|
173
|
-
filterExtension: config === null || config === void 0 ? void 0 :
|
173
|
+
filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension,
|
174
174
|
noSplit: true
|
175
175
|
}),
|
176
176
|
sort: (_sort = query.sort) !== null && _sort !== void 0 ? _sort : sort
|
177
177
|
}, (query === null || query === void 0 ? void 0 : query.filter) && {
|
178
178
|
postFilter: postFilter
|
179
|
-
}, (config === null || config === void 0 ? void 0 : config.
|
180
|
-
collapseMode: config === null || config === void 0 ? void 0 : config.
|
179
|
+
}, (config === null || config === void 0 ? void 0 : config.collapseMode) && type !== ListingTypesEnum.Collection && {
|
180
|
+
collapseMode: config === null || config === void 0 ? void 0 : config.collapseMode
|
181
|
+
}));
|
182
|
+
;
|
183
|
+
return _ctx.abrupt("return", CatalogFilter(_objectSpread({
|
184
|
+
limit: limit,
|
185
|
+
offset: offset || 0,
|
186
|
+
filter: extendFilter({
|
187
|
+
slug: filter,
|
188
|
+
filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension,
|
189
|
+
noSplit: true
|
190
|
+
}),
|
191
|
+
sort: (_sort1 = query.sort) !== null && _sort1 !== void 0 ? _sort1 : sort
|
192
|
+
}, (query === null || query === void 0 ? void 0 : query.filter) && {
|
193
|
+
postFilter: postFilter
|
194
|
+
}, (config === null || config === void 0 ? void 0 : config.collapseMode) && type !== ListingTypesEnum.Collection && {
|
195
|
+
collapseMode: config === null || config === void 0 ? void 0 : config.collapseMode
|
181
196
|
})));
|
182
|
-
case
|
197
|
+
case 9:
|
183
198
|
case "end":
|
184
199
|
return _ctx.stop();
|
185
200
|
}
|
@@ -212,6 +227,6 @@ export function isListingQueryEnabled(type, predicate) {
|
|
212
227
|
return false;
|
213
228
|
}
|
214
229
|
function parseAttribute(slug) {
|
215
|
-
var ref = _slicedToArray(slug.split('-'), 2), type = ref[0], val = ref[1];
|
230
|
+
var ref = _slicedToArray((slug === null || slug === void 0 ? void 0 : slug.split('-')) || [], 2), type = ref[0], val = ref[1];
|
216
231
|
return "attr.".concat(type, ";eq;\"").concat(val, "\"");
|
217
232
|
}
|
@@ -2,11 +2,11 @@ import regeneratorRuntime from "regenerator-runtime";
|
|
2
2
|
import { BrandsGetBySlug, CategoriesGetBySlug, ViewsGetBySlug, ProductsGetAttributeLabel, CollectionsGetBySlug } from '@sentecacommerce/sdk';
|
3
3
|
import { useQuery } from 'react-query';
|
4
4
|
import { useRouter } from 'next/router';
|
5
|
-
import { useConfigState } from '../../../index';
|
6
5
|
import { ListingTypesEnum } from '../../types';
|
7
6
|
import { ListingQueryKeysEnum } from '../';
|
8
7
|
import { getListingPageType } from '../../utils';
|
9
8
|
import { useListingSlug, useListingAlias } from '../../hooks';
|
9
|
+
import { useListingConfig } from '../..';
|
10
10
|
function _arrayWithHoles(arr) {
|
11
11
|
if (Array.isArray(arr)) return arr;
|
12
12
|
}
|
@@ -85,9 +85,9 @@ var getBySlugMap = (_obj = {
|
|
85
85
|
}, _defineProperty(_obj, ListingTypesEnum.Category, CategoriesGetBySlug), _defineProperty(_obj, ListingTypesEnum.View, ViewsGetBySlug), _defineProperty(_obj, ListingTypesEnum.Brand, BrandsGetBySlug), _defineProperty(_obj, ListingTypesEnum.Collection, CollectionsGetBySlug), _obj);
|
86
86
|
export var usePredicate = function() {
|
87
87
|
var slug = useListingSlug();
|
88
|
+
var meta = useListingConfig().meta;
|
88
89
|
var router = useRouter();
|
89
|
-
var
|
90
|
-
var ref = useListingAlias(), aliasedSlug = ref.slug;
|
90
|
+
var ref = useListingAlias(meta), aliasedSlug = ref.slug;
|
91
91
|
var attribute = router.query.cat && aliasedSlug;
|
92
92
|
return useQuery([
|
93
93
|
ListingQueryKeysEnum.usePredicate,
|
@@ -99,7 +99,7 @@ export var usePredicate = function() {
|
|
99
99
|
while(1)switch(_ctx.prev = _ctx.next){
|
100
100
|
case 0:
|
101
101
|
_ctx.next = 2;
|
102
|
-
return processPredicateRequest(slug, router, aliasedSlug,
|
102
|
+
return processPredicateRequest(slug, router, aliasedSlug, meta);
|
103
103
|
case 2:
|
104
104
|
data = _ctx.sent;
|
105
105
|
return _ctx.abrupt("return", data);
|
@@ -27,7 +27,7 @@ import { useListingMeta } from '../hooks';
|
|
27
27
|
}), /*#__PURE__*/ React.createElement(OpenGraph, {
|
28
28
|
title: formattedTitle,
|
29
29
|
type: "website",
|
30
|
-
image: image || topBanner || imagesConfig.fallbackImage,
|
30
|
+
image: image || topBanner || (imagesConfig === null || imagesConfig === void 0 ? void 0 : imagesConfig.fallbackImage) || '',
|
31
31
|
additionalProps: [
|
32
32
|
{
|
33
33
|
key: 'description',
|
@@ -1,12 +1,10 @@
|
|
1
1
|
import { getListingAlias } from '../utils';
|
2
|
-
import { useConfigState } from '../..';
|
3
2
|
import { useRouter } from 'next/router';
|
4
|
-
export var useListingAlias = function() {
|
3
|
+
export var useListingAlias = function(meta) {
|
5
4
|
var router = useRouter();
|
6
|
-
var config = useConfigState();
|
7
5
|
var slug = getListingAlias({
|
8
6
|
router: router,
|
9
|
-
config:
|
7
|
+
config: meta
|
10
8
|
});
|
11
9
|
return {
|
12
10
|
slug: slug
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
2
2
|
import { useRouter } from 'next/router';
|
3
3
|
import { usePredicate } from '../api';
|
4
4
|
import { useListingConfig } from './';
|
5
|
-
import {
|
5
|
+
import { useListingAlias } from '../../index';
|
6
6
|
import { typeToSuffix } from '../../utils/typeToSuffix';
|
7
7
|
import { getTranslatableField } from '../../utils/getTranslatableField';
|
8
8
|
import { ListingTypesEnum } from '..';
|
@@ -25,16 +25,16 @@ function _toConsumableArray(arr) {
|
|
25
25
|
}
|
26
26
|
var _instance;
|
27
27
|
export var useListingBreadcrumbs = function() {
|
28
|
-
var
|
28
|
+
var ref1 = usePredicate(), data = ref1.data, isLoading = ref1.isLoading;
|
29
29
|
var config = useListingConfig();
|
30
30
|
var router = useRouter();
|
31
|
-
var
|
32
|
-
var slug = useListingAlias().slug;
|
31
|
+
var slug = useListingAlias(config.meta).slug;
|
33
32
|
var result = React.useMemo(function() {
|
34
33
|
if (config.type === ListingTypesEnum.AttrPage) {
|
34
|
+
var ref;
|
35
35
|
return [
|
36
36
|
{
|
37
|
-
name:
|
37
|
+
name: (ref = config.meta) === null || ref === void 0 ? void 0 : ref.titleAliases[slug],
|
38
38
|
id: '',
|
39
39
|
link: "/".concat(router.query.slug, "/c")
|
40
40
|
},
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { useRouter } from 'next/router';
|
3
3
|
import { useListingConfig } from './useListingConfig';
|
4
|
-
import { useListingAlias
|
4
|
+
import { useListingAlias } from '../../index';
|
5
5
|
import { getTranslatableField, typeToSuffix } from '../../utils';
|
6
6
|
import { useAggregateQuery, AggregateRequestEnum } from '../api';
|
7
7
|
import { processCategoriesResponse, getAggregateTypeAndTerm } from './utils';
|
@@ -28,19 +28,18 @@ var ListingCategoriesStateContext = /*#__PURE__*/ React.createContext(undefined)
|
|
28
28
|
export function ListingCategoriesProvider(param) {
|
29
29
|
var children = param.children;
|
30
30
|
var router = useRouter();
|
31
|
-
var
|
32
|
-
var slug = useListingAlias().slug;
|
33
|
-
var
|
34
|
-
var ref = useAggregateQuery([
|
31
|
+
var ref = useListingConfig(), categoryTreeConfig = ref.categoryTreeConfig, meta = ref.meta;
|
32
|
+
var slug = useListingAlias(meta).slug;
|
33
|
+
var ref1 = useAggregateQuery([
|
35
34
|
categoryTreeConfig
|
36
|
-
], AggregateRequestEnum.Categories), aggData =
|
37
|
-
var currentCategory = generateCurrentUrl(router, slug,
|
38
|
-
var
|
35
|
+
], AggregateRequestEnum.Categories), aggData = ref1.data, isLoading = ref1.isLoading;
|
36
|
+
var currentCategory = generateCurrentUrl(router, slug, meta);
|
37
|
+
var ref2 = getAggregateTypeAndTerm(categoryTreeConfig), type = ref2.type, term = ref2.term;
|
39
38
|
var data = React.useMemo(function() {
|
40
39
|
if (aggData) {
|
41
40
|
var response = processCategoriesResponse(aggData, type, term);
|
42
41
|
var nodes = response.map(function(current) {
|
43
|
-
return buildNodes(current, router, slug,
|
42
|
+
return buildNodes(current, router, slug, meta);
|
44
43
|
});
|
45
44
|
var categoryTree = buildCategories(nodes);
|
46
45
|
return categoryTree;
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
2
2
|
import { useRouter } from 'next/router';
|
3
3
|
import { ListingFiltersProvider } from './useListingFilters';
|
4
4
|
import { ListingCategoriesProvider } from './useListingCategories';
|
5
|
-
import { useListingAlias
|
5
|
+
import { useListingAlias } from '../../index';
|
6
6
|
import { getListingPageType } from '../utils';
|
7
7
|
function _defineProperty(obj, key, value) {
|
8
8
|
if (key in obj) {
|
@@ -37,22 +37,20 @@ var ListingPageContext = /*#__PURE__*/ React.createContext(undefined);
|
|
37
37
|
export function ListingPageProvider(param) {
|
38
38
|
var config = param.config, children = param.children;
|
39
39
|
var router = useRouter();
|
40
|
-
var slug = useListingAlias().slug;
|
41
|
-
var mainConfig = useConfigState();
|
40
|
+
var slug = useListingAlias(config.meta).slug;
|
42
41
|
var data = React.useMemo(function() {
|
43
42
|
return _objectSpread({
|
44
43
|
}, config, {
|
45
|
-
type: getListingPageType(router, slug,
|
44
|
+
type: getListingPageType(router, slug, config.meta)
|
46
45
|
});
|
47
46
|
}, [
|
48
47
|
router.pathname,
|
49
48
|
config.aggregates,
|
50
49
|
config.categoryTreeConfig,
|
51
50
|
config.defaultSortKey,
|
52
|
-
config.productsPerPage,
|
53
51
|
config.seoAggregates,
|
54
52
|
config.sortOptions,
|
55
|
-
config.
|
53
|
+
config.meta,
|
56
54
|
config.attributeSortType,
|
57
55
|
]);
|
58
56
|
return(/*#__PURE__*/ React.createElement(ListingPageContext.Provider, {
|
@@ -7,7 +7,6 @@ import { useListingSlug } from './useListingSlug';
|
|
7
7
|
import { stripQueryProps } from '../../utils/generateQueryFromRouter';
|
8
8
|
import { typeToSuffix } from '../../utils/typeToSuffix';
|
9
9
|
import { getSelectedFilters } from '../../utils';
|
10
|
-
import { useConfigState } from '../../index';
|
11
10
|
function _arrayWithHoles(arr) {
|
12
11
|
if (Array.isArray(arr)) return arr;
|
13
12
|
}
|
@@ -71,19 +70,19 @@ function _slicedToArray(arr, i) {
|
|
71
70
|
var ListingFiltersStateContext = /*#__PURE__*/ React.createContext(undefined);
|
72
71
|
export function ListingFiltersProvider(param) {
|
73
72
|
var children = param.children;
|
74
|
-
var
|
73
|
+
var ref3 = useListingConfig(), aggregates = ref3.aggregates, pageType = ref3.type, attributeSortType = ref3.attributeSortType, meta = ref3.meta;
|
75
74
|
var ref1 = useAggregateQuery(aggregates, AggregateRequestEnum.Filters, attributeSortType), aggData = ref1.data, isLoading = ref1.isLoading, isFetching = ref1.isFetching;
|
76
|
-
var config = useConfigState();
|
77
75
|
var router = useRouter();
|
78
76
|
var slug = useListingSlug();
|
79
77
|
var data = React.useMemo(function() {
|
80
78
|
if (!isLoading && aggData) {
|
81
79
|
var result = aggregates === null || aggregates === void 0 ? void 0 : aggregates.sort(function(a, b) {
|
82
|
-
return a.order - b.order;
|
80
|
+
return Number(a.order) - Number(b.order);
|
83
81
|
}).map(function(currentAggregate) {
|
84
|
-
var
|
85
|
-
var
|
86
|
-
var
|
82
|
+
var ref, ref2;
|
83
|
+
var type = (currentAggregate === null || currentAggregate === void 0 ? void 0 : (ref = currentAggregate.aggregationType) === null || ref === void 0 ? void 0 : ref.toString()) || '';
|
84
|
+
var term = (currentAggregate === null || currentAggregate === void 0 ? void 0 : (ref2 = currentAggregate.aggregationDefinition) === null || ref2 === void 0 ? void 0 : ref2.split(':')[0]) || '';
|
85
|
+
var filter = (currentAggregate === null || currentAggregate === void 0 ? void 0 : currentAggregate.filterDefinition) || '';
|
87
86
|
var current = aggData[type].find(function(agg) {
|
88
87
|
return agg.name === term;
|
89
88
|
});
|
@@ -135,7 +134,7 @@ export function ListingFiltersProvider(param) {
|
|
135
134
|
});
|
136
135
|
};
|
137
136
|
var selectedFilters = React.useMemo(function() {
|
138
|
-
return getSelectedFilters(router, slug, data,
|
137
|
+
return getSelectedFilters(router, slug, data, meta);
|
139
138
|
}, [
|
140
139
|
router,
|
141
140
|
data
|
@@ -159,10 +158,10 @@ export function useListingFilters() {
|
|
159
158
|
}
|
160
159
|
function generateFilters(param) {
|
161
160
|
var rawFilters = param.rawFilters, type = param.type, filter = param.filter, slug = param.slug, router = param.router, pageType = param.pageType;
|
162
|
-
var ref,
|
163
|
-
return (
|
161
|
+
var ref, ref4;
|
162
|
+
return (ref4 = (ref = rawFilters.results) === null || ref === void 0 ? void 0 : ref.filter(function(res) {
|
164
163
|
return res.count > 0;
|
165
|
-
})) === null ||
|
164
|
+
})) === null || ref4 === void 0 ? void 0 : ref4.map(function(currentTerm) {
|
166
165
|
var filterKey = mapKey(currentTerm, type);
|
167
166
|
var selected = isFilterSelected(router, filter, filterKey, filtersOperatorsMap[type]);
|
168
167
|
return {
|
@@ -180,11 +179,11 @@ function generateFilters(param) {
|
|
180
179
|
});
|
181
180
|
}
|
182
181
|
var isFilterSelected = function(router, filter, filterKey, type) {
|
183
|
-
var ref,
|
182
|
+
var ref, ref5, ref6, ref7, ref8;
|
184
183
|
var areFiltersArray = Array.isArray((ref = router.query) === null || ref === void 0 ? void 0 : ref.filter);
|
185
|
-
return areFiltersArray ? !!((
|
184
|
+
return areFiltersArray ? !!((ref6 = (ref5 = router.query.filter) === null || ref5 === void 0 ? void 0 : ref5.find(function(sel) {
|
186
185
|
return sel.includes("".concat(filter, ";").concat(type));
|
187
|
-
})) === null ||
|
186
|
+
})) === null || ref6 === void 0 ? void 0 : ref6.includes(filterKey)) : ((ref7 = router.query.filter) === null || ref7 === void 0 ? void 0 : ref7.includes("".concat(filter, ";").concat(type))) && ((ref8 = router.query.filter) === null || ref8 === void 0 ? void 0 : ref8.includes(filterKey));
|
188
187
|
};
|
189
188
|
export var filtersOperatorsMap = {
|
190
189
|
ranges: 'range',
|
@@ -213,12 +212,12 @@ var generateQueryString = function(query, pair, remove) {
|
|
213
212
|
var extractFilter = function(param) {
|
214
213
|
var _str = param.str, str = _str === void 0 ? '' : _str, aggPair = param.aggPair;
|
215
214
|
var ref = _slicedToArray(str.split(';'), 3), type = ref[0], operator = ref[1], val = ref[2];
|
216
|
-
var ref7;
|
217
|
-
var filterType = (ref7 = aggPair === null || aggPair === void 0 ? void 0 : aggPair.aggType) !== null && ref7 !== void 0 ? ref7 : type;
|
218
|
-
var ref8;
|
219
|
-
var filterVal = (ref8 = aggPair === null || aggPair === void 0 ? void 0 : aggPair.aggKey) !== null && ref8 !== void 0 ? ref8 : val;
|
220
215
|
var ref9;
|
221
|
-
var
|
216
|
+
var filterType = (ref9 = aggPair === null || aggPair === void 0 ? void 0 : aggPair.aggType) !== null && ref9 !== void 0 ? ref9 : type;
|
217
|
+
var ref10;
|
218
|
+
var filterVal = (ref10 = aggPair === null || aggPair === void 0 ? void 0 : aggPair.aggKey) !== null && ref10 !== void 0 ? ref10 : val;
|
219
|
+
var ref11;
|
220
|
+
var filterOperator = (ref11 = aggPair === null || aggPair === void 0 ? void 0 : aggPair.aggOperator) !== null && ref11 !== void 0 ? ref11 : operator;
|
222
221
|
if (activeFilters[filterType]) {
|
223
222
|
activeFilters[filterType] += ",".concat(filterVal);
|
224
223
|
} else {
|
@@ -5,7 +5,7 @@ export var useListingItems = function() {
|
|
5
5
|
var config = useListingConfig();
|
6
6
|
var ref1 = useListingQuery(), data = ref1.data, isLoading = ref1.isLoading, isFetching = ref1.isFetching;
|
7
7
|
var generatePlaceholders = function(products) {
|
8
|
-
return new Array(products
|
8
|
+
return new Array(products || 24).fill(null).map(function(_, i) {
|
9
9
|
return {
|
10
10
|
_id: "".concat(i),
|
11
11
|
isPlaceholder: true
|
@@ -15,7 +15,7 @@ export var useListingItems = function() {
|
|
15
15
|
var result = React.useMemo(function() {
|
16
16
|
var ref;
|
17
17
|
return {
|
18
|
-
items: !(data === null || data === void 0 ? void 0 : data.results) ? generatePlaceholders(config.
|
18
|
+
items: !(data === null || data === void 0 ? void 0 : data.results) ? generatePlaceholders(config.meta.limit || 24) : data === null || data === void 0 ? void 0 : data.results,
|
19
19
|
total: (ref = data === null || data === void 0 ? void 0 : data.total) !== null && ref !== void 0 ? ref : 0,
|
20
20
|
didYouMean: data === null || data === void 0 ? void 0 : data.didYouMean,
|
21
21
|
isLoading: isLoading,
|
@@ -5,9 +5,10 @@ import { assetsFieldsToMap } from '../../utils/assetsToMap';
|
|
5
5
|
import { useRouter } from 'next/router';
|
6
6
|
import { getListingPageType } from '../utils';
|
7
7
|
import { ListingTypesEnum } from '../types';
|
8
|
-
import { useListingAlias
|
8
|
+
import { useListingAlias } from '../../index';
|
9
9
|
import { useListingFilters } from './useListingFilters';
|
10
10
|
import { useListingCategories } from './useListingCategories';
|
11
|
+
import { useListingConfig } from '.';
|
11
12
|
function _arrayWithoutHoles(arr) {
|
12
13
|
if (Array.isArray(arr)) {
|
13
14
|
for(var i = 0, arr2 = new Array(arr.length); i < arr.length; i++){
|
@@ -31,14 +32,14 @@ export var useListingMeta = function() {
|
|
31
32
|
var ref1 = useListingQuery(), listingQuery = ref1.data;
|
32
33
|
var ref2 = useListingCategories(), categoriesData = ref2.data;
|
33
34
|
var ref3 = useListingFilters(), filtersData = ref3.data;
|
34
|
-
var
|
35
|
-
var
|
35
|
+
var meta = useListingConfig().meta;
|
36
|
+
var slug = useListingAlias(meta).slug;
|
36
37
|
var result = React.useMemo(function() {
|
37
38
|
var ref;
|
38
39
|
var customFields = customFieldsToMap(predicate === null || predicate === void 0 ? void 0 : predicate.custom);
|
39
40
|
var assets = assetsFieldsToMap(predicate === null || predicate === void 0 ? void 0 : predicate.assets);
|
40
41
|
var description = ((ref = getTranslatableField(predicate === null || predicate === void 0 ? void 0 : predicate.description)) === null || ref === void 0 ? void 0 : ref.trim()) || '';
|
41
|
-
var displayName = processDisplayName(slug,
|
42
|
+
var displayName = processDisplayName(slug, meta, predicate === null || predicate === void 0 ? void 0 : predicate.name, predicate === null || predicate === void 0 ? void 0 : predicate.breadcrumb, router, filtersData, categoriesData);
|
42
43
|
return {
|
43
44
|
displayName: displayName,
|
44
45
|
description: description,
|
@@ -76,7 +77,7 @@ function processDisplayName(slug, config, name, breadcrumb, router, aggData, cat
|
|
76
77
|
var categoryName = getCategoryName(router, categoriesData);
|
77
78
|
var type = getListingPageType(router, slug, config);
|
78
79
|
if (type === ListingTypesEnum.AttrPage) {
|
79
|
-
return "Всичко за ".concat(config.
|
80
|
+
return "Всичко за ".concat(config.titleAliases[slug]);
|
80
81
|
}
|
81
82
|
if (router === null || router === void 0 ? void 0 : router.query.cat) {
|
82
83
|
var attribute = getTranslatableField(breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.label);
|
@@ -39,17 +39,17 @@ export var useListingPagination = function() {
|
|
39
39
|
var slug = useListingSlug();
|
40
40
|
var ref = useListingQuery(), data = ref.data, isLoading = ref.isLoading;
|
41
41
|
var result = React.useMemo(function() {
|
42
|
-
var
|
42
|
+
var _limit;
|
43
43
|
return {
|
44
44
|
pagination: getPagination(data === null || data === void 0 ? void 0 : data.total, generateQueryFromRouter(_objectSpread({
|
45
|
-
limit: (
|
45
|
+
limit: (_limit = config.meta.limit) !== null && _limit !== void 0 ? _limit : 24,
|
46
46
|
sort: router.query.sort
|
47
|
-
}, router.query)), config.defaultSortKey),
|
47
|
+
}, router.query)), config.defaultSortKey || 'defaultSort'),
|
48
48
|
query: generateQuery(router, slug)
|
49
49
|
};
|
50
50
|
}, [
|
51
51
|
config.defaultSortKey,
|
52
|
-
config.
|
52
|
+
config.meta.limit,
|
53
53
|
data === null || data === void 0 ? void 0 : data.total,
|
54
54
|
router,
|
55
55
|
slug
|
@@ -1,9 +1,11 @@
|
|
1
1
|
import { useRouter } from 'next/router';
|
2
|
+
import { useListingConfig } from '.';
|
2
3
|
import { useListingAlias } from '../index';
|
3
4
|
import { getSlug } from '../utils';
|
4
5
|
export var useListingSlug = function() {
|
5
6
|
var router = useRouter();
|
6
|
-
var
|
7
|
+
var meta = useListingConfig().meta;
|
8
|
+
var ref = useListingAlias(meta), aliasedSlug = ref.slug;
|
7
9
|
var slug = getSlug(router, aliasedSlug);
|
8
10
|
return slug;
|
9
11
|
};
|
@@ -3,7 +3,8 @@ import { useRouter } from 'next/router';
|
|
3
3
|
import { createAggregateQuery } from '../../utils';
|
4
4
|
import { getListingPageType } from '../utils';
|
5
5
|
import { filtersOperatorsMap } from './useListingFilters';
|
6
|
-
import { useListingAlias
|
6
|
+
import { useListingAlias } from '../../index';
|
7
|
+
import { useListingConfig } from '.';
|
7
8
|
function _arrayWithHoles(arr) {
|
8
9
|
if (Array.isArray(arr)) return arr;
|
9
10
|
}
|
@@ -38,8 +39,8 @@ function _slicedToArray(arr, i) {
|
|
38
39
|
export var useSlideFilter = function(filterName, min, max) {
|
39
40
|
var ref;
|
40
41
|
var router = useRouter();
|
41
|
-
var
|
42
|
-
var
|
42
|
+
var meta = useListingConfig().meta;
|
43
|
+
var slug = useListingAlias(meta).slug;
|
43
44
|
var allFilters = router.query.filter;
|
44
45
|
var filterQuery = "".concat(filterName, ";range;");
|
45
46
|
var getFilter = function() {
|
@@ -66,7 +67,7 @@ export var useSlideFilter = function(filterName, min, max) {
|
|
66
67
|
var formattedTo = Math.max(data.from, Math.min(data.to, max));
|
67
68
|
clearTimeout(timeoutRef.current);
|
68
69
|
timeoutRef.current = setTimeout(function() {
|
69
|
-
router.push(createAggregateQuery(getListingPageType(router, slug,
|
70
|
+
router.push(createAggregateQuery(getListingPageType(router, slug, meta), router.query.slug, {
|
70
71
|
aggType: filterName,
|
71
72
|
aggKey: "".concat(formattedFrom, ",").concat(formattedTo),
|
72
73
|
aggOperator: filtersOperatorsMap.stats
|
@@ -6,7 +6,8 @@ export function processCategoriesResponse(response, type, term) {
|
|
6
6
|
return result;
|
7
7
|
}
|
8
8
|
export function getAggregateTypeAndTerm(aggregates) {
|
9
|
-
var
|
9
|
+
var ref;
|
10
|
+
var type = (aggregates === null || aggregates === void 0 ? void 0 : (ref = aggregates.aggregationType) === null || ref === void 0 ? void 0 : ref.toString()) || '';
|
10
11
|
var term = aggregates === null || aggregates === void 0 ? void 0 : aggregates.aggregationDefinition;
|
11
12
|
return {
|
12
13
|
type: type,
|
@@ -36,11 +36,11 @@ export function prefetchListing(_) {
|
|
36
36
|
}
|
37
37
|
function _prefetchListing() {
|
38
38
|
_prefetchListing = _asyncToGenerator(regeneratorRuntime.mark(function _callee(param) {
|
39
|
-
var queryCache, router, predicate, config, ref, aliasedSlug, type, postFilter, ref1, ref2, sort,
|
39
|
+
var queryCache, router, predicate, config, defaultSortKey, ref, aliasedSlug, type, postFilter, ref1, ref2, sort, ref3, limit, offset, queryKeys, data;
|
40
40
|
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
41
41
|
while(1)switch(_ctx.prev = _ctx.next){
|
42
42
|
case 0:
|
43
|
-
queryCache = param.queryCache, router = param.router, predicate = param.predicate, config = param.config;
|
43
|
+
queryCache = param.queryCache, router = param.router, predicate = param.predicate, config = param.config, defaultSortKey = param.defaultSortKey;
|
44
44
|
;
|
45
45
|
aliasedSlug = getListingAlias({
|
46
46
|
router: router,
|
@@ -49,9 +49,9 @@ function _prefetchListing() {
|
|
49
49
|
type = getListingPageType(router, aliasedSlug, config);
|
50
50
|
postFilter = getPostFilters(router);
|
51
51
|
;
|
52
|
-
sort = (ref2 = (ref1 = router.query.sort) !== null && ref1 !== void 0 ? ref1 :
|
52
|
+
sort = (ref2 = (ref1 = router.query.sort) !== null && ref1 !== void 0 ? ref1 : defaultSortKey) !== null && ref2 !== void 0 ? ref2 : 'defaultSort';
|
53
53
|
;
|
54
|
-
limit = !!router.query.limit ? Number(router.query.limit) : (
|
54
|
+
limit = !!router.query.limit ? Number(router.query.limit) : (ref3 = config === null || config === void 0 ? void 0 : config.limit) !== null && ref3 !== void 0 ? ref3 : 24;
|
55
55
|
offset = calculateOffset((ref = router.query) === null || ref === void 0 ? void 0 : ref.page, limit);
|
56
56
|
queryKeys = getListingQueryKeys({
|
57
57
|
type: type,
|
@@ -33,13 +33,12 @@ var _obj;
|
|
33
33
|
export var buildCategoryQuery = function(param) {
|
34
34
|
var aggregates = param.aggregates, predicate = param.predicate, postFilter = param.postFilter, pageType = param.pageType, config = param.config, router = param.router, slug = param.slug;
|
35
35
|
var ref2, ref1;
|
36
|
-
var type = aggregates === null || aggregates === void 0 ? void 0 : (ref2 = aggregates[0]) === null || ref2 === void 0 ? void 0 : ref2.aggregationType;
|
37
|
-
var term = aggregates === null || aggregates === void 0 ? void 0 : (ref1 = aggregates[0]) === null || ref1 === void 0 ? void 0 : ref1.aggregationDefinition;
|
36
|
+
var type = (aggregates === null || aggregates === void 0 ? void 0 : (ref2 = aggregates[0]) === null || ref2 === void 0 ? void 0 : ref2.aggregationType) || '';
|
37
|
+
var term = (aggregates === null || aggregates === void 0 ? void 0 : (ref1 = aggregates[0]) === null || ref1 === void 0 ? void 0 : ref1.aggregationDefinition) || '';
|
38
38
|
var aggValue = getAggValue({
|
39
39
|
id: predicate === null || predicate === void 0 ? void 0 : predicate._id,
|
40
40
|
term: term
|
41
41
|
});
|
42
|
-
var listingConfig = config === null || config === void 0 ? void 0 : config.listing;
|
43
42
|
var getFilters = function() {
|
44
43
|
var filter = '';
|
45
44
|
switch(pageType){
|
@@ -49,18 +48,18 @@ export var buildCategoryQuery = function(param) {
|
|
49
48
|
}));
|
50
49
|
if (router.query.cat) filter += extendFilter({
|
51
50
|
slug: slug,
|
52
|
-
filterExtension:
|
51
|
+
filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension
|
53
52
|
});
|
54
53
|
break;
|
55
54
|
case ListingTypesEnum.Category:
|
56
55
|
if (router.query.cat) {
|
57
56
|
filter += extendFilter({
|
58
57
|
slug: slug,
|
59
|
-
filterExtension:
|
58
|
+
filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension
|
60
59
|
});
|
61
60
|
} else {
|
62
61
|
var ref;
|
63
|
-
filter += (ref =
|
62
|
+
filter += (ref = config === null || config === void 0 ? void 0 : config.filterExtension) !== null && ref !== void 0 ? ref : '';
|
64
63
|
}
|
65
64
|
if (postFilter) {
|
66
65
|
if (router.query.cat) filter += '&';
|
@@ -70,7 +69,7 @@ export var buildCategoryQuery = function(param) {
|
|
70
69
|
case ListingTypesEnum.AttrPage:
|
71
70
|
filter += extendFilter({
|
72
71
|
slug: slug,
|
73
|
-
filterExtension:
|
72
|
+
filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension
|
74
73
|
});
|
75
74
|
if (postFilter) filter += "&".concat(postFilter);
|
76
75
|
break;
|
@@ -81,14 +80,14 @@ export var buildCategoryQuery = function(param) {
|
|
81
80
|
if (postFilter) filter += "&".concat(postFilter);
|
82
81
|
break;
|
83
82
|
default:
|
84
|
-
return "".concat((
|
83
|
+
return "".concat((config === null || config === void 0 ? void 0 : config.filterExtension) + "".concat(postFilter !== null && postFilter !== void 0 ? postFilter : ''));
|
85
84
|
}
|
86
85
|
return filter;
|
87
86
|
};
|
88
87
|
var query = (_obj = {
|
89
88
|
}, _defineProperty(_obj, type, aggValue), _defineProperty(_obj, "filter", getFilters()), _obj);
|
90
89
|
if (pageType === ListingTypesEnum.Collection) {
|
91
|
-
var collapseMode =
|
90
|
+
var collapseMode = config === null || config === void 0 ? void 0 : config.collapseMode;
|
92
91
|
query = _objectSpread({
|
93
92
|
}, query, {
|
94
93
|
collapseMode: collapseMode
|