@jetshop/core 5.17.0-alpha.b296b0b3 → 5.17.0-alpha.b3ae48fa
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/ChannelHandler/ChannelHandler.js.map +1 -1
- package/ChannelHandler/PreserveRedirectRouteQuery.gql +4 -4
- package/ChannelHandler/redirectUtils.d.ts +1 -1
- package/ChannelHandler/redirectUtils.js +5 -3
- package/ChannelHandler/redirectUtils.js.map +1 -1
- package/ChannelHandler/redirectUtils.test.js +5 -5
- package/ChannelHandler/redirectUtilsGroupedChannels.test.js +5 -5
- package/analytics/webVitals.js +5 -5
- package/analytics/webVitals.js.map +1 -1
- package/boot/SharedTree.d.ts +1 -1
- package/boot/SharedTree.js +1 -1
- package/boot/SharedTree.js.map +1 -1
- package/boot/apollo.d.ts +1 -2
- package/boot/apollo.js +12 -7
- package/boot/apollo.js.map +1 -1
- package/boot/client/startClient.js +18 -5
- package/boot/client/startClient.js.map +1 -1
- package/boot/server/IntervalQuery.d.ts +1 -1
- package/boot/server/IntervalQuery.js +2 -2
- package/boot/server/IntervalQuery.js.map +1 -1
- package/boot/server/IntervalQuery.test.js +9 -13
- package/boot/server/PersistedApolloClient.test.js +8 -7
- package/boot/server/createApolloServer.d.ts +2 -1
- package/boot/server/createApolloServer.js +5 -5
- package/boot/server/createApolloServer.js.map +1 -1
- package/boot/server/createRenderer.js +4 -2
- package/boot/server/createRenderer.js.map +1 -1
- package/boot/server/entrypoint.js +7 -4
- package/boot/server/entrypoint.js.map +1 -1
- package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +1 -1
- package/boot/utils/queryLoggingMiddleware.d.ts +1 -1
- package/boot/utils/queryLoggingMiddleware.js +2 -2
- package/boot/utils/queryLoggingMiddleware.js.map +1 -1
- package/cart/AddToCartFormik.d.ts +2 -2
- package/cart/AddToCartFormik.js +1 -1
- package/cart/AddToCartFormik.js.map +1 -1
- package/cart/useAddToCart.d.ts +1 -1
- package/components/Auth/ForgotPasswordProvider.d.ts +4 -6
- package/components/Auth/ForgotPasswordProvider.js +18 -18
- package/components/Auth/ForgotPasswordProvider.js.map +1 -1
- package/components/Auth/ResetPasswordProvider.d.ts +5 -3
- package/components/Auth/ResetPasswordProvider.js +1 -1
- package/components/Auth/ResetPasswordProvider.js.map +1 -1
- package/components/Auth/SSN.js +4 -4
- package/components/Auth/SSN.js.map +1 -1
- package/components/Auth/SignupFormContainer.d.ts +2 -5
- package/components/Auth/SignupFormContainer.js.map +1 -1
- package/components/Auth/UpdatePasswordForm.js +6 -6
- package/components/Auth/UpdatePasswordForm.js.map +1 -1
- package/components/Auth/signup-context.d.ts +2 -2
- package/components/Auth/signup-context.js +2 -3
- package/components/Auth/signup-context.js.map +1 -1
- package/components/Auth/signupSubmit.js +4 -4
- package/components/Auth/signupSubmit.js.map +1 -1
- package/components/Auth/useAddressFields.js +3 -3
- package/components/Auth/useAddressFields.js.map +1 -1
- package/components/Auth/useAddressFields.test.js +10 -8
- package/components/Auth/useCustomer.d.ts +2 -2
- package/components/Auth/useCustomer.js +1 -1
- package/components/Auth/useCustomer.js.map +1 -1
- package/components/AuthContext/AuthProvider.js +2 -2
- package/components/AuthContext/AuthProvider.js.map +1 -1
- package/components/AuthContext/AuthProvider.test.js +1 -1
- package/components/AuthContext/LogOut.d.ts +2 -2
- package/components/ChannelContext/ChannelProvider.d.ts +1 -1
- package/components/ChannelContext/useCountrySettings.d.ts +1 -1
- package/components/ChannelContext/useCountrySettings.js +1 -1
- package/components/ChannelContext/useCountrySettings.js.map +1 -1
- package/components/DynamicRoute/ActiveFiltersQuery.gql +4 -4
- package/components/DynamicRoute/CategoryRoute.d.ts +3 -3
- package/components/DynamicRoute/CategoryRoute.js +6 -3
- package/components/DynamicRoute/CategoryRoute.js.map +1 -1
- package/components/DynamicRoute/ContentRoute.d.ts +1 -1
- package/components/DynamicRoute/GenericError.d.ts +4 -3
- package/components/DynamicRoute/GenericError.js.map +1 -1
- package/components/DynamicRoute/PreviewRoute.d.ts +1 -1
- package/components/DynamicRoute/PreviewRoute.js +1 -1
- package/components/DynamicRoute/PreviewRoute.js.map +1 -1
- package/components/DynamicRoute/ProductByArticlenumber.d.ts +2 -2
- package/components/DynamicRoute/ProductByArticlenumber.js +2 -2
- package/components/DynamicRoute/ProductByArticlenumber.js.map +1 -1
- package/components/DynamicRoute/ProductRoute.d.ts +3 -3
- package/components/DynamicRoute/RouteResolver.d.ts +2 -2
- package/components/DynamicRoute/RouteResolver.js +1 -0
- package/components/DynamicRoute/RouteResolver.js.map +1 -1
- package/components/DynamicRoute/Status.d.ts +4 -3
- package/components/DynamicRoute/Status.js.map +1 -1
- package/components/DynamicRoute/index.d.ts +1 -1
- package/components/DynamicRoute/index.js +16 -11
- package/components/DynamicRoute/index.js.map +1 -1
- package/components/Mutation/AddToCartFormik.d.ts +1 -1
- package/components/Mutation/AddToCartFormik.js +1 -1
- package/components/Mutation/AddToCartFormik.js.map +1 -1
- package/components/Mutation/DecrementQuantity.d.ts +2 -2
- package/components/Mutation/DecrementQuantity.js +1 -1
- package/components/Mutation/DecrementQuantity.js.map +1 -1
- package/components/Mutation/IncrementQuantity.d.ts +2 -2
- package/components/Mutation/IncrementQuantity.js +1 -1
- package/components/Mutation/IncrementQuantity.js.map +1 -1
- package/components/Mutation/RemoveFromCart.d.ts +2 -2
- package/components/Mutation/RemoveFromCart.js +1 -1
- package/components/Mutation/RemoveFromCart.js.map +1 -1
- package/components/Mutation/SetQuantity.d.ts +2 -2
- package/components/Mutation/SetQuantity.js +1 -1
- package/components/Mutation/SetQuantity.js.map +1 -1
- package/components/Mutation/SubscribeToNewsletter.d.ts +1 -1
- package/components/Mutation/SubscribeToNewsletter.js +1 -1
- package/components/Mutation/SubscribeToNewsletter.js.map +1 -1
- package/components/Mutation/SubscribeToStockNotifications.d.ts +1 -1
- package/components/Mutation/SubscribeToStockNotifications.js +6 -2
- package/components/Mutation/SubscribeToStockNotifications.js.map +1 -1
- package/components/Mutation/cartMutationUtils.d.ts +1 -2
- package/components/Mutation/cartMutationUtils.js.map +1 -1
- package/components/Mutation/useDecrementQuantity.d.ts +1 -1
- package/components/Mutation/useDecrementQuantity.js +1 -1
- package/components/Mutation/useDecrementQuantity.js.map +1 -1
- package/components/Mutation/useIncrementQuantity.d.ts +1 -1
- package/components/Mutation/useIncrementQuantity.js +1 -1
- package/components/Mutation/useIncrementQuantity.js.map +1 -1
- package/components/Mutation/useRemoveFromCart.d.ts +1 -1
- package/components/Mutation/useRemoveFromCart.js +1 -1
- package/components/Mutation/useRemoveFromCart.js.map +1 -1
- package/components/Mutation/useSetQuantity.d.ts +1 -1
- package/components/Mutation/useSetQuantity.js +1 -1
- package/components/Mutation/useSetQuantity.js.map +1 -1
- package/components/Notifications/Notifications.d.ts +3 -3
- package/components/ProductConfigurationProvider/ProductConfigurationProvider.js +6 -6
- package/components/ProductConfigurationProvider/ProductConfigurationProvider.js.map +1 -1
- package/components/Query/CartProvider.d.ts +1 -1
- package/components/Query/CartProvider.js +1 -1
- package/components/Query/CartProvider.js.map +1 -1
- package/components/SortOrder/SortOrderContainer.d.ts +1 -1
- package/components/StructuredData/StructuredBreadcrumbData.d.ts +2 -2
- package/data/cache.d.ts +1 -1
- package/data/cache.js +62 -12
- package/data/cache.js.map +1 -1
- package/data/fragments/StockStatusFragment.gql +1 -0
- package/global.d.ts +55 -1
- package/helpers/getErrorDetail.d.ts +1 -1
- package/helpers/getErrorDetail.js +2 -2
- package/helpers/getErrorDetail.js.map +1 -1
- package/hooks/Filters/useBooleanFilter.d.ts +1 -1
- package/hooks/Filters/useBooleanFilter.js +1 -2
- package/hooks/Filters/useBooleanFilter.js.map +1 -1
- package/hooks/Filters/useFilters.d.ts +1 -1
- package/hooks/Filters/useFilters.js +1 -2
- package/hooks/Filters/useFilters.js.map +1 -1
- package/hooks/Filters/useListFilter.d.ts +2 -2
- package/hooks/Filters/useListFilter.js +1 -2
- package/hooks/Filters/useListFilter.js.map +1 -1
- package/hooks/Filters/useMultiFilter.d.ts +3 -3
- package/hooks/Filters/useMultiFilter.js +1 -2
- package/hooks/Filters/useMultiFilter.js.map +1 -1
- package/hooks/Filters/useRangeFilter.d.ts +2 -2
- package/hooks/Filters/useRangeFilter.js +1 -2
- package/hooks/Filters/useRangeFilter.js.map +1 -1
- package/hooks/Filters/useSortOrder.js +4 -3
- package/hooks/Filters/useSortOrder.js.map +1 -1
- package/hooks/PackageProducts/usePackageProducts.js +17 -17
- package/hooks/PackageProducts/usePackageProducts.js.map +1 -1
- package/hooks/PackageProducts/usePackageProducts.test.js +1 -1
- package/hooks/ProductList/ProductListContext.js +1 -1
- package/hooks/ProductList/ProductListContext.js.map +1 -1
- package/hooks/ProductList/action-creators.d.ts +1 -1
- package/hooks/ProductList/index.d.ts +1 -1
- package/hooks/ProductList/list-transforms.js +1 -1
- package/hooks/ProductList/list-transforms.js.map +1 -1
- package/hooks/ProductList/product-list-reducer.js +1 -1
- package/hooks/ProductList/product-list-reducer.js.map +1 -1
- package/hooks/ProductList/useProductList.js +1 -1
- package/hooks/ProductList/useProductList.js.map +1 -1
- package/hooks/ProductList/useProductListItems.js +1 -1
- package/hooks/ProductList/useProductListItems.js.map +1 -1
- package/hooks/Subscriptions/useNewsletterSubscription.js +3 -3
- package/hooks/Subscriptions/useNewsletterSubscription.js.map +1 -1
- package/hooks/Subscriptions/useStockNotifications.d.ts +1 -1
- package/hooks/Subscriptions/useStockNotifications.js +3 -3
- package/hooks/Subscriptions/useStockNotifications.js.map +1 -1
- package/hooks/Subscriptions/useStoreSubscriptions.d.ts +1 -1
- package/hooks/Subscriptions/useStoreSubscriptions.js +3 -6
- package/hooks/Subscriptions/useStoreSubscriptions.js.map +1 -1
- package/hooks/Subscriptions/useStoresubscriptions.test.js +5 -7
- package/hooks/useAddMultipleToCart.d.ts +1 -1
- package/hooks/useAddMultipleToCart.js +1 -1
- package/hooks/useAddMultipleToCart.js.map +1 -1
- package/hooks/useAddMultipleToCart.test.js +1 -1
- package/hooks/useCustomerOrders.test.js +7 -5
- package/hooks/useCustomerOrdersQuery.d.ts +2 -2
- package/hooks/useCustomerOrdersQuery.js +1 -1
- package/hooks/useCustomerOrdersQuery.js.map +1 -1
- package/hooks/useDeleteAccountMutation.js +3 -3
- package/hooks/useDeleteAccountMutation.js.map +1 -1
- package/hooks/useInfinitePagination.d.ts +1 -1
- package/hooks/useInfinitePagination.js +4 -1
- package/hooks/useInfinitePagination.js.map +1 -1
- package/hooks/useLoginMutation.d.ts +3 -3
- package/hooks/useLoginMutation.js +2 -2
- package/hooks/useLoginMutation.js.map +1 -1
- package/hooks/useLoginRedirect.js +2 -2
- package/hooks/useLoginRedirect.js.map +1 -1
- package/hooks/useOrderDetailQuery.d.ts +3 -3
- package/hooks/useOrderDetailQuery.js +1 -1
- package/hooks/useOrderDetailQuery.js.map +1 -1
- package/hooks/useRoutePreload.js +1 -1
- package/hooks/useRoutePreload.js.map +1 -1
- package/integrations/sluggishSchemaExtension.js +1 -1
- package/integrations/sluggishSchemaExtension.js.map +1 -1
- package/package.json +23 -41
- package/polyfills.js +0 -2
- package/polyfills.js.map +1 -1
- package/resolvers/filters/boolFilter.js +24 -27
- package/resolvers/filters/boolFilter.js.map +1 -1
- package/resolvers/filters/filterParams.js +8 -8
- package/resolvers/filters/filterParams.js.map +1 -1
- package/resolvers/filters/filters.js +5 -5
- package/resolvers/filters/filters.js.map +1 -1
- package/resolvers/filters/index.d.ts +0 -4
- package/resolvers/filters/listFilter.js +24 -29
- package/resolvers/filters/listFilter.js.map +1 -1
- package/resolvers/filters/listFilterItem.js +21 -27
- package/resolvers/filters/listFilterItem.js.map +1 -1
- package/resolvers/filters/multiListFilter.js +41 -42
- package/resolvers/filters/multiListFilter.js.map +1 -1
- package/resolvers/filters/multiListFilterList.js +1 -1
- package/resolvers/filters/multiListFilterList.js.map +1 -1
- package/resolvers/filters/rangeFilter.js +27 -43
- package/resolvers/filters/rangeFilter.js.map +1 -1
- package/test-utils/ProviderPyramid.js +1 -1
- package/types.d.ts +1820 -1955
- package/components/Fonts/GoogleFont.d.ts +0 -10
- package/components/Fonts/GoogleFont.js +0 -35
- package/components/Fonts/GoogleFont.js.map +0 -1
- package/components/Fonts/TypekitFont.d.ts +0 -16
- package/components/Fonts/TypekitFont.js +0 -25
- package/components/Fonts/TypekitFont.js.map +0 -1
- package/integrations/addwishSchemaExtension.d.ts +0 -35
- package/integrations/addwishSchemaExtension.js +0 -141
- package/integrations/addwishSchemaExtension.js.map +0 -1
- package/integrations/nostoSchemaExtension.d.ts +0 -5
- package/integrations/nostoSchemaExtension.js +0 -77
- package/integrations/nostoSchemaExtension.js.map +0 -1
package/polyfills.js
CHANGED
package/polyfills.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"polyfills.js","sourceRoot":"","sources":["polyfills.ts"],"names":[],"mappings":"AAAA,
|
1
|
+
{"version":3,"file":"polyfills.js","sourceRoot":"","sources":["polyfills.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC;IACpC,KAAK;IACL,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,eAAe;IACf,sBAAsB;IACtB,2BAA2B;IAC3B,yBAAyB;IACzB,0BAA0B;IAC1B,sBAAsB;IACtB,YAAY;IACZ,sBAAsB;IACtB,2BAA2B;IAC3B,6BAA6B;IAC7B,KAAK;IACL,sBAAsB;IACtB,gBAAgB,MAAM,EAAE;IACxB,SAAS;IACT,OAAO;IACP,QAAQ;IACR,gBAAgB;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,EAAE;IAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,6YAA6Y;IAC7Y,OAAO;;;;;;;gEAQL,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACnD,kCAAkC,QAAQ,yBAAyB,CAAC;AACtE,CAAC,CAAC"}
|
@@ -1,7 +1,8 @@
|
|
1
|
-
import
|
2
|
-
import
|
1
|
+
import { gql } from '@apollo/client';
|
2
|
+
import { produce } from 'immer';
|
3
3
|
import { updateBooleanQueryString } from './updateQueryString';
|
4
4
|
import { parse } from 'qs';
|
5
|
+
import ActiveFiltersQuery from '@jetshop/core/components/DynamicRoute/ActiveFiltersQuery.gql';
|
5
6
|
// QUERY
|
6
7
|
export const boolFilterValue = function boolFilterValue(parent) {
|
7
8
|
return (searchParams) => {
|
@@ -27,17 +28,18 @@ export const setBoolFilter = (_, { value, id }, { cache, getCacheKey }) => {
|
|
27
28
|
id,
|
28
29
|
__typename: 'BooleanFilter'
|
29
30
|
});
|
31
|
+
const boolFilterFragment = gql `
|
32
|
+
fragment BoolFilterState on BooleanFilter {
|
33
|
+
id
|
34
|
+
default
|
35
|
+
value @client
|
36
|
+
}
|
37
|
+
`;
|
30
38
|
const boolFilter = cache.readFragment({
|
31
|
-
fragment:
|
32
|
-
fragment BoolFilterState on BooleanFilter {
|
33
|
-
id
|
34
|
-
default
|
35
|
-
value @client
|
36
|
-
}
|
37
|
-
`,
|
39
|
+
fragment: boolFilterFragment,
|
38
40
|
id: fragmentId
|
39
41
|
});
|
40
|
-
const data = produce(boolFilter, draft => {
|
42
|
+
const data = produce(boolFilter, (draft) => {
|
41
43
|
if (draft.default !== null) {
|
42
44
|
draft.value = value === draft.default ? null : value;
|
43
45
|
}
|
@@ -45,7 +47,8 @@ export const setBoolFilter = (_, { value, id }, { cache, getCacheKey }) => {
|
|
45
47
|
draft.value = value === false ? null : value;
|
46
48
|
}
|
47
49
|
});
|
48
|
-
cache.
|
50
|
+
cache.writeFragment({
|
51
|
+
fragment: boolFilterFragment,
|
49
52
|
id: fragmentId,
|
50
53
|
data
|
51
54
|
});
|
@@ -55,31 +58,25 @@ export const setBoolFilter = (_, { value, id }, { cache, getCacheKey }) => {
|
|
55
58
|
return data;
|
56
59
|
};
|
57
60
|
function updateActiveFilters(cache, data) {
|
58
|
-
const
|
59
|
-
|
60
|
-
activeFilters @client {
|
61
|
-
booleanFilters {
|
62
|
-
id
|
63
|
-
value @client
|
64
|
-
}
|
65
|
-
}
|
66
|
-
}
|
67
|
-
`;
|
68
|
-
const currentActiveFilters = cache.readQuery({ query: activeBoolFilterQuery });
|
69
|
-
const { activeFilters } = produce(currentActiveFilters, draft => {
|
61
|
+
const currentActiveFilters = cache.readQuery({ query: ActiveFiltersQuery });
|
62
|
+
const { activeFilters } = produce(currentActiveFilters, (draft) => {
|
70
63
|
// Clear this filter from active filters
|
71
64
|
if (data.value === null) {
|
72
|
-
draft.activeFilters.booleanFilters =
|
65
|
+
draft.activeFilters.booleanFilters =
|
66
|
+
draft.activeFilters.booleanFilters.filter((boolFilter) => boolFilter.id !== data.id);
|
73
67
|
}
|
74
68
|
else {
|
75
69
|
draft.activeFilters.booleanFilters.push({
|
76
70
|
id: data.id,
|
77
|
-
value: data.value
|
78
|
-
__typename: 'BooleanFilterInput'
|
71
|
+
value: data.value
|
72
|
+
// __typename: 'BooleanFilterInput'
|
79
73
|
});
|
80
74
|
}
|
81
75
|
});
|
82
|
-
cache.
|
76
|
+
cache.writeQuery({
|
77
|
+
query: ActiveFiltersQuery,
|
78
|
+
data: { activeFilters }
|
79
|
+
});
|
83
80
|
return activeFilters;
|
84
81
|
}
|
85
82
|
//# sourceMappingURL=boolFilter.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"boolFilter.js","sourceRoot":"","sources":["boolFilter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"boolFilter.js","sourceRoot":"","sources":["boolFilter.ts"],"names":[],"mappings":"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"}
|
@@ -45,8 +45,8 @@ function convertFilterQueryToActiveFilter({ initialSearchParams, filter, activeF
|
|
45
45
|
return (activeFilters['listFilters'] = Object.keys(filter.list).map((id) => {
|
46
46
|
const filter = {
|
47
47
|
id,
|
48
|
-
values: initialSearchParams.list[id]
|
49
|
-
__typename: 'ListFilterInput'
|
48
|
+
values: initialSearchParams.list[id]
|
49
|
+
// __typename: 'ListFilterInput' as const
|
50
50
|
};
|
51
51
|
return filter;
|
52
52
|
}));
|
@@ -55,8 +55,8 @@ function convertFilterQueryToActiveFilter({ initialSearchParams, filter, activeF
|
|
55
55
|
const filter = {
|
56
56
|
id,
|
57
57
|
min: +initialSearchParams.range[id][0],
|
58
|
-
max: +initialSearchParams.range[id][1]
|
59
|
-
__typename: 'RangeFilterInput'
|
58
|
+
max: +initialSearchParams.range[id][1]
|
59
|
+
// __typename: 'RangeFilterInput' as const
|
60
60
|
};
|
61
61
|
return filter;
|
62
62
|
}));
|
@@ -64,8 +64,8 @@ function convertFilterQueryToActiveFilter({ initialSearchParams, filter, activeF
|
|
64
64
|
return (activeFilters['booleanFilters'] = Object.keys(filter.boolean).map((id) => {
|
65
65
|
const filter = {
|
66
66
|
id,
|
67
|
-
value: JSON.parse(initialSearchParams.boolean[id])
|
68
|
-
__typename: 'BooleanFilterInput'
|
67
|
+
value: JSON.parse(initialSearchParams.boolean[id])
|
68
|
+
// __typename: 'BooleanFilterInput' as const
|
69
69
|
};
|
70
70
|
return filter;
|
71
71
|
}));
|
@@ -73,8 +73,8 @@ function convertFilterQueryToActiveFilter({ initialSearchParams, filter, activeF
|
|
73
73
|
return (activeFilters['multiListFilters'] = Object.keys(filter.multiList).map((id) => {
|
74
74
|
const filter = {
|
75
75
|
id,
|
76
|
-
values: initialSearchParams.multiList[id]
|
77
|
-
__typename: 'MultiListFilterInput'
|
76
|
+
values: initialSearchParams.multiList[id]
|
77
|
+
// __typename: 'MultiListFilterInput' as const
|
78
78
|
};
|
79
79
|
return filter;
|
80
80
|
}));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filterParams.js","sourceRoot":"","sources":["filterParams.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAW9D,MAAM,OAAO,GAAkC;IAC7C,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,gBAAgB;IACzB,SAAS,EAAE,kBAAkB;CAC9B,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,KAAsB;IAC/D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QAChC,OAAO,oBAAoB,CAAC;KAC7B;IAED,6EAA6E;IAC7E,MAAM,mBAAmB,GACvB,OAAO,KAAK,KAAK,QAAQ;QACvB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE;YACd,iBAAiB,EAAE,IAAI;YACvB,UAAU,EAAE,GAAG;SAChB,CAAC;QACJ,CAAC,CAAC,KAAK,CAAC;IAEZ,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;SAClD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,OAAO,aAAa,CAAC,GAAG,CAAC,KAAkB,CAAC;YAC1C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE;YACzC,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,+DAA+D;IAC/D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,oBAAoB,CAAC;IAE3D,MAAM,aAAa,qBAAQ,oBAAoB,CAAE,CAAC;IAClD,YAAY,CAAC,OAAO,CAAC,CAAC,MAAmC,EAAE,EAAE;QAC3D,gCAAgC,CAAC;YAC/B,aAAa;YACb,mBAAmB;YACnB,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,gCAAgC,CAAC,EACxC,mBAAmB,EACnB,MAAM,EACN,aAAa,EAKd;IACC,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAc,EAAE;QAC3C,KAAK,MAAM;YACT,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CACjE,CAAC,EAAE,EAAE,EAAE;gBACL,MAAM,MAAM,GAAG;oBACb,EAAE;oBACF,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,
|
1
|
+
{"version":3,"file":"filterParams.js","sourceRoot":"","sources":["filterParams.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import gql from '
|
1
|
+
import { gql } from '@apollo/client';
|
2
2
|
////////////////////////////////////////////////////////////////////////////////
|
3
3
|
// Mutations
|
4
4
|
/**
|
@@ -26,7 +26,7 @@ export const clearAllFilters = (_, __, { client, cache }) => {
|
|
26
26
|
const { activeFilters } = cache.readQuery({
|
27
27
|
query: activeFiltersQuery
|
28
28
|
});
|
29
|
-
activeFilters.listFilters.forEach(listFilter => {
|
29
|
+
activeFilters.listFilters.forEach((listFilter) => {
|
30
30
|
client.mutate({
|
31
31
|
mutation: gql `
|
32
32
|
mutation ClearListFilter($id: String!) {
|
@@ -38,7 +38,7 @@ export const clearAllFilters = (_, __, { client, cache }) => {
|
|
38
38
|
}
|
39
39
|
});
|
40
40
|
});
|
41
|
-
activeFilters.rangeFilters.forEach(rangeFilter => {
|
41
|
+
activeFilters.rangeFilters.forEach((rangeFilter) => {
|
42
42
|
client.mutate({
|
43
43
|
mutation: gql `
|
44
44
|
mutation ClearRangeFilter($id: String!) {
|
@@ -50,7 +50,7 @@ export const clearAllFilters = (_, __, { client, cache }) => {
|
|
50
50
|
}
|
51
51
|
});
|
52
52
|
});
|
53
|
-
activeFilters.booleanFilters.forEach(boolFilter => {
|
53
|
+
activeFilters.booleanFilters.forEach((boolFilter) => {
|
54
54
|
client.mutate({
|
55
55
|
mutation: gql `
|
56
56
|
mutation ClearBoolFilter($id: String!) {
|
@@ -62,7 +62,7 @@ export const clearAllFilters = (_, __, { client, cache }) => {
|
|
62
62
|
}
|
63
63
|
});
|
64
64
|
});
|
65
|
-
activeFilters.multiListFilters.forEach(multiFilter => {
|
65
|
+
activeFilters.multiListFilters.forEach((multiFilter) => {
|
66
66
|
client.mutate({
|
67
67
|
mutation: gql `
|
68
68
|
mutation ClearMultiFilter($id: String!) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filters.js","sourceRoot":"","sources":["filters.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,
|
1
|
+
{"version":3,"file":"filters.js","sourceRoot":"","sources":["filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAIrC,gFAAgF;AAChF,YAAY;AAEZ;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IACpE,MAAM,kBAAkB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;GAiB7B,CAAC;IAEF,MAAM,EAAE,aAAa,EAAE,GAAqC,KAAK,CAAC,SAAS,CAAC;QAC1E,KAAK,EAAE,kBAAkB;KAC1B,CAAC,CAAC;IAEH,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QAC/C,MAAM,CAAC,MAAM,CAAC;YACZ,QAAQ,EAAE,GAAG,CAAA;;;;OAIZ;YACD,SAAS,EAAE;gBACT,EAAE,EAAE,UAAU,CAAC,EAAE;aAClB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QACjD,MAAM,CAAC,MAAM,CAAC;YACZ,QAAQ,EAAE,GAAG,CAAA;;;;OAIZ;YACD,SAAS,EAAE;gBACT,EAAE,EAAE,WAAW,CAAC,EAAE;aACnB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QAClD,MAAM,CAAC,MAAM,CAAC;YACZ,QAAQ,EAAE,GAAG,CAAA;;;;OAIZ;YACD,SAAS,EAAE;gBACT,EAAE,EAAE,UAAU,CAAC,EAAE;aAClB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QACrD,MAAM,CAAC,MAAM,CAAC;YACZ,QAAQ,EAAE,GAAG,CAAA;;;;OAIZ;YACD,SAAS,EAAE;gBACT,EAAE,EAAE,WAAW,CAAC,EAAE;aACnB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
@@ -14,14 +14,10 @@ export interface ActiveFilters extends FilterInput {
|
|
14
14
|
multiListFilters?: ActiveMultiListFilter[];
|
15
15
|
}
|
16
16
|
export interface ActiveListFilter extends ListFilterInput {
|
17
|
-
__typename: 'ListFilterInput';
|
18
17
|
}
|
19
18
|
export interface ActiveRangeFilter extends RangeFilterInput {
|
20
|
-
__typename: 'RangeFilterInput';
|
21
19
|
}
|
22
20
|
export interface ActiveBooleanFilter extends BooleanFilterInput {
|
23
|
-
__typename: 'BooleanFilterInput';
|
24
21
|
}
|
25
22
|
export interface ActiveMultiListFilter extends MultiListFilterInput {
|
26
|
-
__typename: 'MultiListFilterInput';
|
27
23
|
}
|
@@ -1,6 +1,7 @@
|
|
1
|
-
import gql from '
|
2
|
-
import produce from 'immer';
|
1
|
+
import { gql } from '@apollo/client';
|
2
|
+
import { produce } from 'immer';
|
3
3
|
import { updateListFilterQueryString } from './updateQueryString';
|
4
|
+
import ActiveFiltersQuery from '@jetshop/core/components/DynamicRoute/ActiveFiltersQuery.gql';
|
4
5
|
export const listFilterHasActiveItems = function listFilterHasActiveItems(parent) {
|
5
6
|
return (searchParams) => {
|
6
7
|
// During SSR, search params are passed in when instantiating Apollo Client.
|
@@ -17,25 +18,28 @@ export const listFilterHasActiveItems = function listFilterHasActiveItems(parent
|
|
17
18
|
*/
|
18
19
|
export const clearListFilter = (_, { id }, { cache, getCacheKey }) => {
|
19
20
|
const fragmentId = getCacheKey({ id, __typename: 'ListFilter' });
|
20
|
-
const
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
const c = cache;
|
22
|
+
const fragment = gql `
|
23
|
+
fragment listFilterItems on ListFilter {
|
24
|
+
hasActiveItems @client
|
25
|
+
id
|
26
|
+
items {
|
25
27
|
id
|
26
|
-
|
27
|
-
id
|
28
|
-
isActive @client
|
29
|
-
}
|
28
|
+
isActive @client
|
30
29
|
}
|
31
|
-
|
30
|
+
}
|
31
|
+
`;
|
32
|
+
const filter = c.readFragment({
|
33
|
+
id: fragmentId,
|
34
|
+
fragment
|
32
35
|
});
|
33
|
-
const data = produce(filter, draft => {
|
36
|
+
const data = produce(filter, (draft) => {
|
34
37
|
draft.hasActiveItems = false;
|
35
|
-
draft.items.forEach(item => (item.isActive = false));
|
38
|
+
draft.items.forEach((item) => (item.isActive = false));
|
36
39
|
});
|
37
|
-
|
40
|
+
c.writeFragment({
|
38
41
|
id: fragmentId,
|
42
|
+
fragment,
|
39
43
|
data
|
40
44
|
});
|
41
45
|
const activeFilters = updateActiveFilters(cache, id);
|
@@ -50,23 +54,14 @@ export const clearListFilter = (_, { id }, { cache, getCacheKey }) => {
|
|
50
54
|
* @returns All active filters
|
51
55
|
*/
|
52
56
|
function updateActiveFilters(cache, id) {
|
53
|
-
const activeListFilterQuery = gql `
|
54
|
-
query GetActiveListFilters {
|
55
|
-
activeFilters @client {
|
56
|
-
listFilters {
|
57
|
-
id
|
58
|
-
values
|
59
|
-
}
|
60
|
-
}
|
61
|
-
}
|
62
|
-
`;
|
63
57
|
const { activeFilters } = cache.readQuery({
|
64
|
-
query:
|
58
|
+
query: ActiveFiltersQuery
|
65
59
|
});
|
66
|
-
const data = produce(activeFilters, draft => {
|
67
|
-
draft.listFilters = draft.listFilters.filter(listFilter => listFilter.id !== id);
|
60
|
+
const data = produce(activeFilters, (draft) => {
|
61
|
+
draft.listFilters = draft.listFilters.filter((listFilter) => listFilter.id !== id);
|
68
62
|
});
|
69
|
-
cache.
|
63
|
+
cache.writeQuery({
|
64
|
+
query: ActiveFiltersQuery,
|
70
65
|
data: { activeFilters: data }
|
71
66
|
});
|
72
67
|
return data;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"listFilter.js","sourceRoot":"","sources":["listFilter.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"listFilter.js","sourceRoot":"","sources":["listFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIhC,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,kBAAkB,MAAM,8DAA8D,CAAC;AAE9F,MAAM,CAAC,MAAM,wBAAwB,GACnC,SAAS,wBAAwB,CAAC,MAAM;IACtC,OAAO,CAAC,YAAoB,EAAE,EAAE;QAC9B,4EAA4E;QAC5E,iDAAiD;QACjD,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAEtE,qEAAqE;QACrE,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEJ,gFAAgF;AAChF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAa,CACvC,CAAC,EACD,EAAE,EAAE,EAAE,EACN,EAAE,KAAK,EAAE,WAAW,EAAE,EACtB,EAAE;IACF,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;IACjE,MAAM,CAAC,GAAG,KAAsB,CAAC;IAEjC,MAAM,QAAQ,GAAG,GAAG,CAAA;;;;;;;;;GASnB,CAAC;IAEF,MAAM,MAAM,GAAe,CAAC,CAAC,YAAY,CAAC;QACxC,EAAE,EAAE,UAAU;QACd,QAAQ;KACT,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QACrC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;QAC7B,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,aAAa,CAAC;QACd,EAAE,EAAE,UAAU;QACd,QAAQ;QACR,IAAI;KACL,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,2BAA2B,CAAC,aAAa,CAAC,CAAC;IAErE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,gFAAgF;AAChF;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,KAAoB,EAAE,EAAU;IAC3D,MAAM,EACJ,aAAa,EACd,GAEG,KAAK,CAAC,SAAS,CAAC;QAClB,KAAK,EAAE,kBAAkB;KAC1B,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5C,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAC1C,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CACrC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,UAAU,CAAC;QACf,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;KAC9B,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC"}
|
@@ -1,7 +1,8 @@
|
|
1
|
-
import gql from '
|
2
|
-
import produce from 'immer';
|
1
|
+
import { gql } from '@apollo/client';
|
2
|
+
import { produce } from 'immer';
|
3
3
|
import { updateListFilterQueryString } from './updateQueryString';
|
4
4
|
import qs from 'qs';
|
5
|
+
import ActiveFiltersQuery from '@jetshop/core/components/DynamicRoute/ActiveFiltersQuery.gql';
|
5
6
|
// QUERY
|
6
7
|
export const isListFilterActive = function isListFilterActive(parent) {
|
7
8
|
return (searchParams) => {
|
@@ -33,22 +34,24 @@ export const isListFilterActive = function isListFilterActive(parent) {
|
|
33
34
|
////////////////////////////////////////////////////////////////////////////////
|
34
35
|
// MUTATIONS
|
35
36
|
export const toggleListFilterItem = function toggleListFilterItem(_, { value, parentId, set }, { cache, getCacheKey }) {
|
37
|
+
const c = cache;
|
36
38
|
const fragmentId = getCacheKey({
|
37
39
|
id: parentId,
|
38
40
|
__typename: 'ListFilter'
|
39
41
|
});
|
40
|
-
const
|
41
|
-
|
42
|
-
|
43
|
-
|
42
|
+
const fragment = gql `
|
43
|
+
fragment listFilter on ListFilter {
|
44
|
+
hasActiveItems @client
|
45
|
+
id
|
46
|
+
items {
|
44
47
|
id
|
45
|
-
|
46
|
-
|
47
|
-
value
|
48
|
-
isActive @client
|
49
|
-
}
|
48
|
+
value
|
49
|
+
isActive @client
|
50
50
|
}
|
51
|
-
|
51
|
+
}
|
52
|
+
`;
|
53
|
+
const listItem = cache.readFragment({
|
54
|
+
fragment,
|
52
55
|
id: fragmentId
|
53
56
|
});
|
54
57
|
const data = produce(listItem, (draft) => {
|
@@ -60,8 +63,9 @@ export const toggleListFilterItem = function toggleListFilterItem(_, { value, pa
|
|
60
63
|
// If there are any active items, set hasActiveItems to true on the ListFilter
|
61
64
|
draft.hasActiveItems = items.some((item) => item.isActive);
|
62
65
|
});
|
63
|
-
|
66
|
+
c.writeFragment({
|
64
67
|
id: fragmentId,
|
68
|
+
fragment,
|
65
69
|
data
|
66
70
|
});
|
67
71
|
// Write changes to the active filters list
|
@@ -78,18 +82,8 @@ export const toggleListFilterItem = function toggleListFilterItem(_, { value, pa
|
|
78
82
|
* @returns All active filters
|
79
83
|
*/
|
80
84
|
function updateActiveListFilters(cache, data) {
|
81
|
-
const activeListFilterQuery = gql `
|
82
|
-
query GetActiveListFilters {
|
83
|
-
activeFilters @client {
|
84
|
-
listFilters {
|
85
|
-
id
|
86
|
-
values
|
87
|
-
}
|
88
|
-
}
|
89
|
-
}
|
90
|
-
`;
|
91
85
|
const currentActiveFilters = cache.readQuery({
|
92
|
-
query:
|
86
|
+
query: ActiveFiltersQuery
|
93
87
|
});
|
94
88
|
const activeFilters = produce(currentActiveFilters, (draft) => {
|
95
89
|
// Check if the filter that was just toggled is already in activeFilters
|
@@ -111,12 +105,12 @@ function updateActiveListFilters(cache, data) {
|
|
111
105
|
// Otherwise push it to the list of active filters
|
112
106
|
draft.activeFilters.listFilters.push({
|
113
107
|
id: data.id,
|
114
|
-
values: activeListFilters
|
115
|
-
__typename: 'ListFilterInput'
|
108
|
+
values: activeListFilters
|
116
109
|
});
|
117
110
|
}
|
118
111
|
});
|
119
|
-
cache.
|
112
|
+
cache.writeQuery({
|
113
|
+
query: ActiveFiltersQuery,
|
120
114
|
data: activeFilters
|
121
115
|
});
|
122
116
|
return activeFilters;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"listFilterItem.js","sourceRoot":"","sources":["listFilterItem.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"listFilterItem.js","sourceRoot":"","sources":["listFilterItem.ts"],"names":[],"mappings":"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"}
|
@@ -1,10 +1,11 @@
|
|
1
|
-
import gql from '
|
2
|
-
import produce from 'immer';
|
1
|
+
import { gql } from '@apollo/client';
|
2
|
+
import { produce } from 'immer';
|
3
3
|
import { updateMultiListQueryString } from './updateQueryString';
|
4
|
+
import ActiveFiltersQuery from '@jetshop/core/components/DynamicRoute/ActiveFiltersQuery.gql';
|
4
5
|
////////////////////////////////////////////////////////////////////////////////
|
5
6
|
// Queries
|
6
7
|
////////////////////////////////////////////////////////////////////////////////
|
7
|
-
export const isMultiFilterActive = parent => {
|
8
|
+
export const isMultiFilterActive = (parent) => {
|
8
9
|
return (searchParams) => {
|
9
10
|
const query = __IN_SERVER__ ? searchParams : document.location.search;
|
10
11
|
// If the search params include the parent id, this filter is applied
|
@@ -14,7 +15,7 @@ export const isMultiFilterActive = parent => {
|
|
14
15
|
////////////////////////////////////////////////////////////////////////////////
|
15
16
|
// Mutations
|
16
17
|
////////////////////////////////////////////////////////////////////////////////
|
17
|
-
const
|
18
|
+
const fragment = gql `
|
18
19
|
fragment GetMultiListFilter on MultiListFilter {
|
19
20
|
isActive @client
|
20
21
|
id
|
@@ -30,23 +31,26 @@ const multiListFilterFragment = gql `
|
|
30
31
|
}
|
31
32
|
`;
|
32
33
|
export const setMultiListFilter = (_, { values, id }, { cache, getCacheKey }) => {
|
34
|
+
const c = cache;
|
33
35
|
const fragmentId = getCacheKey({
|
34
36
|
id,
|
35
37
|
__typename: 'MultiListFilter'
|
36
38
|
});
|
37
39
|
const multiListFilter = cache.readFragment({
|
38
|
-
fragment
|
40
|
+
fragment,
|
39
41
|
id: fragmentId
|
40
42
|
});
|
41
|
-
const data = produce(multiListFilter, draft => {
|
43
|
+
const data = produce(multiListFilter, (draft) => {
|
42
44
|
draft.isActive = true;
|
43
45
|
values.forEach((val, index) => {
|
44
46
|
draft.lists[index].hasActiveItems = true;
|
45
|
-
draft.lists[index].items.find(item => item.value === val).isActive =
|
47
|
+
draft.lists[index].items.find((item) => item.value === val).isActive =
|
48
|
+
true;
|
46
49
|
});
|
47
50
|
});
|
48
|
-
|
51
|
+
c.writeFragment({
|
49
52
|
id: fragmentId,
|
53
|
+
fragment,
|
50
54
|
data
|
51
55
|
});
|
52
56
|
const { activeFilters } = updateActiveMultiListFilters(cache, data);
|
@@ -55,26 +59,27 @@ export const setMultiListFilter = (_, { values, id }, { cache, getCacheKey }) =>
|
|
55
59
|
};
|
56
60
|
////////////////////////////////////////////////////////////////////////////////
|
57
61
|
export const toggleMultiListFilterItem = (_, { value, filter, listIndex }, { cache, getCacheKey }) => {
|
62
|
+
const c = cache;
|
58
63
|
const fragmentId = getCacheKey({
|
59
64
|
id: filter.id,
|
60
65
|
__typename: 'MultiListFilter'
|
61
66
|
});
|
62
|
-
const multiListFilter =
|
63
|
-
fragment
|
67
|
+
const multiListFilter = c.readFragment({
|
68
|
+
fragment,
|
64
69
|
id: fragmentId
|
65
70
|
});
|
66
|
-
const data = produce(multiListFilter, draft => {
|
71
|
+
const data = produce(multiListFilter, (draft) => {
|
67
72
|
const totalLists = draft.lists.length;
|
68
73
|
// Update this list
|
69
74
|
const list = draft.lists[listIndex];
|
70
75
|
let isNowActive = true;
|
71
76
|
if (value === null) {
|
72
77
|
// Clear this list
|
73
|
-
list.items.forEach(item => (item.isActive = false));
|
78
|
+
list.items.forEach((item) => (item.isActive = false));
|
74
79
|
isNowActive = false;
|
75
80
|
}
|
76
81
|
else {
|
77
|
-
list.items.forEach(item => {
|
82
|
+
list.items.forEach((item) => {
|
78
83
|
if (item.value === value) {
|
79
84
|
const itemCurrentlyActive = item.isActive;
|
80
85
|
// If the item is already active, we are toggling it off
|
@@ -96,7 +101,7 @@ export const toggleMultiListFilterItem = (_, { value, filter, listIndex }, { cac
|
|
96
101
|
if (!list.hasActiveItems)
|
97
102
|
return;
|
98
103
|
list.hasActiveItems = false;
|
99
|
-
list.items.forEach(item => (item.isActive = false));
|
104
|
+
list.items.forEach((item) => (item.isActive = false));
|
100
105
|
});
|
101
106
|
}
|
102
107
|
if (listIndex === 0 && !isNowActive) {
|
@@ -108,8 +113,9 @@ export const toggleMultiListFilterItem = (_, { value, filter, listIndex }, { cac
|
|
108
113
|
draft.isActive = true;
|
109
114
|
}
|
110
115
|
});
|
111
|
-
|
116
|
+
c.writeFragment({
|
112
117
|
id: fragmentId,
|
118
|
+
fragment,
|
113
119
|
data
|
114
120
|
});
|
115
121
|
const { activeFilters } = updateActiveMultiListFilters(cache, data);
|
@@ -118,22 +124,24 @@ export const toggleMultiListFilterItem = (_, { value, filter, listIndex }, { cac
|
|
118
124
|
};
|
119
125
|
/////////////////////////////////////////////////////////////////////////////////
|
120
126
|
export const clearMultiListFilter = (_, { id }, { cache, getCacheKey }) => {
|
127
|
+
const c = cache;
|
121
128
|
const fragmentId = getCacheKey({ id, __typename: 'MultiListFilter' });
|
122
|
-
const filter =
|
129
|
+
const filter = c.readFragment({
|
123
130
|
id: fragmentId,
|
124
|
-
fragment
|
131
|
+
fragment
|
125
132
|
});
|
126
|
-
const data = produce(filter, draft => {
|
133
|
+
const data = produce(filter, (draft) => {
|
127
134
|
draft.isActive = false;
|
128
|
-
draft.lists.forEach(list => {
|
135
|
+
draft.lists.forEach((list) => {
|
129
136
|
if (!list.hasActiveItems)
|
130
137
|
return;
|
131
138
|
list.hasActiveItems = false;
|
132
|
-
list.items.forEach(item => (item.isActive = false));
|
139
|
+
list.items.forEach((item) => (item.isActive = false));
|
133
140
|
});
|
134
141
|
});
|
135
|
-
|
142
|
+
c.writeFragment({
|
136
143
|
id: fragmentId,
|
144
|
+
fragment,
|
137
145
|
data
|
138
146
|
});
|
139
147
|
const { activeFilters } = updateActiveMultiListFilters(cache, data);
|
@@ -147,31 +155,22 @@ export const clearMultiListFilter = (_, { id }, { cache, getCacheKey }) => {
|
|
147
155
|
* @param data The multi list filter that has been modified
|
148
156
|
*/
|
149
157
|
function updateActiveMultiListFilters(cache, data) {
|
150
|
-
const activeMultiListFilterQuery = gql `
|
151
|
-
query GetActiveMultiListFilters {
|
152
|
-
activeFilters @client {
|
153
|
-
multiListFilters {
|
154
|
-
id
|
155
|
-
values
|
156
|
-
}
|
157
|
-
}
|
158
|
-
}
|
159
|
-
`;
|
160
158
|
const currentActiveFilters = cache.readQuery({
|
161
|
-
query:
|
159
|
+
query: ActiveFiltersQuery
|
162
160
|
});
|
163
|
-
const activeFilters = produce(currentActiveFilters, draft => {
|
161
|
+
const activeFilters = produce(currentActiveFilters, (draft) => {
|
164
162
|
// Check if the filter that was just toggled is already in activeFilters
|
165
|
-
const existingListFilter = draft.activeFilters.multiListFilters.find(filter => filter.id === data.id);
|
163
|
+
const existingListFilter = draft.activeFilters.multiListFilters.find((filter) => filter.id === data.id);
|
166
164
|
// Get an array of ListFilterItem values
|
167
|
-
const lists = data.lists.filter(list => list.hasActiveItems);
|
168
|
-
const listItems = lists.flatMap(list => list.items);
|
165
|
+
const lists = data.lists.filter((list) => list.hasActiveItems);
|
166
|
+
const listItems = lists.flatMap((list) => list.items);
|
169
167
|
const values = listItems
|
170
|
-
.filter(listItem => listItem.isActive)
|
171
|
-
.map(item => item.value);
|
168
|
+
.filter((listItem) => listItem.isActive)
|
169
|
+
.map((item) => item.value);
|
172
170
|
if (existingListFilter && !data.isActive) {
|
173
171
|
// The multi filter has been cleared, so remove it from active filters
|
174
|
-
draft.activeFilters.multiListFilters =
|
172
|
+
draft.activeFilters.multiListFilters =
|
173
|
+
draft.activeFilters.multiListFilters.filter((filter) => filter.id !== data.id);
|
175
174
|
return;
|
176
175
|
}
|
177
176
|
if (existingListFilter && data.isActive) {
|
@@ -183,12 +182,12 @@ function updateActiveMultiListFilters(cache, data) {
|
|
183
182
|
// Create a new entry in active filters
|
184
183
|
draft.activeFilters.multiListFilters.push({
|
185
184
|
id: data.id,
|
186
|
-
values
|
187
|
-
__typename: 'MultiListFilterInput'
|
185
|
+
values
|
188
186
|
});
|
189
187
|
}
|
190
188
|
});
|
191
|
-
cache.
|
189
|
+
cache.writeQuery({
|
190
|
+
query: ActiveFiltersQuery,
|
192
191
|
data: activeFilters
|
193
192
|
});
|
194
193
|
return activeFilters;
|