@jetshop/core 5.10.0 → 5.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. package/ChannelHandler/ChannelHandler.d.ts +9 -13
  2. package/ChannelHandler/ChannelHandler.js +16 -63
  3. package/ChannelHandler/ChannelHandler.js.map +1 -1
  4. package/ChannelHandler/channelUtils.d.ts +13 -0
  5. package/ChannelHandler/channelUtils.js +26 -15
  6. package/ChannelHandler/channelUtils.js.map +1 -1
  7. package/ChannelHandler/redirectUtils.d.ts +3 -0
  8. package/ChannelHandler/redirectUtils.js +48 -0
  9. package/ChannelHandler/redirectUtils.js.map +1 -0
  10. package/ChannelHandler/redirectUtils.test.js +8 -0
  11. package/analytics/AnalyticsProvider.js +1 -1
  12. package/analytics/AnalyticsProvider.js.map +1 -1
  13. package/boot/SharedTree.js +1 -1
  14. package/boot/SharedTree.js.map +1 -1
  15. package/boot/apollo.d.ts +5 -3
  16. package/boot/apollo.js +9 -13
  17. package/boot/apollo.js.map +1 -1
  18. package/boot/client/startClient.js +5 -10
  19. package/boot/client/startClient.js.map +1 -1
  20. package/boot/server/createRenderer.js +8 -7
  21. package/boot/server/createRenderer.js.map +1 -1
  22. package/boot/server/index.js +2 -2
  23. package/boot/server/index.js.map +1 -1
  24. package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +53 -39
  25. package/boot/server/persistedQueries/getPersistedQueriesForRequest.js +2 -2
  26. package/boot/server/persistedQueries/getPersistedQueriesForRequest.js.map +1 -1
  27. package/components/Auth/CustomerUpdateForm.js +7 -7
  28. package/components/Auth/CustomerUpdateForm.js.map +1 -1
  29. package/components/ChannelContext/ChannelProvider.d.ts +1 -3
  30. package/components/ChannelContext/ChannelProvider.js +6 -13
  31. package/components/ChannelContext/ChannelProvider.js.map +1 -1
  32. package/components/ChannelContext/ChannelProvider.test.js +110 -0
  33. package/components/Mutation/cartMutationUtils.js +7 -6
  34. package/components/Mutation/cartMutationUtils.js.map +1 -1
  35. package/components/Query/CartProvider.js +31 -21
  36. package/components/Query/CartProvider.js.map +1 -1
  37. package/components/StructuredData/StructuredBreadcrumbData.js +4 -3
  38. package/components/StructuredData/StructuredBreadcrumbData.js.map +1 -1
  39. package/hooks/ProductList/ProductListContext.js +37 -14
  40. package/hooks/ProductList/ProductListContext.js.map +1 -1
  41. package/hooks/ProductList/action-creators.d.ts +20 -7
  42. package/hooks/ProductList/action-creators.js +125 -31
  43. package/hooks/ProductList/action-creators.js.map +1 -1
  44. package/hooks/ProductList/index.d.ts +34 -8
  45. package/hooks/ProductList/index.js +19 -0
  46. package/hooks/ProductList/index.js.map +1 -1
  47. package/hooks/ProductList/list-transforms.d.ts +2 -2
  48. package/hooks/ProductList/list-transforms.js +22 -22
  49. package/hooks/ProductList/list-transforms.js.map +1 -1
  50. package/hooks/ProductList/list-transforms.test.js +103 -100
  51. package/hooks/ProductList/product-list-reducer.d.ts +37 -14
  52. package/hooks/ProductList/product-list-reducer.js +106 -43
  53. package/hooks/ProductList/product-list-reducer.js.map +1 -1
  54. package/hooks/ProductList/product-list-reducer.test.js +144 -82
  55. package/hooks/ProductList/useProductList.d.ts +2 -2
  56. package/hooks/ProductList/useProductList.js +12 -5
  57. package/hooks/ProductList/useProductList.js.map +1 -1
  58. package/hooks/ProductList/useProductListItems.d.ts +1 -1
  59. package/hooks/ProductList/useProductListItems.js +8 -6
  60. package/hooks/ProductList/useProductListItems.js.map +1 -1
  61. package/package.json +1 -1
  62. package/resolvers/index.d.ts +3 -0
  63. package/resolvers/index.js +3 -0
  64. package/resolvers/index.js.map +1 -1
  65. package/sentry/client.js +1 -1
  66. package/sentry/client.js.map +1 -1
  67. package/time.d.ts +1 -0
  68. package/time.js +6 -0
  69. package/time.js.map +1 -0
@@ -1,12 +1,16 @@
1
1
  import { act, renderHook } from '@testing-library/react-hooks';
2
2
  import { useReducer } from 'react';
3
3
  import { reducer, init } from './product-list-reducer';
4
+ import {
5
+ productListMapToArray,
6
+ PRODUCT_LISTS_KEY
7
+ } from '@jetshop/core/hooks/ProductList';
4
8
  import { LocalStorageMock } from '@react-mock/localstorage';
5
9
  import { render } from '@testing-library/react';
6
10
  import React from 'react';
7
11
 
8
- const MOCK_LIST = {
9
- '6952315': {
12
+ const MOCK_LIST_ITEMS = {
13
+ 6952315: {
10
14
  options: { quantity: 1 },
11
15
  variants: {
12
16
  '6952315-170-white': {
@@ -17,7 +21,7 @@ const MOCK_LIST = {
17
21
  }
18
22
  }
19
23
  },
20
- '502935480': {
24
+ 502935480: {
21
25
  variants: null,
22
26
  options: {
23
27
  quantity: 1
@@ -47,22 +51,25 @@ describe('reducer init method', () => {
47
51
  const obj = {
48
52
  key: 'value'
49
53
  };
54
+ const listId = 'test';
50
55
 
51
56
  function Parent({ children }) {
52
- const mockList = JSON.stringify(obj);
57
+ const mockList = new Map([[listId, obj]]);
58
+ const localStorage = {};
59
+ localStorage[PRODUCT_LISTS_KEY] = JSON.stringify(
60
+ productListMapToArray(mockList)
61
+ );
53
62
  return (
54
- <LocalStorageMock items={{ productList: mockList }}>
55
- {children}
56
- </LocalStorageMock>
63
+ <LocalStorageMock items={localStorage}>{children}</LocalStorageMock>
57
64
  );
58
65
  }
59
66
  function Child() {
60
- const initialState = { loggedIn: false, list: {} };
67
+ const initialState = { loggedIn: false, lists: new Map() };
61
68
  const state = init(initialState);
62
69
 
63
70
  return (
64
71
  <div>
65
- <span>{state.list.key}</span>
72
+ <span>{state.lists.get(listId).key}</span>
66
73
  <span>{state.loggedIn ? 'logged in' : 'not logged in'}</span>
67
74
  </div>
68
75
  );
@@ -80,21 +87,45 @@ describe('reducer init method', () => {
80
87
  });
81
88
 
82
89
  describe('reducer', () => {
90
+ const initialState = {
91
+ loggedIn: false,
92
+ lists: new Map([[null, { name: null, items: MOCK_LIST_ITEMS }]])
93
+ };
94
+
83
95
  it('sets logged in and payload when LOGIN is called', () => {
84
96
  const { result, dispatch } = setup();
85
- const payload = { test: 'one' };
97
+
98
+ // We should only test listId null, logged out users shouldn't have lists with IDs.
99
+ // We could remove the listId from the payload to make null implicit
100
+ const payload = {
101
+ listId: null,
102
+ list: {
103
+ name: null,
104
+ items: {
105
+ test: 'one'
106
+ }
107
+ }
108
+ };
86
109
 
87
110
  act(() => dispatch({ type: 'LOGIN', payload }));
88
111
 
89
112
  const [state] = result.current;
90
113
 
91
114
  expect(state.loggedIn).toBe(true);
92
- expect(state.list).toBe(payload);
115
+ expect(state.lists.get(null).items).toMatchObject(payload.list.items);
93
116
  });
94
117
  it('sets loggedIn and resets list on LOGOUT', () => {
95
118
  const initialState = {
96
119
  loggedIn: true,
97
- list: { '234523423': { options: { quantity: 1, description: '' } } }
120
+ lists: new Map([
121
+ [
122
+ null,
123
+ {
124
+ name: null,
125
+ items: { 234523423: { options: { quantity: 1, description: '' } } }
126
+ }
127
+ ]
128
+ ])
98
129
  };
99
130
 
100
131
  const { result, dispatch } = setup(initialState);
@@ -109,21 +140,19 @@ describe('reducer', () => {
109
140
  const [state] = result.current;
110
141
 
111
142
  expect(state.loggedIn).toBe(false);
112
- expect(state.list).toMatchObject({});
143
+ expect(state.lists).toMatchObject(
144
+ new Map([[null, { name: null, items: {} }]])
145
+ );
113
146
  });
114
147
  describe('UPDATE action', () => {
115
148
  it('can replace a base product with one of its variants', () => {
116
- const initialState = {
117
- loggedIn: false,
118
- list: MOCK_LIST
119
- };
120
-
121
149
  const { result, dispatch } = setup(initialState);
122
150
 
123
151
  act(() =>
124
152
  dispatch({
125
153
  type: 'UPDATE',
126
154
  payload: {
155
+ listId: null,
127
156
  articleNumber: '502935480',
128
157
  variantArticleNumber: '502935480-sparkles',
129
158
  options: {
@@ -135,7 +164,7 @@ describe('reducer', () => {
135
164
 
136
165
  const [state] = result.current;
137
166
 
138
- const baseProduct = state.list['502935480'];
167
+ const baseProduct = state.lists.get(null).items['502935480'];
139
168
 
140
169
  expect(baseProduct.variants['502935480-sparkles'].options.quantity).toBe(
141
170
  1
@@ -144,17 +173,13 @@ describe('reducer', () => {
144
173
  expect(baseProduct.options).toBe(null);
145
174
  });
146
175
  it('can replace a variant with another variant', () => {
147
- const initialState = {
148
- loggedIn: false,
149
- list: MOCK_LIST
150
- };
151
-
152
176
  const { result, dispatch } = setup(initialState);
153
177
 
154
178
  act(() =>
155
179
  dispatch({
156
180
  type: 'UPDATE',
157
181
  payload: {
182
+ listId: null,
158
183
  articleNumber: '6952315',
159
184
  variantArticleNumber: '6952315-170-pink',
160
185
  options: {
@@ -166,28 +191,25 @@ describe('reducer', () => {
166
191
  );
167
192
 
168
193
  const [state] = result.current;
194
+ const list = state.lists.get(null);
169
195
 
170
196
  expect(
171
- state.list['6952315'].variants['6952315-170-pink'].options.quantity
197
+ list.items['6952315'].variants['6952315-170-pink'].options.quantity
172
198
  ).toBe(1);
173
199
  expect(
174
- state.list['6952315'].variants['6952315-170-white']
200
+ list.items['6952315'].variants['6952315-170-white']
175
201
  ).not.toBeDefined();
176
202
  });
177
203
  });
178
204
  describe('ADD action', () => {
179
205
  it('can add a base product to the list', () => {
180
- const initialState = {
181
- loggedIn: false,
182
- list: MOCK_LIST
183
- };
184
-
185
206
  const { result, dispatch } = setup(initialState);
186
207
 
187
208
  act(() =>
188
209
  dispatch({
189
210
  type: 'ADD',
190
211
  payload: {
212
+ listId: null,
191
213
  articleNumber: 'boogie',
192
214
  options: {
193
215
  quantity: 1
@@ -198,20 +220,16 @@ describe('reducer', () => {
198
220
 
199
221
  const [state] = result.current;
200
222
 
201
- expect(state.list['boogie'].options.quantity).toBe(1);
223
+ expect(state.lists.get(null).items['boogie'].options.quantity).toBe(1);
202
224
  });
203
225
  it('can add a variant to the list when there is no existing base product', () => {
204
- const initialState = {
205
- loggedIn: false,
206
- list: MOCK_LIST
207
- };
208
-
209
226
  const { result, dispatch } = setup(initialState);
210
227
 
211
228
  act(() =>
212
229
  dispatch({
213
230
  type: 'ADD',
214
231
  payload: {
232
+ listId: null,
215
233
  articleNumber: 'boogie',
216
234
  variantArticleNumber: 'boogie-woogie',
217
235
  options: {
@@ -222,24 +240,21 @@ describe('reducer', () => {
222
240
  );
223
241
 
224
242
  const [state] = result.current;
243
+ const list = state.lists.get(null);
225
244
 
226
- expect(state.list['boogie'].options).toBe(null);
245
+ expect(list.items['boogie'].options).toBe(null);
227
246
  expect(
228
- state.list['boogie'].variants['boogie-woogie'].options.quantity
247
+ list.items['boogie'].variants['boogie-woogie'].options.quantity
229
248
  ).toBe(1);
230
249
  });
231
250
  it('can add a variant to the list when there is an existing base product', () => {
232
- const initialState = {
233
- loggedIn: false,
234
- list: MOCK_LIST
235
- };
236
-
237
251
  const { result, dispatch } = setup(initialState);
238
252
 
239
253
  act(() =>
240
254
  dispatch({
241
255
  type: 'ADD',
242
256
  payload: {
257
+ listId: null,
243
258
  articleNumber: '502935480',
244
259
  variantArticleNumber: 'boogie-woogie',
245
260
  options: {
@@ -250,24 +265,21 @@ describe('reducer', () => {
250
265
  );
251
266
 
252
267
  const [state] = result.current;
268
+ const list = state.lists.get(null);
253
269
 
254
- expect(state.list['502935480'].options).not.toBe(null);
270
+ expect(list.items['502935480'].options).not.toBe(null);
255
271
  expect(
256
- state.list['502935480'].variants['boogie-woogie'].options.quantity
272
+ list.items['502935480'].variants['boogie-woogie'].options.quantity
257
273
  ).toBe(1);
258
274
  });
259
275
  it('can add a variant to the list when there is a base product with variants', () => {
260
- const initialState = {
261
- loggedIn: false,
262
- list: MOCK_LIST
263
- };
264
-
265
276
  const { result, dispatch } = setup(initialState);
266
277
 
267
278
  act(() =>
268
279
  dispatch({
269
280
  type: 'ADD',
270
281
  payload: {
282
+ listId: null,
271
283
  articleNumber: '6952315',
272
284
  variantArticleNumber: 'boogie-woogie',
273
285
  options: {
@@ -278,50 +290,44 @@ describe('reducer', () => {
278
290
  );
279
291
 
280
292
  const [state] = result.current;
293
+ const list = state.lists.get(null);
281
294
 
282
- expect(state.list['6952315'].options).not.toBe(null);
295
+ expect(list.items['6952315'].options).not.toBe(null);
283
296
  expect(
284
- state.list['6952315'].variants['boogie-woogie'].options.quantity
297
+ list.items['6952315'].variants['boogie-woogie'].options.quantity
285
298
  ).toBe(1);
286
- expect(state.list['6952315'].variants['6952315-170-white']).toMatchObject(
287
- MOCK_LIST['6952315'].variants['6952315-170-white']
299
+ expect(list.items['6952315'].variants['6952315-170-white']).toMatchObject(
300
+ MOCK_LIST_ITEMS['6952315'].variants['6952315-170-white']
288
301
  );
289
302
  });
290
303
  });
291
304
  describe('REMOVE action', () => {
292
305
  it('will entirely remove a base product with no variants', () => {
293
- const initialState = {
294
- loggedIn: false,
295
- list: MOCK_LIST
296
- };
297
-
298
306
  const { result, dispatch } = setup(initialState);
299
307
 
300
308
  act(() =>
301
309
  dispatch({
302
310
  type: 'REMOVE',
303
311
  payload: {
312
+ listId: null,
304
313
  articleNumber: '502935480'
305
314
  }
306
315
  })
307
316
  );
308
317
 
309
318
  const [state] = result.current;
319
+ const list = state.lists.get(null);
310
320
 
311
- expect(state.list['502935480']).not.toBeDefined();
321
+ expect(list.items['502935480']).not.toBeDefined();
312
322
  });
313
323
  it('will entirely remove an item if the variant is removed and there is no base product', () => {
314
- const initialState = {
315
- loggedIn: false,
316
- list: MOCK_LIST
317
- };
318
-
319
324
  const { result, dispatch } = setup(initialState);
320
325
 
321
326
  act(() =>
322
327
  dispatch({
323
328
  type: 'REMOVE',
324
329
  payload: {
330
+ listId: null,
325
331
  articleNumber: 'without-base',
326
332
  variantArticleNumber: 'with-variant'
327
333
  }
@@ -329,15 +335,11 @@ describe('reducer', () => {
329
335
  );
330
336
 
331
337
  const [state] = result.current;
338
+ const list = state.lists.get(null);
332
339
 
333
- expect(state.list['without-base']).not.toBeDefined();
340
+ expect(list['without-base']).not.toBeDefined();
334
341
  });
335
342
  it('will keep the variant if one exists', () => {
336
- const initialState = {
337
- loggedIn: false,
338
- list: MOCK_LIST
339
- };
340
-
341
343
  const { result, dispatch } = setup(initialState);
342
344
  const articleToRemove = '6952315';
343
345
 
@@ -345,22 +347,19 @@ describe('reducer', () => {
345
347
  dispatch({
346
348
  type: 'REMOVE',
347
349
  payload: {
350
+ listId: null,
348
351
  articleNumber: articleToRemove
349
352
  }
350
353
  })
351
354
  );
352
355
 
353
356
  const [state] = result.current;
357
+ const list = state.lists.get(null);
354
358
 
355
- expect(state.list[articleToRemove].options).toBe(null);
356
- expect(state.list[articleToRemove].variants).toBeDefined();
359
+ expect(list.items[articleToRemove].options).toBe(null);
360
+ expect(list.items[articleToRemove].variants).toBeDefined();
357
361
  });
358
362
  it('will remove the variant but keep the base product', () => {
359
- const initialState = {
360
- loggedIn: false,
361
- list: MOCK_LIST
362
- };
363
-
364
363
  const { result, dispatch } = setup(initialState);
365
364
 
366
365
  const parent = '6952315';
@@ -370,6 +369,7 @@ describe('reducer', () => {
370
369
  dispatch({
371
370
  type: 'REMOVE',
372
371
  payload: {
372
+ listId: null,
373
373
  articleNumber: parent,
374
374
  variantArticleNumber: articleToRemove
375
375
  }
@@ -377,9 +377,71 @@ describe('reducer', () => {
377
377
  );
378
378
 
379
379
  const [state] = result.current;
380
+ const list = state.lists.get(null);
381
+
382
+ expect(list.items[parent].variants[articleToRemove]).not.toBeDefined();
383
+ expect(list.items[parent].options).toBeDefined();
384
+ });
385
+ });
386
+
387
+ describe('DELETE_LIST action', () => {
388
+ it('can delete a product list', () => {
389
+ const listId = '12345';
390
+ const initialState = {
391
+ loggedIn: false,
392
+ lists: new Map([[listId, MOCK_LIST_ITEMS]])
393
+ };
394
+
395
+ const { result, dispatch } = setup(initialState);
396
+ const [state] = result.current;
397
+
398
+ expect(state.lists.get(listId)).toBeDefined;
399
+
400
+ act(() =>
401
+ dispatch({
402
+ type: 'DELETE_LIST',
403
+ payload: { listId }
404
+ })
405
+ );
406
+
407
+ expect(state.lists.get(listId)).toBeUndefined;
408
+ });
409
+ });
410
+
411
+ describe('CREATE_LIST action', () => {
412
+ it('can create a new product list', () => {
413
+ const listId = '12345';
414
+ const { result, dispatch } = setup();
415
+ const name = 'My Stuff';
416
+
417
+ act(() =>
418
+ dispatch({
419
+ type: 'CREATE_LIST',
420
+ payload: { listId, list: { name } }
421
+ })
422
+ );
423
+
424
+ const [state] = result.current;
425
+ expect(state.lists.has(listId)).toBe(true);
426
+ expect(state.lists.get(listId).name).toBe(name);
427
+ });
428
+ });
429
+
430
+ describe('CLEAR_ITEMS action', () => {
431
+ it('can clear items on a product list', () => {
432
+ const { result, dispatch } = setup(initialState);
433
+ const listId = null;
434
+
435
+ act(() =>
436
+ dispatch({
437
+ type: 'CLEAR_ITEMS',
438
+ payload: { listId }
439
+ })
440
+ );
380
441
 
381
- expect(state.list[parent].variants[articleToRemove]).not.toBeDefined();
382
- expect(state.list[parent].options).toBeDefined();
442
+ const [state] = result.current;
443
+ const list = state.lists.get(listId);
444
+ expect(list.items).toMatchObject({});
383
445
  });
384
446
  });
385
447
  });
@@ -395,7 +457,7 @@ function setup(initialState) {
395
457
  function useProductListReducer({ initialState }) {
396
458
  const [state, dispatch] = useReducer(
397
459
  reducer,
398
- initialState || { loggedIn: false, list: {} }
460
+ initialState || { loggedIn: false, lists: new Map() }
399
461
  );
400
462
 
401
463
  return [state, dispatch];
@@ -1,5 +1,5 @@
1
- import { UpdateListInput } from '.';
2
- export declare function useProductList(): {
1
+ import { ProductListId, UpdateListInput } from '.';
2
+ export declare function useProductList(listId?: ProductListId): {
3
3
  toggle: (articleNumber: string, { variantArticleNumber, quantity, description, productName }: UpdateListInput) => void;
4
4
  add: (articleNumber: string, { variantArticleNumber, quantity, description, productName }: UpdateListInput) => void;
5
5
  remove: (articleNumber: string, { variantArticleNumber }: UpdateListInput) => void;
@@ -5,8 +5,12 @@ import { flattenList } from './list-transforms';
5
5
  import { ProductListContext } from './ProductListContext';
6
6
  import { trackAddToWishListEvent } from '../../analytics/tracking';
7
7
  import { useTracker } from '../../analytics/Analytics';
8
- export function useProductList() {
9
- const { state: { list = {} }, dispatch, queries, usingLocalList } = React.useContext(ProductListContext);
8
+ export function useProductList(listId = null) {
9
+ const {
10
+ // XXX
11
+ //state: { list = {} },
12
+ state, dispatch, queries, usingLocalList } = React.useContext(ProductListContext);
13
+ const list = state.lists.get(listId);
10
14
  const [hydrated, setHydrated] = useState(!usingLocalList);
11
15
  const updateAPI = !usingLocalList;
12
16
  const removeMutation = useMutation(queries.remove);
@@ -27,6 +31,7 @@ export function useProductList() {
27
31
  }
28
32
  function remove(articleNumber, { variantArticleNumber }) {
29
33
  dispatch(removeAction({
34
+ listId,
30
35
  articleNumber,
31
36
  variantArticleNumber,
32
37
  removeMutation,
@@ -39,6 +44,7 @@ export function useProductList() {
39
44
  productName
40
45
  }));
41
46
  dispatch(addAction({
47
+ listId,
42
48
  updateAPI,
43
49
  articleNumber,
44
50
  variantArticleNumber,
@@ -48,6 +54,7 @@ export function useProductList() {
48
54
  }
49
55
  function update(articleNumber, { variantArticleNumber, quantity, description, variantToReplace }) {
50
56
  dispatch(updateAction({
57
+ listId,
51
58
  updateAPI,
52
59
  articleNumber,
53
60
  variantArticleNumber,
@@ -58,16 +65,16 @@ export function useProductList() {
58
65
  }));
59
66
  }
60
67
  function clear() {
61
- dispatch(clearAction({ removeMutation, updateAPI }));
68
+ dispatch(clearAction({ listId, removeMutation, updateAPI }));
62
69
  }
63
70
  function inList(articleNumber, { variantArticleNumber }) {
64
71
  var _a;
65
72
  if (!hydrated)
66
73
  return false;
67
- if (list && articleNumber in list) {
74
+ if (list && articleNumber in list.items) {
68
75
  if (!variantArticleNumber)
69
76
  return true;
70
- const variantInList = !!((_a = list[articleNumber].variants) === null || _a === void 0 ? void 0 : _a[variantArticleNumber]);
77
+ const variantInList = !!((_a = list.items[articleNumber].variants) === null || _a === void 0 ? void 0 : _a[variantArticleNumber]);
71
78
  return variantInList;
72
79
  }
73
80
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"useProductList.js","sourceRoot":"","sources":["useProductList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useProductList.js","sourceRoot":"","sources":["useProductList.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { ProductListDetail } from '.';
4
4
  */
5
5
  export declare function useProductListItems(
6
6
  /** Passing null for id will retrieve the default product list */
7
- id?: string | null, options?: {
7
+ listId?: string | null, options?: {
8
8
  /** Limit how many items are returned */
9
9
  limit?: number;
10
10
  }): ProductListDetail;
@@ -8,10 +8,9 @@ import getErrorDetail from '../../helpers/getErrorDetail';
8
8
  */
9
9
  export function useProductListItems(
10
10
  /** Passing null for id will retrieve the default product list */
11
- id = null, options = {}) {
12
- if (id && typeof id !== 'string')
13
- throw new Error('Product list id must be a string or null');
14
- const { state: { list }, queries, dispatch, usingLocalList } = useContext(ProductListContext);
11
+ listId = null, options = {}) {
12
+ const { state: { lists }, queries, dispatch, usingLocalList } = useContext(ProductListContext);
13
+ const list = lists.get(listId);
15
14
  const [hydrated, setHydrated] = useState(!usingLocalList);
16
15
  const flattenedList = useMemo(() => flattenList(list), [list]);
17
16
  // Make a `products` query containing every item in the list
@@ -20,7 +19,7 @@ id = null, options = {}) {
20
19
  errorPolicy: 'all',
21
20
  variables: {
22
21
  articleNumbers: flattenedList
23
- .map(listItem => listItem.articleNumber)
22
+ .map((listItem) => listItem.articleNumber)
24
23
  .slice(0, options.limit)
25
24
  }
26
25
  });
@@ -29,7 +28,10 @@ id = null, options = {}) {
29
28
  const { codes, data } = getErrorDetail(productQueryResult.error);
30
29
  if (codes.includes('ProductNotFound')) {
31
30
  for (const item of data) {
32
- dispatch({ type: 'REMOVE', payload: { articleNumber: item.argument } });
31
+ dispatch({
32
+ type: 'REMOVE',
33
+ payload: { listId, articleNumber: item.argument }
34
+ });
33
35
  }
34
36
  }
35
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useProductListItems.js","sourceRoot":"","sources":["useProductListItems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EACL,WAAW,EACX,uCAAuC,EACxC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAE1D;;GAEG;AACH,MAAM,UAAU,mBAAmB;AACjC,iEAAiE;AACjE,KAAoB,IAAI,EACxB,UAGI,EAAE;IAEN,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ;QAC9B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAE9D,MAAM,EACJ,KAAK,EAAE,EAAE,IAAI,EAAE,EACf,OAAO,EACP,QAAQ,EACR,cAAc,EACf,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAEnC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC;IAE1D,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/D,4DAA4D;IAC5D,MAAM,kBAAkB,GAAkB,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE;QACxE,IAAI,EAAE,aAAa,CAAC,MAAM,KAAK,CAAC;QAChC,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE;YACT,cAAc,EAAE,aAAa;iBAC1B,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;iBACvC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;SAC3B;KACF,CAAC,CAAC;IAEH,qEAAqE;IACrE,IAAI,kBAAkB,CAAC,KAAK,EAAE;QAC5B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEjE,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;YACrC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;gBACvB,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;aACzE;SACF;KACF;IAED,0EAA0E;IAC1E,4EAA4E;IAC5E,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG;QACb,QAAQ,EAAE,uCAAuC,CAC/C,aAAa,EACb,kBAAkB,CACnB;QACD,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;KACtD,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"useProductListItems.js","sourceRoot":"","sources":["useProductListItems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EACL,WAAW,EACX,uCAAuC,EACxC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAE1D;;GAEG;AACH,MAAM,UAAU,mBAAmB;AACjC,iEAAiE;AACjE,SAAwB,IAAI,EAC5B,UAGI,EAAE;IAEN,MAAM,EACJ,KAAK,EAAE,EAAE,KAAK,EAAE,EAChB,OAAO,EACP,QAAQ,EACR,cAAc,EACf,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAEnC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE/B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC;IAE1D,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/D,4DAA4D;IAC5D,MAAM,kBAAkB,GAAkB,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE;QACxE,IAAI,EAAE,aAAa,CAAC,MAAM,KAAK,CAAC;QAChC,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE;YACT,cAAc,EAAE,aAAa;iBAC1B,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;iBACzC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;SAC3B;KACF,CAAC,CAAC;IAEH,qEAAqE;IACrE,IAAI,kBAAkB,CAAC,KAAK,EAAE;QAC5B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEjE,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;YACrC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;gBACvB,QAAQ,CAAC;oBACP,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE;iBAClD,CAAC,CAAC;aACJ;SACF;KACF;IAED,0EAA0E;IAC1E,4EAA4E;IAC5E,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG;QACb,QAAQ,EAAE,uCAAuC,CAC/C,aAAa,EACb,kBAAkB,CACnB;QACD,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;KACtD,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jetshop/core",
3
- "version": "5.10.0",
3
+ "version": "5.11.0",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "**/*.js",
@@ -1,4 +1,7 @@
1
1
  export declare const resolvers: (searchParams: string) => {
2
+ Cart: {
3
+ __optimistic: () => boolean;
4
+ };
2
5
  ListFilterItem: {
3
6
  isActive: (parent: any) => any;
4
7
  };
@@ -1,5 +1,8 @@
1
1
  import { boolFilterValue, clearAllFilters, clearListFilter, clearMultiListFilter, clearMultiListFilterList, clearRangeFilter, isListFilterActive, isMultiFilterActive, isMultiFilterListActive, isRangeFilterActive, listFilterHasActiveItems, rangeFilterValue, setBoolFilter, setMultiListFilter, setRangeFilter, toggleListFilterItem, toggleMultiListFilterItem } from './filters';
2
2
  export const resolvers = (searchParams) => ({
3
+ Cart: {
4
+ __optimistic: () => false
5
+ },
3
6
  ListFilterItem: {
4
7
  isActive: (parent) => isListFilterActive(parent)(searchParams)
5
8
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,WAAW,CAAC;AAEnB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,YAAoB,EAAE,EAAE,CAAC,CAAC;IAClD,cAAc,EAAE;QACd,QAAQ,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;KACpE;IACD,UAAU,EAAE;QACV,cAAc,EAAE,CAAC,MAAW,EAAE,EAAE,CAC9B,wBAAwB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;KACjD;IACD,aAAa,EAAE;QACb,KAAK,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;KAC9D;IACD,kBAAkB,EAAE;QAClB,QAAQ,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;QACpE,KAAK,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;KAC/D;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;KACrE;IACD,mBAAmB,EAAE;QACnB,cAAc,EAAE,CAAC,MAAW,EAAE,EAAE,CAC9B,uBAAuB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;KAChD;IACD,QAAQ,EAAE;QACR,oBAAoB;QACpB,eAAe;QACf,eAAe;QACf,aAAa;QACb,cAAc;QACd,gBAAgB;QAChB,wBAAwB;QACxB,oBAAoB;QACpB,kBAAkB;QAClB,yBAAyB;KAC1B;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,WAAW,CAAC;AAEnB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,YAAoB,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,EAAE;QACJ,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK;KAC1B;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;KACpE;IACD,UAAU,EAAE;QACV,cAAc,EAAE,CAAC,MAAW,EAAE,EAAE,CAC9B,wBAAwB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;KACjD;IACD,aAAa,EAAE;QACb,KAAK,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;KAC9D;IACD,kBAAkB,EAAE;QAClB,QAAQ,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;QACpE,KAAK,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;KAC/D;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;KACrE;IACD,mBAAmB,EAAE;QACnB,cAAc,EAAE,CAAC,MAAW,EAAE,EAAE,CAC9B,uBAAuB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;KAChD;IACD,QAAQ,EAAE;QACR,oBAAoB;QACpB,eAAe;QACf,eAAe;QACf,aAAa;QACb,cAAc;QACd,gBAAgB;QAChB,wBAAwB;QACxB,oBAAoB;QACpB,kBAAkB;QAClB,yBAAyB;KAC1B;CACF,CAAC,CAAC"}
package/sentry/client.js CHANGED
@@ -18,7 +18,7 @@ export function init(dsn, ignoreErrors = []) {
18
18
  'TypeError: Netværksforbindelsen gik tabt.',
19
19
  'TypeError: Verkkoyhteys katkesi.',
20
20
  'Failed to fetch',
21
- 'ResizeObserver loop limit',
21
+ 'ResizeObserver loop',
22
22
  'Unauthorized'
23
23
  ].concat(ignoreErrors)
24
24
  });
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,UAAU,IAAI,CAClB,GAAY,EACZ,eAAoC,EAAE;IAEtC,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;QACvB,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,SAAS;YAC/C,GAAG;YACH,YAAY,EAAE;gBACZ,GAAG,kBAAkB;gBACrB,wBAAwB;gBACxB,2BAA2B;gBAC3B,gDAAgD;gBAChD,0BAA0B;gBAC1B,iBAAiB;gBACjB,4DAA4D;gBAC5D,6CAA6C;gBAC7C,2CAA2C;gBAC3C,kCAAkC;gBAClC,iBAAiB;gBACjB,2BAA2B;gBAC3B,cAAc;aACf,CAAC,MAAM,CAAC,YAAY,CAAC;SACvB,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;KACJ;AACH,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,UAAU,IAAI,CAClB,GAAY,EACZ,eAAoC,EAAE;IAEtC,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;QACvB,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,SAAS;YAC/C,GAAG;YACH,YAAY,EAAE;gBACZ,GAAG,kBAAkB;gBACrB,wBAAwB;gBACxB,2BAA2B;gBAC3B,gDAAgD;gBAChD,0BAA0B;gBAC1B,iBAAiB;gBACjB,4DAA4D;gBAC5D,6CAA6C;gBAC7C,2CAA2C;gBAC3C,kCAAkC;gBAClC,iBAAiB;gBACjB,qBAAqB;gBACrB,cAAc;aACf,CAAC,MAAM,CAAC,YAAY,CAAC;SACvB,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;KACJ;AACH,CAAC"}
package/time.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare function measure(name: string): void;
package/time.js ADDED
@@ -0,0 +1,6 @@
1
+ const start = +new Date();
2
+ export function measure(name) {
3
+ const now = +new Date();
4
+ console.log('MEASUREMENT:', name, now - start, 'ms');
5
+ }
6
+ //# sourceMappingURL=time.js.map