@jetshop/core 5.10.0 → 5.12.0
Sign up to get free protection for your applications and to get access to all the features.
- package/ChannelHandler/ChannelHandler.d.ts +9 -13
- package/ChannelHandler/ChannelHandler.js +16 -63
- package/ChannelHandler/ChannelHandler.js.map +1 -1
- package/ChannelHandler/channelUtils.d.ts +13 -0
- package/ChannelHandler/channelUtils.js +26 -15
- package/ChannelHandler/channelUtils.js.map +1 -1
- package/ChannelHandler/redirectUtils.d.ts +3 -0
- package/ChannelHandler/redirectUtils.js +48 -0
- package/ChannelHandler/redirectUtils.js.map +1 -0
- package/ChannelHandler/redirectUtils.test.js +8 -0
- package/analytics/AnalyticsProvider.d.ts +4 -0
- package/analytics/AnalyticsProvider.js +18 -2
- package/analytics/AnalyticsProvider.js.map +1 -1
- package/analytics/integrations/ga4.js +1 -1
- package/analytics/integrations/ga4.js.map +1 -1
- package/analytics/integrations/gtag/gtag.d.ts +0 -1
- package/analytics/integrations/gtag/gtag.js +39 -28
- package/analytics/integrations/gtag/gtag.js.map +1 -1
- package/analytics/integrations/gtm/index.d.ts +0 -1
- package/analytics/integrations/gtm/index.js +37 -24
- package/analytics/integrations/gtm/index.js.map +1 -1
- package/analytics/integrations/releware/index.js +1 -1
- package/analytics/integrations/releware/index.js.map +1 -1
- package/analytics/integrations/unslugify.d.ts +1 -0
- package/analytics/integrations/unslugify.js +18 -0
- package/analytics/integrations/unslugify.js.map +1 -0
- package/analytics/trackerRegistry.d.ts +8 -3
- package/analytics/trackerRegistry.js +31 -14
- package/analytics/trackerRegistry.js.map +1 -1
- package/analytics/utils/breadcrumbsWithoutProduct.d.ts +1 -0
- package/analytics/utils/breadcrumbsWithoutProduct.js +9 -0
- package/analytics/utils/breadcrumbsWithoutProduct.js.map +1 -0
- package/boot/PreviewHandler.js.map +1 -1
- package/boot/SharedTree.js +1 -1
- package/boot/SharedTree.js.map +1 -1
- package/boot/apollo.d.ts +5 -3
- package/boot/apollo.js +9 -13
- package/boot/apollo.js.map +1 -1
- package/boot/client/startClient.js +5 -10
- package/boot/client/startClient.js.map +1 -1
- package/boot/server/createRenderer.js +8 -7
- package/boot/server/createRenderer.js.map +1 -1
- package/boot/server/index.js +2 -2
- package/boot/server/index.js.map +1 -1
- package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +53 -39
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.js +2 -2
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.js.map +1 -1
- package/cart/AddToCartFormik.d.ts +2 -2
- package/cart/AddToCartFormik.js +11 -11
- package/cart/AddToCartFormik.js.map +1 -1
- package/components/Auth/CustomerUpdateForm.js +7 -7
- package/components/Auth/CustomerUpdateForm.js.map +1 -1
- package/components/ChannelContext/ChannelContext.d.ts +2 -0
- package/components/ChannelContext/ChannelContext.js.map +1 -1
- package/components/ChannelContext/ChannelProvider.d.ts +1 -3
- package/components/ChannelContext/ChannelProvider.js +16 -6
- package/components/ChannelContext/ChannelProvider.js.map +1 -1
- package/components/ChannelContext/ChannelProvider.test.js +112 -0
- package/components/ConfigProvider.d.ts +2 -0
- package/components/ConfigProvider.js.map +1 -1
- package/components/DynamicRoute/CategoryRoute.js +9 -2
- package/components/DynamicRoute/CategoryRoute.js.map +1 -1
- package/components/DynamicRoute/ContentRoute.js +9 -1
- package/components/DynamicRoute/ContentRoute.js.map +1 -1
- package/components/DynamicRoute/PreviewRoute.js +12 -2
- package/components/DynamicRoute/PreviewRoute.js.map +1 -1
- package/components/DynamicRoute/ProductRoute.js +12 -4
- package/components/DynamicRoute/ProductRoute.js.map +1 -1
- package/components/Head.js +4 -4
- package/components/Head.js.map +1 -1
- package/components/Mutation/AddToCart/addToCartUtils.d.ts +1 -1
- package/components/Mutation/AddToCart/addToCartUtils.js +7 -1
- package/components/Mutation/AddToCart/addToCartUtils.js.map +1 -1
- package/components/Mutation/RemoveFromCart.js +10 -1
- package/components/Mutation/RemoveFromCart.js.map +1 -1
- package/components/Mutation/cartMutationUtils.js +7 -6
- package/components/Mutation/cartMutationUtils.js.map +1 -1
- package/components/Mutation/useDecrementQuantity.js +8 -3
- package/components/Mutation/useDecrementQuantity.js.map +1 -1
- package/components/Mutation/useIncrementQuantity.js +8 -3
- package/components/Mutation/useIncrementQuantity.js.map +1 -1
- package/components/Mutation/useRemoveFromCart.js +10 -1
- package/components/Mutation/useRemoveFromCart.js.map +1 -1
- package/components/PreviewContext.js +3 -1
- package/components/PreviewContext.js.map +1 -1
- package/components/Query/CartProvider.js +31 -21
- package/components/Query/CartProvider.js.map +1 -1
- package/components/StructuredData/StructuredBreadcrumbData.d.ts +8 -3
- package/components/StructuredData/StructuredBreadcrumbData.js +42 -23
- package/components/StructuredData/StructuredBreadcrumbData.js.map +1 -1
- package/components/StructuredData/StructuredCategoryData.d.ts +16 -0
- package/components/StructuredData/StructuredCategoryData.js +18 -0
- package/components/StructuredData/StructuredCategoryData.js.map +1 -0
- package/components/StructuredData/StructuredPageData.d.ts +16 -0
- package/components/StructuredData/StructuredPageData.js +17 -0
- package/components/StructuredData/StructuredPageData.js.map +1 -0
- package/components/StructuredData/StructuredProductData.js +2 -2
- package/components/StructuredData/StructuredProductData.js.map +1 -1
- package/components/StructuredData/index.d.ts +2 -0
- package/components/StructuredData/index.js +2 -0
- package/components/StructuredData/index.js.map +1 -1
- package/data/fragments/ChannelsFragment.gql +4 -0
- package/data/fragments/ProductListsFragments.gql +94 -0
- package/data/fragments/RouteMetaFragment.gql +18 -0
- package/data/mutations/productListMutations.gql +18 -0
- package/data/queries/ProductLists.gql +8 -0
- package/dependencies.d.ts +10 -1
- package/helpers/isRelativeUrl.d.ts +1 -0
- package/helpers/isRelativeUrl.js +4 -0
- package/helpers/isRelativeUrl.js.map +1 -0
- package/hooks/PackageProducts/usePackageProductItem.d.ts +3 -4
- package/hooks/ProductList/ProductListContext.js +49 -14
- package/hooks/ProductList/ProductListContext.js.map +1 -1
- package/hooks/ProductList/ProductLists.gql +0 -0
- package/hooks/ProductList/action-creators.d.ts +20 -7
- package/hooks/ProductList/action-creators.js +125 -31
- package/hooks/ProductList/action-creators.js.map +1 -1
- package/hooks/ProductList/index.d.ts +34 -8
- package/hooks/ProductList/index.js +19 -0
- package/hooks/ProductList/index.js.map +1 -1
- package/hooks/ProductList/list-transforms.d.ts +2 -2
- package/hooks/ProductList/list-transforms.js +22 -22
- package/hooks/ProductList/list-transforms.js.map +1 -1
- package/hooks/ProductList/list-transforms.test.js +103 -100
- package/hooks/ProductList/product-list-reducer.d.ts +37 -14
- package/hooks/ProductList/product-list-reducer.js +106 -43
- package/hooks/ProductList/product-list-reducer.js.map +1 -1
- package/hooks/ProductList/product-list-reducer.test.js +144 -82
- package/hooks/ProductList/useProductList.d.ts +2 -2
- package/hooks/ProductList/useProductList.js +12 -5
- package/hooks/ProductList/useProductList.js.map +1 -1
- package/hooks/ProductList/useProductListItems.d.ts +1 -1
- package/hooks/ProductList/useProductListItems.js +8 -6
- package/hooks/ProductList/useProductListItems.js.map +1 -1
- package/hooks/useAddMultipleToCart.js +11 -5
- package/hooks/useAddMultipleToCart.js.map +1 -1
- package/hooks/useProductVariants/useProductVariants.d.ts +1 -2
- package/hooks/useProductVariants/useProductVariants.js +1 -1
- package/hooks/useProductVariants/useProductVariants.js.map +1 -1
- package/package.json +1 -1
- package/resolvers/index.d.ts +3 -0
- package/resolvers/index.js +3 -0
- package/resolvers/index.js.map +1 -1
- package/sentry/client.js +1 -1
- package/sentry/client.js.map +1 -1
- package/server/tracking/facebook.d.ts +1 -1
- package/server/tracking/facebook.js +4 -2
- package/server/tracking/facebook.js.map +1 -1
- package/server/tracking/types.d.ts +3 -1
- package/time.d.ts +1 -0
- package/time.js +6 -0
- package/time.js.map +1 -0
- package/types.d.ts +5 -2
@@ -1,47 +1,85 @@
|
|
1
|
-
import produce from 'immer';
|
1
|
+
import produce, { enableMapSet } from 'immer';
|
2
|
+
// The Product lists are stored as a Map so need to enable Map support for Immer
|
3
|
+
enableMapSet();
|
4
|
+
import { emptyProductLists, PRODUCT_LISTS_KEY, productListArrayToMap } from '.';
|
2
5
|
export function reducer(state, action) {
|
3
6
|
switch (action.type) {
|
4
7
|
case 'LOGIN':
|
5
|
-
return produce(state, draft => {
|
8
|
+
return produce(state, (draft) => {
|
6
9
|
draft.loggedIn = true;
|
7
|
-
|
10
|
+
const { list, listId } = action.payload;
|
11
|
+
draft.lists.set(listId, list);
|
8
12
|
});
|
9
13
|
case 'LOGOUT': {
|
10
|
-
return produce(state, draft => {
|
14
|
+
return produce(state, (draft) => {
|
11
15
|
draft.loggedIn = false;
|
12
|
-
draft.
|
16
|
+
draft.lists = emptyProductLists();
|
13
17
|
});
|
14
18
|
}
|
15
19
|
case 'UPDATE': {
|
16
|
-
const { articleNumber, variantArticleNumber, options, variantToReplace } = action.payload;
|
17
|
-
return replaceItemInList(state, articleNumber, {
|
20
|
+
const { listId, articleNumber, variantArticleNumber, options, variantToReplace } = action.payload;
|
21
|
+
return replaceItemInList(state, listId, articleNumber, {
|
18
22
|
variantArticleNumber,
|
19
23
|
variantToReplace,
|
20
24
|
options
|
21
25
|
});
|
22
26
|
}
|
27
|
+
case 'SET_LISTS': {
|
28
|
+
return produce(state, (draft) => {
|
29
|
+
draft.lists = action.payload.lists;
|
30
|
+
});
|
31
|
+
}
|
32
|
+
// TODO
|
33
|
+
//case 'UPDATE_LIST': {
|
34
|
+
// return produce(state, (draft) => {
|
35
|
+
// const { listId, update } = action.payload
|
36
|
+
// const list = draft.lists.get(listId)
|
37
|
+
// list.name = update.name
|
38
|
+
// //...
|
39
|
+
// })
|
40
|
+
//}
|
23
41
|
case 'ADD': {
|
24
|
-
const { variantArticleNumber, articleNumber, options } = action.payload;
|
42
|
+
const { listId, variantArticleNumber, articleNumber, options } = action.payload;
|
25
43
|
if (variantArticleNumber) {
|
26
|
-
return addVariantToList(state, articleNumber, {
|
44
|
+
return addVariantToList(state, listId, articleNumber, {
|
27
45
|
variantArticleNumber,
|
28
46
|
options
|
29
47
|
});
|
30
48
|
}
|
31
49
|
else {
|
32
|
-
return addBaseProductToList(state, articleNumber, options);
|
50
|
+
return addBaseProductToList(state, listId, articleNumber, options);
|
33
51
|
}
|
34
52
|
}
|
35
53
|
case 'REMOVE': {
|
36
|
-
const { variantArticleNumber, articleNumber } = action.payload;
|
37
|
-
const list = removeFromList(state, articleNumber, {
|
54
|
+
const { listId, variantArticleNumber, articleNumber } = action.payload;
|
55
|
+
const list = removeFromList(state, listId, articleNumber, {
|
38
56
|
variantArticleNumber
|
39
57
|
});
|
40
58
|
return list;
|
41
59
|
}
|
42
60
|
case 'REPLACE': {
|
43
|
-
return produce(state, draft => {
|
44
|
-
|
61
|
+
return produce(state, (draft) => {
|
62
|
+
const { list, listId } = action.payload;
|
63
|
+
draft.lists.set(listId, list);
|
64
|
+
});
|
65
|
+
}
|
66
|
+
case 'CLEAR_ITEMS': {
|
67
|
+
return produce(state, (draft) => {
|
68
|
+
const { listId } = action.payload;
|
69
|
+
const list = draft.lists.get(listId);
|
70
|
+
list.items = {};
|
71
|
+
});
|
72
|
+
}
|
73
|
+
case 'CREATE_LIST': {
|
74
|
+
return produce(state, (draft) => {
|
75
|
+
const { list, listId } = action.payload;
|
76
|
+
draft.lists.set(listId, list);
|
77
|
+
});
|
78
|
+
}
|
79
|
+
case 'DELETE_LIST': {
|
80
|
+
return produce(state, (draft) => {
|
81
|
+
const { listId } = action.payload;
|
82
|
+
draft.lists.delete(listId);
|
45
83
|
});
|
46
84
|
}
|
47
85
|
default:
|
@@ -51,23 +89,43 @@ export function reducer(state, action) {
|
|
51
89
|
export function init(initialState) {
|
52
90
|
if (typeof window === 'undefined')
|
53
91
|
return initialState;
|
92
|
+
/**
|
93
|
+
* Migrate any legacy product list to the new format
|
94
|
+
*
|
95
|
+
* TODO Remove this code in next major release!
|
96
|
+
*/
|
97
|
+
const LEGACY_LIST_KEY = 'productList';
|
98
|
+
const legacyListData = JSON.parse(window.localStorage.getItem(LEGACY_LIST_KEY));
|
99
|
+
if (legacyListData) {
|
100
|
+
const defaultList = initialState.lists.get(null);
|
101
|
+
Object.assign(defaultList.items, legacyListData);
|
102
|
+
window.localStorage.removeItem(LEGACY_LIST_KEY);
|
103
|
+
return {
|
104
|
+
lists: initialState.lists,
|
105
|
+
loggedIn: initialState.loggedIn,
|
106
|
+
requestIdRef: initialState.requestIdRef
|
107
|
+
};
|
108
|
+
}
|
109
|
+
const localStorageProductLists = JSON.parse(window.localStorage.getItem(PRODUCT_LISTS_KEY));
|
110
|
+
const lists = (localStorageProductLists &&
|
111
|
+
productListArrayToMap(localStorageProductLists)) ||
|
112
|
+
initialState.lists;
|
54
113
|
const updatedState = {
|
55
|
-
|
56
|
-
initialState.list ||
|
57
|
-
null,
|
114
|
+
lists,
|
58
115
|
loggedIn: initialState.loggedIn,
|
59
116
|
requestIdRef: initialState.requestIdRef
|
60
117
|
};
|
61
118
|
return updatedState;
|
62
119
|
}
|
63
|
-
export function addVariantToList(state, articleNumber, { variantArticleNumber, options }) {
|
120
|
+
export function addVariantToList(state, listId, articleNumber, { variantArticleNumber, options }) {
|
64
121
|
// If the article number exists, update it
|
65
122
|
// Otherwise create a new entry
|
66
|
-
return produce(state, draft => {
|
123
|
+
return produce(state, (draft) => {
|
67
124
|
var _a, _b;
|
68
|
-
|
69
|
-
|
70
|
-
|
125
|
+
const items = draft.lists.get(listId).items;
|
126
|
+
items[articleNumber] = {
|
127
|
+
options: ((_a = items[articleNumber]) === null || _a === void 0 ? void 0 : _a.options) || null,
|
128
|
+
variants: produce(((_b = items[articleNumber]) === null || _b === void 0 ? void 0 : _b.variants) || {}, (draft) => {
|
71
129
|
draft[variantArticleNumber] = {
|
72
130
|
options,
|
73
131
|
parentArticleNumber: articleNumber
|
@@ -76,55 +134,60 @@ export function addVariantToList(state, articleNumber, { variantArticleNumber, o
|
|
76
134
|
};
|
77
135
|
});
|
78
136
|
}
|
79
|
-
export function addBaseProductToList(state, articleNumber, options) {
|
80
|
-
return produce(state, draft => {
|
137
|
+
export function addBaseProductToList(state, listId, articleNumber, options) {
|
138
|
+
return produce(state, (draft) => {
|
81
139
|
var _a;
|
82
|
-
|
83
|
-
|
140
|
+
const items = draft.lists.get(listId).items;
|
141
|
+
items[articleNumber] = {
|
142
|
+
variants: ((_a = items[articleNumber]) === null || _a === void 0 ? void 0 : _a.variants) || null,
|
84
143
|
options
|
85
144
|
};
|
86
145
|
});
|
87
146
|
}
|
88
|
-
export function removeFromList(state, articleNumber, { variantArticleNumber }) {
|
147
|
+
export function removeFromList(state, listId, articleNumber, { variantArticleNumber }) {
|
89
148
|
if (variantArticleNumber) {
|
90
|
-
return produce(state, draft => {
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
149
|
+
return produce(state, (draft) => {
|
150
|
+
const items = draft.lists.get(listId).items;
|
151
|
+
delete items[articleNumber].variants[variantArticleNumber];
|
152
|
+
if (Object.keys(items[articleNumber].variants).length === 0 &&
|
153
|
+
items[articleNumber].options === null) {
|
154
|
+
delete items[articleNumber];
|
95
155
|
}
|
96
156
|
});
|
97
157
|
}
|
98
158
|
else {
|
99
|
-
return produce(state, draft => {
|
159
|
+
return produce(state, (draft) => {
|
100
160
|
var _a;
|
101
|
-
|
102
|
-
|
161
|
+
const items = draft.lists.get(listId).items;
|
162
|
+
if ((_a = items[articleNumber]) === null || _a === void 0 ? void 0 : _a.variants) {
|
163
|
+
items[articleNumber].options = null;
|
103
164
|
}
|
104
165
|
else {
|
105
|
-
delete
|
166
|
+
delete items[articleNumber];
|
106
167
|
}
|
107
168
|
});
|
108
169
|
}
|
109
170
|
}
|
110
|
-
export function replaceItemInList(state, articleNumber, { variantToReplace, variantArticleNumber, options }) {
|
171
|
+
export function replaceItemInList(state, listId, articleNumber, { variantToReplace, variantArticleNumber, options }) {
|
111
172
|
if (variantToReplace) {
|
112
|
-
return produce(state, draft => {
|
173
|
+
return produce(state, (draft) => {
|
113
174
|
// Replacing is a delete + an add
|
114
|
-
const
|
175
|
+
const items = draft.lists.get(listId).items;
|
176
|
+
const variants = items[articleNumber].variants;
|
115
177
|
delete variants[variantToReplace];
|
116
|
-
|
178
|
+
items[articleNumber].variants = Object.assign(Object.assign({}, variants), { [variantArticleNumber]: {
|
117
179
|
options,
|
118
180
|
parentArticleNumber: articleNumber
|
119
181
|
} });
|
120
182
|
});
|
121
183
|
}
|
122
184
|
else {
|
123
|
-
return produce(state, draft => {
|
185
|
+
return produce(state, (draft) => {
|
124
186
|
var _a;
|
125
|
-
|
187
|
+
const items = draft.lists.get(listId).items;
|
188
|
+
items[articleNumber] = {
|
126
189
|
options: null,
|
127
|
-
variants: Object.assign(Object.assign({}, (_a =
|
190
|
+
variants: Object.assign(Object.assign({}, (_a = items[articleNumber]) === null || _a === void 0 ? void 0 : _a.variants), { [variantArticleNumber]: {
|
128
191
|
options,
|
129
192
|
parentArticleNumber: articleNumber
|
130
193
|
} })
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"product-list-reducer.js","sourceRoot":"","sources":["product-list-reducer.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"product-list-reducer.js","sourceRoot":"","sources":["product-list-reducer.ts"],"names":[],"mappings":"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"}
|