@sentecacommerce-theme/lib 0.13.5-alpha.9 → 0.13.7-alpha.7
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/analytics/addToCart.js +0 -1
- package/dist/cjs/analytics/initiateCheckout.js +0 -1
- package/dist/cjs/analytics/viewContent.js +0 -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/components/Portal/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/useProgressBar/hooks/useGetSetState.js +1 -24
- package/dist/cjs/hooks/useSelectedFilters/index.js +3 -3
- package/dist/cjs/hooks/useVouchers/index.js +1 -2
- 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 +18 -21
- 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 +3 -4
- package/dist/cjs/listing/hooks/useListingSlug.js +3 -1
- package/dist/cjs/listing/hooks/useSlideFilter.js +4 -3
- package/dist/cjs/listing/hooks/useSort.js +48 -17
- package/dist/cjs/listing/hooks/utils.js +2 -1
- package/dist/cjs/listing/ssr/prefetchCategories.js +1 -1
- package/dist/cjs/listing/ssr/prefetchListing.js +7 -8
- package/dist/cjs/listing/utils/buildCategoryQuery.js +8 -9
- package/dist/cjs/listing/utils/buildFilterQuery.js +5 -7
- package/dist/cjs/listing/utils/calculateOffset.js +1 -1
- 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/Container/index.js +1 -1
- package/dist/cjs/navigation/components/SearchBox/Components/EmptyBox/index.js +19 -18
- package/dist/cjs/navigation/components/SearchBox/Components/PopularSearches/index.js +1 -1
- package/dist/cjs/navigation/components/SearchBox/Components/Products/Components/ProductCard/index.js +1 -1
- package/dist/cjs/navigation/components/SearchBox/Components/Products/index.js +2 -2
- package/dist/cjs/navigation/components/SearchBox/Components/RecentSearches/index.js +1 -1
- package/dist/cjs/navigation/components/SearchBox/index.js +11 -11
- 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/mainScript.js +0 -1
- package/dist/esm/analytics/Pixel/usePixel.js +1 -1
- package/dist/esm/analytics/Releva/useReleva.js +1 -1
- package/dist/esm/analytics/addToCart.js +0 -1
- package/dist/esm/analytics/initiateCheckout.js +0 -1
- package/dist/esm/analytics/pageView.js +1 -1
- package/dist/esm/analytics/viewContent.js +0 -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/GoogleOneTap/index.js +1 -1
- package/dist/esm/components/Html/index.js +1 -1
- package/dist/esm/components/Portal/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/useProgressBar/hooks/useGetSetState.js +1 -1
- package/dist/esm/hooks/useSelectedFilters/index.js +4 -4
- package/dist/esm/hooks/useVouchers/index.js +1 -2
- 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 +18 -21
- 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 +3 -4
- package/dist/esm/listing/hooks/useListingSlug.js +3 -1
- package/dist/esm/listing/hooks/useSlideFilter.js +5 -4
- package/dist/esm/listing/hooks/useSort.js +48 -17
- package/dist/esm/listing/hooks/utils.js +2 -1
- package/dist/esm/listing/ssr/prefetchCategories.js +2 -2
- package/dist/esm/listing/ssr/prefetchListing.js +7 -8
- package/dist/esm/listing/utils/buildCategoryQuery.js +8 -9
- package/dist/esm/listing/utils/buildFilterQuery.js +5 -7
- package/dist/esm/listing/utils/calculateOffset.js +1 -1
- 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/Container/index.js +1 -1
- package/dist/esm/navigation/components/SearchBox/Components/EmptyBox/index.js +19 -18
- package/dist/esm/navigation/components/SearchBox/Components/PopularSearches/index.js +1 -1
- package/dist/esm/navigation/components/SearchBox/Components/Products/Components/ProductCard/index.js +1 -1
- package/dist/esm/navigation/components/SearchBox/Components/Products/index.js +2 -2
- package/dist/esm/navigation/components/SearchBox/Components/RecentSearches/index.js +1 -1
- package/dist/esm/navigation/components/SearchBox/index.js +11 -11
- 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/useSort.d.ts +6 -5
- 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 -5
- 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/navigation/components/SearchBox/Components/Container/index.d.ts +10 -9
- package/dist/types/navigation/components/SearchBox/Components/EmptyBox/index.d.ts +22 -21
- package/dist/types/navigation/components/SearchBox/Components/Products/Components/ProductCard/index.d.ts +8 -7
- package/dist/types/navigation/components/SearchBox/Components/Products/index.d.ts +9 -8
- package/dist/types/navigation/components/SearchBox/index.d.ts +31 -30
- package/dist/types/types/index.d.ts +38 -40
- package/dist/types/utils/getSelectedFilters.d.ts +2 -1
- package/package.json +11 -5
@@ -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,16 @@ 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 _productsPerPage;
|
43
42
|
return {
|
44
43
|
pagination: getPagination(data === null || data === void 0 ? void 0 : data.total, generateQueryFromRouter(_objectSpread({
|
45
|
-
limit:
|
44
|
+
limit: config.meta.limit || 24,
|
46
45
|
sort: router.query.sort
|
47
|
-
}, router.query)), config.defaultSortKey),
|
46
|
+
}, router.query)), config.defaultSortKey || 'defaultSort'),
|
48
47
|
query: generateQuery(router, slug)
|
49
48
|
};
|
50
49
|
}, [
|
51
50
|
config.defaultSortKey,
|
52
|
-
config.
|
51
|
+
config.meta.limit,
|
53
52
|
data === null || data === void 0 ? void 0 : data.total,
|
54
53
|
router,
|
55
54
|
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
|
@@ -1,38 +1,69 @@
|
|
1
1
|
import { useRouter } from 'next/router';
|
2
2
|
import { useCallback, useMemo } from 'react';
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
import { useListingConfig } from '.';
|
4
|
+
function _defineProperty(obj, key, value) {
|
5
|
+
if (key in obj) {
|
6
|
+
Object.defineProperty(obj, key, {
|
7
|
+
value: value,
|
8
|
+
enumerable: true,
|
9
|
+
configurable: true,
|
10
|
+
writable: true
|
11
|
+
});
|
12
|
+
} else {
|
13
|
+
obj[key] = value;
|
14
|
+
}
|
15
|
+
return obj;
|
16
|
+
}
|
17
|
+
function _objectSpread(target) {
|
18
|
+
for(var i = 1; i < arguments.length; i++){
|
19
|
+
var source = arguments[i] != null ? arguments[i] : {
|
20
|
+
};
|
21
|
+
var ownKeys = Object.keys(source);
|
22
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
23
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
24
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
25
|
+
}));
|
26
|
+
}
|
27
|
+
ownKeys.forEach(function(key) {
|
28
|
+
_defineProperty(target, key, source[key]);
|
29
|
+
});
|
30
|
+
}
|
31
|
+
return target;
|
32
|
+
}
|
33
|
+
export var useSort = function(props) {
|
34
|
+
var ref2;
|
35
|
+
var ref1 = useListingConfig(), sorts = ref1.sortOptions, defaultSortRaw = ref1.defaultSortKey;
|
36
|
+
var defaultSortKey = defaultSortRaw || 'defaultSort';
|
8
37
|
var router = useRouter();
|
9
|
-
var currentSortQuery = (router === null || router === void 0 ? void 0 : (
|
38
|
+
var currentSortQuery = (router === null || router === void 0 ? void 0 : (ref2 = router.query) === null || ref2 === void 0 ? void 0 : ref2.sort) || defaultSortKey;
|
10
39
|
var changeSort = useCallback(function(value) {
|
11
40
|
return function() {
|
12
|
-
|
13
|
-
var query =
|
14
|
-
|
15
|
-
filter: (ref = router.query) === null || ref === void 0 ? void 0 : ref.filter
|
16
|
-
} : {
|
41
|
+
if (!value) return;
|
42
|
+
var query = _objectSpread({
|
43
|
+
}, router.query, {
|
17
44
|
sort: value
|
18
|
-
};
|
45
|
+
});
|
19
46
|
if (defaultSortKey === value) {
|
20
47
|
delete query.sort;
|
21
48
|
}
|
22
49
|
setTimeout(function() {
|
23
|
-
|
50
|
+
var ref;
|
51
|
+
props === null || props === void 0 ? void 0 : (ref = props.onSelect) === null || ref === void 0 ? void 0 : ref.call(props);
|
24
52
|
});
|
25
53
|
return router.push({
|
26
54
|
href: router.pathname,
|
27
55
|
query: query
|
56
|
+
}, undefined, {
|
57
|
+
shallow: true
|
28
58
|
});
|
29
59
|
};
|
30
60
|
}, [
|
31
61
|
defaultSortKey,
|
32
62
|
router,
|
33
|
-
onSelect
|
63
|
+
props === null || props === void 0 ? void 0 : props.onSelect
|
34
64
|
]);
|
35
65
|
var result = useMemo(function() {
|
66
|
+
var ref;
|
36
67
|
var selectedSort = {
|
37
68
|
key: defaultSortKey,
|
38
69
|
label: '',
|
@@ -40,10 +71,10 @@ export var useSort = function(param) {
|
|
40
71
|
select: function() {
|
41
72
|
}
|
42
73
|
};
|
43
|
-
var sortOptions = sorts.map(function(sort) {
|
74
|
+
var sortOptions = (ref = sorts || []) === null || ref === void 0 ? void 0 : ref.map(function(sort) {
|
44
75
|
var data = {
|
45
|
-
key: sort.key,
|
46
|
-
label: sort.label,
|
76
|
+
key: sort.key || 'defaultSort',
|
77
|
+
label: sort.label || '',
|
47
78
|
select: changeSort(sort.key),
|
48
79
|
isDefault: sort.key === defaultSortKey
|
49
80
|
};
|
@@ -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,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import regeneratorRuntime from "regenerator-runtime";
|
2
2
|
import { CatalogAggregate } from '@sentecacommerce/sdk';
|
3
|
-
import { getSlug, getListingAlias } from '../utils';
|
3
|
+
import { getSlug, getListingAlias, getPostFilters } from '../utils';
|
4
4
|
import { prepareAggregateQuery, AggregateRequestEnum, generateAggregateKey } from '../api';
|
5
5
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
6
6
|
try {
|
@@ -63,7 +63,7 @@ function _prefetchCategories() {
|
|
63
63
|
AggregateRequestEnum.Categories,
|
64
64
|
aggregateKeys,
|
65
65
|
aliasedSlug,
|
66
|
-
|
66
|
+
getPostFilters(router),
|
67
67
|
], response, {
|
68
68
|
staleTime: 30000
|
69
69
|
});
|
@@ -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, 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,8 @@ 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 :
|
53
|
-
;
|
54
|
-
limit = !!router.query.limit ? Number(router.query.limit) : (_limit = config === null || config === void 0 ? void 0 : config.listing.limit) !== null && _limit !== void 0 ? _limit : 24;
|
52
|
+
sort = (ref2 = (ref1 = router.query.sort) !== null && ref1 !== void 0 ? ref1 : defaultSortKey) !== null && ref2 !== void 0 ? ref2 : 'defaultSort';
|
53
|
+
limit = !!router.query.limit ? Number(router.query.limit) : (config === null || config === void 0 ? void 0 : config.limit) || 24;
|
55
54
|
offset = calculateOffset((ref = router.query) === null || ref === void 0 ? void 0 : ref.page, limit);
|
56
55
|
queryKeys = getListingQueryKeys({
|
57
56
|
type: type,
|
@@ -61,7 +60,7 @@ function _prefetchListing() {
|
|
61
60
|
slug: aliasedSlug,
|
62
61
|
offset: offset
|
63
62
|
});
|
64
|
-
_ctx.next =
|
63
|
+
_ctx.next = 12;
|
65
64
|
return processListingQuery({
|
66
65
|
router: router,
|
67
66
|
predicate: predicate,
|
@@ -72,13 +71,13 @@ function _prefetchListing() {
|
|
72
71
|
config: config,
|
73
72
|
slug: aliasedSlug
|
74
73
|
});
|
75
|
-
case
|
74
|
+
case 12:
|
76
75
|
data = _ctx.sent;
|
77
76
|
queryCache.setQueryData(queryKeys, data, {
|
78
77
|
staleTime: 30000
|
79
78
|
});
|
80
79
|
return _ctx.abrupt("return", data);
|
81
|
-
case
|
80
|
+
case 15:
|
82
81
|
case "end":
|
83
82
|
return _ctx.stop();
|
84
83
|
}
|
@@ -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
|
@@ -66,20 +66,17 @@ export var buildFilterQuery = function(param) {
|
|
66
66
|
var ref;
|
67
67
|
var query = (predicate === null || predicate === void 0 ? void 0 : predicate.filters) || (predicate === null || predicate === void 0 ? void 0 : predicate._id) || slug;
|
68
68
|
var queryType = pageType === ListingTypesEnum.Search ? 'text' : pageType;
|
69
|
-
var
|
70
|
-
|
71
|
-
filterExtension = config.listing.filterExtension;
|
72
|
-
collapseMode = config.listing.collapseMode;
|
73
|
-
}
|
69
|
+
var ref1 = config || {
|
70
|
+
}, filterExtension = ref1.filterExtension, collapseMode = ref1.collapseMode;
|
74
71
|
var filter = '';
|
75
72
|
if (pageType === ListingTypesEnum.AttrPage) {
|
76
|
-
var
|
73
|
+
var ref2 = _slicedToArray(getAttributePageType(router, slug), 2), type = ref2[0], val = ref2[1];
|
77
74
|
filter = "attr.".concat(type, ";eq;\"").concat(val, "\"");
|
78
75
|
} else {
|
79
76
|
filter = "".concat(queryType, ";eq;\"").concat(query, "\"");
|
80
77
|
}
|
81
78
|
if (router.query.cat) {
|
82
|
-
var
|
79
|
+
var ref3 = _slicedToArray(getAttributePageType(router, slug), 2), type1 = ref3[0], val1 = ref3[1];
|
83
80
|
filter += "&attr.".concat(type1, ";eq;").concat(val1);
|
84
81
|
}
|
85
82
|
if (pageType === ListingTypesEnum.View) {
|
@@ -93,6 +90,7 @@ export var buildFilterQuery = function(param) {
|
|
93
90
|
var aggregatesMap = aggregates === null || aggregates === void 0 ? void 0 : aggregates.reduce(function(map, agg) {
|
94
91
|
var aggregateType = agg.aggregationType;
|
95
92
|
var aggregationTerm = agg.aggregationDefinition;
|
93
|
+
if (!aggregateType) return map;
|
96
94
|
if (map[aggregateType]) {
|
97
95
|
return _objectSpread({
|
98
96
|
}, map, _defineProperty({
|
@@ -31,15 +31,15 @@ function _slicedToArray(arr, i) {
|
|
31
31
|
}
|
32
32
|
export var getListingAlias = function(param) {
|
33
33
|
var router = param.router, config = param.config;
|
34
|
-
var ref;
|
35
34
|
var query = router.query;
|
36
|
-
if (!(config === null || config === void 0 ? void 0 :
|
37
|
-
var
|
35
|
+
if (!(config === null || config === void 0 ? void 0 : config.slugAliases)) return query.slug;
|
36
|
+
var aliases = config.slugAliases;
|
38
37
|
var slugMap = {
|
39
38
|
};
|
40
39
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
41
40
|
try {
|
42
|
-
for(var _iterator = Object.entries(aliases
|
41
|
+
for(var _iterator = Object.entries(aliases || {
|
42
|
+
})[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
43
43
|
var _value = _slicedToArray(_step.value, 2), path = _value[0], alias = _value[1];
|
44
44
|
slugMap[alias] = path;
|
45
45
|
}
|
@@ -57,6 +57,5 @@ export var getListingAlias = function(param) {
|
|
57
57
|
}
|
58
58
|
}
|
59
59
|
}
|
60
|
-
|
61
|
-
return (ref1 = slugMap[query === null || query === void 0 ? void 0 : query.slug]) !== null && ref1 !== void 0 ? ref1 : query.slug;
|
60
|
+
return slugMap[query === null || query === void 0 ? void 0 : query.slug] || query.slug;
|
62
61
|
};
|