@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.
Files changed (153) 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.d.ts +4 -0
  12. package/analytics/AnalyticsProvider.js +18 -2
  13. package/analytics/AnalyticsProvider.js.map +1 -1
  14. package/analytics/integrations/ga4.js +1 -1
  15. package/analytics/integrations/ga4.js.map +1 -1
  16. package/analytics/integrations/gtag/gtag.d.ts +0 -1
  17. package/analytics/integrations/gtag/gtag.js +39 -28
  18. package/analytics/integrations/gtag/gtag.js.map +1 -1
  19. package/analytics/integrations/gtm/index.d.ts +0 -1
  20. package/analytics/integrations/gtm/index.js +37 -24
  21. package/analytics/integrations/gtm/index.js.map +1 -1
  22. package/analytics/integrations/releware/index.js +1 -1
  23. package/analytics/integrations/releware/index.js.map +1 -1
  24. package/analytics/integrations/unslugify.d.ts +1 -0
  25. package/analytics/integrations/unslugify.js +18 -0
  26. package/analytics/integrations/unslugify.js.map +1 -0
  27. package/analytics/trackerRegistry.d.ts +8 -3
  28. package/analytics/trackerRegistry.js +31 -14
  29. package/analytics/trackerRegistry.js.map +1 -1
  30. package/analytics/utils/breadcrumbsWithoutProduct.d.ts +1 -0
  31. package/analytics/utils/breadcrumbsWithoutProduct.js +9 -0
  32. package/analytics/utils/breadcrumbsWithoutProduct.js.map +1 -0
  33. package/boot/PreviewHandler.js.map +1 -1
  34. package/boot/SharedTree.js +1 -1
  35. package/boot/SharedTree.js.map +1 -1
  36. package/boot/apollo.d.ts +5 -3
  37. package/boot/apollo.js +9 -13
  38. package/boot/apollo.js.map +1 -1
  39. package/boot/client/startClient.js +5 -10
  40. package/boot/client/startClient.js.map +1 -1
  41. package/boot/server/createRenderer.js +8 -7
  42. package/boot/server/createRenderer.js.map +1 -1
  43. package/boot/server/index.js +2 -2
  44. package/boot/server/index.js.map +1 -1
  45. package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +53 -39
  46. package/boot/server/persistedQueries/getPersistedQueriesForRequest.js +2 -2
  47. package/boot/server/persistedQueries/getPersistedQueriesForRequest.js.map +1 -1
  48. package/cart/AddToCartFormik.d.ts +2 -2
  49. package/cart/AddToCartFormik.js +11 -11
  50. package/cart/AddToCartFormik.js.map +1 -1
  51. package/components/Auth/CustomerUpdateForm.js +7 -7
  52. package/components/Auth/CustomerUpdateForm.js.map +1 -1
  53. package/components/ChannelContext/ChannelContext.d.ts +2 -0
  54. package/components/ChannelContext/ChannelContext.js.map +1 -1
  55. package/components/ChannelContext/ChannelProvider.d.ts +1 -3
  56. package/components/ChannelContext/ChannelProvider.js +16 -6
  57. package/components/ChannelContext/ChannelProvider.js.map +1 -1
  58. package/components/ChannelContext/ChannelProvider.test.js +112 -0
  59. package/components/ConfigProvider.d.ts +2 -0
  60. package/components/ConfigProvider.js.map +1 -1
  61. package/components/DynamicRoute/CategoryRoute.js +9 -2
  62. package/components/DynamicRoute/CategoryRoute.js.map +1 -1
  63. package/components/DynamicRoute/ContentRoute.js +9 -1
  64. package/components/DynamicRoute/ContentRoute.js.map +1 -1
  65. package/components/DynamicRoute/PreviewRoute.js +12 -2
  66. package/components/DynamicRoute/PreviewRoute.js.map +1 -1
  67. package/components/DynamicRoute/ProductRoute.js +12 -4
  68. package/components/DynamicRoute/ProductRoute.js.map +1 -1
  69. package/components/Head.js +4 -4
  70. package/components/Head.js.map +1 -1
  71. package/components/Mutation/AddToCart/addToCartUtils.d.ts +1 -1
  72. package/components/Mutation/AddToCart/addToCartUtils.js +7 -1
  73. package/components/Mutation/AddToCart/addToCartUtils.js.map +1 -1
  74. package/components/Mutation/RemoveFromCart.js +10 -1
  75. package/components/Mutation/RemoveFromCart.js.map +1 -1
  76. package/components/Mutation/cartMutationUtils.js +7 -6
  77. package/components/Mutation/cartMutationUtils.js.map +1 -1
  78. package/components/Mutation/useDecrementQuantity.js +8 -3
  79. package/components/Mutation/useDecrementQuantity.js.map +1 -1
  80. package/components/Mutation/useIncrementQuantity.js +8 -3
  81. package/components/Mutation/useIncrementQuantity.js.map +1 -1
  82. package/components/Mutation/useRemoveFromCart.js +10 -1
  83. package/components/Mutation/useRemoveFromCart.js.map +1 -1
  84. package/components/PreviewContext.js +3 -1
  85. package/components/PreviewContext.js.map +1 -1
  86. package/components/Query/CartProvider.js +31 -21
  87. package/components/Query/CartProvider.js.map +1 -1
  88. package/components/StructuredData/StructuredBreadcrumbData.d.ts +8 -3
  89. package/components/StructuredData/StructuredBreadcrumbData.js +42 -23
  90. package/components/StructuredData/StructuredBreadcrumbData.js.map +1 -1
  91. package/components/StructuredData/StructuredCategoryData.d.ts +16 -0
  92. package/components/StructuredData/StructuredCategoryData.js +18 -0
  93. package/components/StructuredData/StructuredCategoryData.js.map +1 -0
  94. package/components/StructuredData/StructuredPageData.d.ts +16 -0
  95. package/components/StructuredData/StructuredPageData.js +17 -0
  96. package/components/StructuredData/StructuredPageData.js.map +1 -0
  97. package/components/StructuredData/StructuredProductData.js +2 -2
  98. package/components/StructuredData/StructuredProductData.js.map +1 -1
  99. package/components/StructuredData/index.d.ts +2 -0
  100. package/components/StructuredData/index.js +2 -0
  101. package/components/StructuredData/index.js.map +1 -1
  102. package/data/fragments/ChannelsFragment.gql +4 -0
  103. package/data/fragments/ProductListsFragments.gql +94 -0
  104. package/data/fragments/RouteMetaFragment.gql +18 -0
  105. package/data/mutations/productListMutations.gql +18 -0
  106. package/data/queries/ProductLists.gql +8 -0
  107. package/dependencies.d.ts +10 -1
  108. package/helpers/isRelativeUrl.d.ts +1 -0
  109. package/helpers/isRelativeUrl.js +4 -0
  110. package/helpers/isRelativeUrl.js.map +1 -0
  111. package/hooks/PackageProducts/usePackageProductItem.d.ts +3 -4
  112. package/hooks/ProductList/ProductListContext.js +49 -14
  113. package/hooks/ProductList/ProductListContext.js.map +1 -1
  114. package/hooks/ProductList/ProductLists.gql +0 -0
  115. package/hooks/ProductList/action-creators.d.ts +20 -7
  116. package/hooks/ProductList/action-creators.js +125 -31
  117. package/hooks/ProductList/action-creators.js.map +1 -1
  118. package/hooks/ProductList/index.d.ts +34 -8
  119. package/hooks/ProductList/index.js +19 -0
  120. package/hooks/ProductList/index.js.map +1 -1
  121. package/hooks/ProductList/list-transforms.d.ts +2 -2
  122. package/hooks/ProductList/list-transforms.js +22 -22
  123. package/hooks/ProductList/list-transforms.js.map +1 -1
  124. package/hooks/ProductList/list-transforms.test.js +103 -100
  125. package/hooks/ProductList/product-list-reducer.d.ts +37 -14
  126. package/hooks/ProductList/product-list-reducer.js +106 -43
  127. package/hooks/ProductList/product-list-reducer.js.map +1 -1
  128. package/hooks/ProductList/product-list-reducer.test.js +144 -82
  129. package/hooks/ProductList/useProductList.d.ts +2 -2
  130. package/hooks/ProductList/useProductList.js +12 -5
  131. package/hooks/ProductList/useProductList.js.map +1 -1
  132. package/hooks/ProductList/useProductListItems.d.ts +1 -1
  133. package/hooks/ProductList/useProductListItems.js +8 -6
  134. package/hooks/ProductList/useProductListItems.js.map +1 -1
  135. package/hooks/useAddMultipleToCart.js +11 -5
  136. package/hooks/useAddMultipleToCart.js.map +1 -1
  137. package/hooks/useProductVariants/useProductVariants.d.ts +1 -2
  138. package/hooks/useProductVariants/useProductVariants.js +1 -1
  139. package/hooks/useProductVariants/useProductVariants.js.map +1 -1
  140. package/package.json +1 -1
  141. package/resolvers/index.d.ts +3 -0
  142. package/resolvers/index.js +3 -0
  143. package/resolvers/index.js.map +1 -1
  144. package/sentry/client.js +1 -1
  145. package/sentry/client.js.map +1 -1
  146. package/server/tracking/facebook.d.ts +1 -1
  147. package/server/tracking/facebook.js +4 -2
  148. package/server/tracking/facebook.js.map +1 -1
  149. package/server/tracking/types.d.ts +3 -1
  150. package/time.d.ts +1 -0
  151. package/time.js +6 -0
  152. package/time.js.map +1 -0
  153. package/types.d.ts +5 -2
@@ -1,18 +1,17 @@
1
1
  import { PackageItem } from '../../types';
2
- declare type UpdateItem = (articleNumber: string, variantArticleNumber: string, valid: boolean) => void;
2
+ export declare type UpdateItem = (articleNumber: string, variantArticleNumber: string, valid: boolean) => void;
3
3
  export declare function usePackageProductItem(item: PackageItem, updateItem: UpdateItem, { preselectCheapest }?: {
4
4
  preselectCheapest?: boolean;
5
5
  }): {
6
6
  stockStatus: import("@jetshop/ui/Stock/StockStatusContainer").StockStatusContainerRender;
7
7
  variantHandler: {
8
8
  selectedVariant: import("../../types").ProductVariant;
9
- validation: "invalid" | "outOfStock" | "valid" | "incomplete";
9
+ validation: import("../useProductVariants/useProductVariants").VariantValidation;
10
10
  getSelectedValue: (option: import("../../types").ProductVariantOption) => string;
11
11
  selectValue: (value: string, option: import("../../types").ProductVariantOption) => void;
12
- validateSelection: (value: string, option: import("../../types").ProductVariantOption) => "invalid" | "outOfStock" | "valid" | "incomplete";
12
+ validateSelection: (value: string, option: import("../../types").ProductVariantOption) => import("../useProductVariants/useProductVariants").VariantValidation;
13
13
  getVariantForSelection: (value: string, option: import("../../types").ProductVariantOption) => import("../../types").ProductVariant;
14
14
  missingOptions: import("../../types").ProductVariantOption[];
15
15
  getMissingOptions: () => import("../../types").ProductVariantOption[];
16
16
  };
17
17
  };
18
- export {};
@@ -11,28 +11,60 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  };
12
12
  import React, { useEffect, useMemo } from 'react';
13
13
  import { useMutation, useQuery } from 'react-apollo';
14
+ import useWarningInDev from '@jetshop/core/hooks/useWarningInDev';
15
+ import productListQueries from '@jetshop/core/data/queries/ProductLists.gql';
16
+ import productListMutations from '@jetshop/core/data/mutations/productListMutations.gql';
17
+ import { emptyProductLists, productListMapToArray, PRODUCT_LISTS_KEY } from '.';
14
18
  import useAuth from '../../components/AuthContext/useAuth';
15
19
  import { useThunkReducer } from '../useThunkReducer';
16
- import { loginAction, refreshAction } from './action-creators';
20
+ import { createListAction, deleteListAction, loginAction, refreshAction } from './action-creators';
17
21
  import { normalizeServerList } from './list-transforms';
18
22
  import { init, reducer } from './product-list-reducer';
19
23
  export const ProductListContext = React.createContext(undefined);
20
- // TODO: Provider could take id in order to scope all CRUD to that list id
24
+ function useMissingQueryWarning(property, queries) {
25
+ return useWarningInDev(!(property in queries), `No \`${property}\` query available in \`queries\` for \`ProductListProvider\`. ` +
26
+ `Check migration guide for 5.11.0 (product lists section) to remove this warning`);
27
+ }
21
28
  export const ProductListProvider = function ProductListProvider(_a) {
22
29
  var { queries, initialState = {} } = _a, rest = __rest(_a, ["queries", "initialState"]);
30
+ // NOTE: Warn about missing queries, should be removed in next major release.
31
+ useMissingQueryWarning('all', queries);
32
+ useMissingQueryWarning('createList', queries);
33
+ useMissingQueryWarning('deleteList', queries);
23
34
  const { loggedIn } = useAuth();
24
35
  const requestIdRef = React.useRef(null);
25
- const { data: serverList } = useQuery(queries.query, {
26
- variables: { id: null },
27
- skip: !loggedIn,
36
+ const allQuery = queries.all || productListQueries.ProductLists;
37
+ const { data: serverList, client } = useQuery(allQuery, {
38
+ skip: !loggedIn
28
39
  });
40
+ const lists = serverList
41
+ ? new Map(serverList.customerProductLists.map(
42
+ // The default list (name === null) must have listId null
43
+ (productList) => [
44
+ productList.name === null ? null : productList.id,
45
+ normalizeServerList(productList)
46
+ ]))
47
+ : emptyProductLists();
29
48
  const defaultInitialState = Object.assign({ loggedIn,
30
- requestIdRef, list: normalizeServerList(serverList) }, initialState);
49
+ requestIdRef,
50
+ lists }, initialState);
31
51
  const [state, dispatch] = useThunkReducer(reducer, defaultInitialState, (initialState) => init(initialState));
32
52
  const usingLocalList = !state.loggedIn;
33
- usePersistLocalList({ list: state.list || {} });
53
+ usePersistLocalList({ lists: state.lists });
54
+ // When localstorage updates, sync it to reducer state
34
55
  useLocalStorageListener({ refresh });
56
+ // loginMutation is a mutation to merge product lists
35
57
  const [loginMutation] = useMutation(queries.login);
58
+ // To be used to fetch all lists of user after login
59
+ const fetchAll = () => client.query({ query: allQuery });
60
+ const [createMutation] = useMutation(queries.createList || productListMutations.CreateProductList);
61
+ const [deleteListMutation] = useMutation(queries.deleteList || productListMutations.DeleteProductList);
62
+ function deleteList(listId) {
63
+ dispatch(deleteListAction({ listId, deleteListMutation }));
64
+ }
65
+ function createList(name) {
66
+ dispatch(createListAction({ name, createMutation }));
67
+ }
36
68
  function refresh() {
37
69
  dispatch(refreshAction());
38
70
  }
@@ -40,14 +72,16 @@ export const ProductListProvider = function ProductListProvider(_a) {
40
72
  if (loggedIn === state.loggedIn)
41
73
  return;
42
74
  loggedIn
43
- ? dispatch(loginAction({ loginMutation }))
44
- : dispatch({ type: 'LOGOUT' });
75
+ ? dispatch(loginAction({ loginMutation, fetchAll })) // Merge logged out lists to account
76
+ : dispatch({ type: 'LOGOUT' }); // Clear lists
45
77
  }, [dispatch, loggedIn, loginMutation, state.loggedIn]);
46
78
  const value = useMemo(() => ({
79
+ createList,
80
+ deleteList,
47
81
  state,
48
82
  dispatch,
49
83
  queries,
50
- usingLocalList,
84
+ usingLocalList
51
85
  }), [dispatch, queries, state, usingLocalList]);
52
86
  // We spread props here so during testing we can override value
53
87
  return React.createElement(ProductListContext.Provider, Object.assign({ value: value }, rest));
@@ -55,15 +89,16 @@ export const ProductListProvider = function ProductListProvider(_a) {
55
89
  /**
56
90
  * Persist local list to localStorage on every change
57
91
  */
58
- function usePersistLocalList({ list }) {
92
+ function usePersistLocalList({ lists }) {
93
+ const productListArray = productListMapToArray(lists);
59
94
  useEffect(() => {
60
- localStorage.setItem('productList', JSON.stringify(list));
61
- }, [list]);
95
+ localStorage.setItem(PRODUCT_LISTS_KEY, JSON.stringify(productListArray));
96
+ }, [lists]);
62
97
  }
63
98
  function useLocalStorageListener({ refresh }) {
64
99
  useEffect(() => {
65
100
  const listener = (e) => {
66
- if (e.storageArea === localStorage && e.key === 'productList') {
101
+ if (e.storageArea === localStorage && e.key === PRODUCT_LISTS_KEY) {
67
102
  refresh();
68
103
  }
69
104
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ProductListContext.js","sourceRoot":"","sources":["ProductListContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProductListContext.js","sourceRoot":"","sources":["ProductListContext.tsx"],"names":[],"mappings":"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"}
File without changes
@@ -1,13 +1,23 @@
1
1
  import React from 'react';
2
2
  import { MutationFunction } from 'react-apollo';
3
- import { AddToListMutation, ProductListItemOptions, ProductListState, RemoveFromListMutation, UpdateListInput, UpdateListOptions } from '.';
3
+ import { AddToListMutation, ProductListItemOptions, ProductListState, ProductListId, RemoveFromListMutation, UpdateListInput, UpdateListOptions } from '.';
4
4
  import { Mutation } from '../../types';
5
5
  import { Action } from './product-list-reducer';
6
- export declare function loginAction({ loginMutation }: {
7
- loginMutation: MutationFunction<Mutation['addToCustomerProductList']>;
6
+ export declare function loginAction({ loginMutation, fetchAll }: {
7
+ loginMutation: MutationFunction<Pick<Mutation, 'addToCustomerProductList'>>;
8
+ fetchAll: any;
8
9
  }): (dispatch: React.Dispatch<Action>, getState: () => ProductListState) => void;
9
10
  export declare function refreshAction(): (dispatch: React.Dispatch<Action>) => void;
10
- export declare function updateAction({ updateAPI, removeMutation, addMutation, options, articleNumber, variantToReplace, variantArticleNumber }: {
11
+ export declare function createListAction({ createMutation, name }: {
12
+ createMutation: MutationFunction<Pick<Mutation, 'createCustomerProductList'>>;
13
+ name: string;
14
+ }): (dispatch: React.Dispatch<Action>) => void;
15
+ export declare function deleteListAction({ listId, deleteListMutation }: {
16
+ listId: ProductListId;
17
+ deleteListMutation: MutationFunction<Pick<Mutation, 'deleteCustomerProductList'>>;
18
+ }): (dispatch: React.Dispatch<Action>) => void;
19
+ export declare function updateAction({ listId, updateAPI, removeMutation, addMutation, options, articleNumber, variantToReplace, variantArticleNumber }: {
20
+ listId: ProductListId;
11
21
  updateAPI: boolean;
12
22
  removeMutation: RemoveFromListMutation;
13
23
  addMutation: AddToListMutation;
@@ -16,16 +26,19 @@ export declare function updateAction({ updateAPI, removeMutation, addMutation, o
16
26
  variantArticleNumber: string;
17
27
  articleNumber: string;
18
28
  }): (dispatch: React.Dispatch<Action>, getState: () => ProductListState) => void;
19
- export declare function removeAction({ updateAPI, articleNumber, variantArticleNumber, removeMutation }: UpdateListInput & {
29
+ export declare function removeAction({ listId, updateAPI, articleNumber, variantArticleNumber, removeMutation }: UpdateListInput & {
30
+ listId: ProductListId;
20
31
  removeMutation: RemoveFromListMutation;
21
32
  updateAPI: boolean;
22
33
  articleNumber: string;
23
34
  }): (dispatch: React.Dispatch<Action>, getState: () => ProductListState) => void;
24
- export declare function clearAction({ updateAPI, removeMutation }: {
35
+ export declare function clearAction({ listId, updateAPI, removeMutation }: {
36
+ listId: ProductListId;
25
37
  updateAPI: boolean;
26
38
  removeMutation: RemoveFromListMutation;
27
39
  }): (dispatch: React.Dispatch<Action>, getState: () => ProductListState) => void;
28
- export declare function addAction({ articleNumber, variantArticleNumber, addMutation, options, updateAPI }: UpdateListInput & {
40
+ export declare function addAction({ listId, articleNumber, variantArticleNumber, addMutation, options, updateAPI }: UpdateListInput & {
41
+ listId: ProductListId;
29
42
  addMutation: AddToListMutation;
30
43
  options: ProductListItemOptions;
31
44
  updateAPI: boolean;
@@ -1,14 +1,18 @@
1
+ import { PRODUCT_LISTS_KEY, productListArrayToMap } from '.';
1
2
  import { flattenList, normalizeServerList } from './list-transforms';
2
3
  import uniqueId from '../../helpers/uniqueId';
3
- export function loginAction({ loginMutation }) {
4
+ export function loginAction({ loginMutation, fetchAll }) {
4
5
  return (dispatch, getState) => {
5
6
  const state = getState();
7
+ // Merge what is in the default list onto the default list on the server
8
+ // for this user.
9
+ const list = state.lists.get(null);
6
10
  loginMutation({
7
11
  fetchPolicy: 'no-cache',
8
12
  context: { useApolloNetworkStatus: false },
9
13
  variables: {
10
14
  id: null,
11
- items: flattenList(state.list).map((listItem) => ({
15
+ items: flattenList(list).map((listItem) => ({
12
16
  articleNumber: listItem.articleNumber,
13
17
  quantity: listItem.options.quantity,
14
18
  description: listItem.options.description
@@ -16,8 +20,32 @@ export function loginAction({ loginMutation }) {
16
20
  }
17
21
  })
18
22
  .then((response) => {
19
- const list = normalizeServerList(response.data.addToCustomerProductList);
20
- dispatch({ type: 'LOGIN', payload: list });
23
+ const list = normalizeServerList(response.data.addToCustomerProductList.customerProductList);
24
+ dispatch({
25
+ type: 'LOGIN',
26
+ payload: {
27
+ listId: null,
28
+ list
29
+ }
30
+ });
31
+ // Also fetch any other list that this user might have and update the state.
32
+ return fetchAll().then((response) => {
33
+ response.data.customerProductLists.forEach((serverList) => {
34
+ if (serverList.name === null) {
35
+ // The null (default) list has already been fetched and added as listId null
36
+ // so ignore it here.
37
+ return;
38
+ }
39
+ const list = normalizeServerList(serverList);
40
+ dispatch({
41
+ type: 'REPLACE',
42
+ payload: {
43
+ listId: serverList.id,
44
+ list
45
+ }
46
+ });
47
+ });
48
+ });
21
49
  })
22
50
  .catch((err) => {
23
51
  console.error('Lists could not be merged', err);
@@ -26,18 +54,65 @@ export function loginAction({ loginMutation }) {
26
54
  }
27
55
  export function refreshAction() {
28
56
  return (dispatch) => {
29
- dispatch({
30
- type: 'REPLACE',
31
- payload: JSON.parse(localStorage.getItem('productList'))
57
+ const lists = JSON.parse(localStorage.getItem(PRODUCT_LISTS_KEY));
58
+ if (lists) {
59
+ dispatch({
60
+ type: 'SET_LISTS',
61
+ payload: {
62
+ lists: productListArrayToMap(lists)
63
+ }
64
+ });
65
+ }
66
+ };
67
+ }
68
+ export function createListAction({ createMutation, name }) {
69
+ const variables = {
70
+ input: {
71
+ name
72
+ }
73
+ };
74
+ return (dispatch) => {
75
+ createMutation({ variables }).then((response) => {
76
+ const serverList = response.data.createCustomerProductList.customerProductList;
77
+ const listId = serverList.id;
78
+ if (response.data.createCustomerProductList.success) {
79
+ dispatch({
80
+ type: 'CREATE_LIST',
81
+ payload: { listId, list: normalizeServerList(serverList) }
82
+ });
83
+ }
84
+ else {
85
+ console.warn(`Could not create list`);
86
+ }
32
87
  });
33
88
  };
34
89
  }
35
- export function updateAction({ updateAPI = false, removeMutation, addMutation, options, articleNumber, variantToReplace, variantArticleNumber }) {
90
+ export function deleteListAction({ listId, deleteListMutation }) {
91
+ const variables = {
92
+ id: listId
93
+ };
94
+ return (dispatch) => {
95
+ deleteListMutation({ variables }).then((response) => {
96
+ const success = response.data.deleteCustomerProductList.success;
97
+ if (success) {
98
+ dispatch({
99
+ type: 'DELETE_LIST',
100
+ payload: { listId }
101
+ });
102
+ }
103
+ else {
104
+ console.warn(`Could not delete product list with id ${listId}`);
105
+ }
106
+ });
107
+ };
108
+ }
109
+ export function updateAction({ listId, updateAPI = false, removeMutation, addMutation, options, articleNumber, variantToReplace, variantArticleNumber }) {
36
110
  return (dispatch, getState) => {
37
111
  const { description, quantity } = options;
38
112
  dispatch({
39
113
  type: 'UPDATE',
40
114
  payload: {
115
+ listId,
41
116
  articleNumber,
42
117
  options,
43
118
  variantArticleNumber,
@@ -56,7 +131,7 @@ export function updateAction({ updateAPI = false, removeMutation, addMutation, o
56
131
  fetchPolicy: 'no-cache',
57
132
  context: { useApolloNetworkStatus: false },
58
133
  variables: {
59
- id: null,
134
+ id: listId,
60
135
  articleNumbers: [variantToReplace || articleNumber]
61
136
  }
62
137
  })
@@ -65,7 +140,7 @@ export function updateAction({ updateAPI = false, removeMutation, addMutation, o
65
140
  fetchPolicy: 'no-cache',
66
141
  context: { useApolloNetworkStatus: false },
67
142
  variables: {
68
- id: null,
143
+ id: listId,
69
144
  items: [
70
145
  {
71
146
  articleNumber: variantArticleNumber || articleNumber,
@@ -76,20 +151,24 @@ export function updateAction({ updateAPI = false, removeMutation, addMutation, o
76
151
  }
77
152
  }).then((response) => {
78
153
  requestId === previousState.requestIdRef.current &&
79
- syncListFromServer(dispatch, response.data.addToCustomerProductList);
154
+ syncListFromServer(dispatch, listId, response.data.addToCustomerProductList);
80
155
  });
81
156
  })
82
157
  .catch((err) => {
83
- rollbackList(dispatch, previousState.list);
84
158
  console.error('List could not be updated', err);
159
+ const previousList = previousState.lists.get(listId);
160
+ if (previousList) {
161
+ rollbackList(dispatch, listId, previousList);
162
+ }
85
163
  });
86
164
  };
87
165
  }
88
- export function removeAction({ updateAPI = false, articleNumber, variantArticleNumber, removeMutation }) {
166
+ export function removeAction({ listId, updateAPI = false, articleNumber, variantArticleNumber, removeMutation }) {
89
167
  return (dispatch, getState) => {
90
168
  dispatch({
91
169
  type: 'REMOVE',
92
170
  payload: {
171
+ listId,
93
172
  articleNumber,
94
173
  variantArticleNumber
95
174
  }
@@ -105,50 +184,58 @@ export function removeAction({ updateAPI = false, articleNumber, variantArticleN
105
184
  context: { useApolloNetworkStatus: false },
106
185
  variables: {
107
186
  articleNumbers: [variantArticleNumber || articleNumber],
108
- id: null
187
+ id: listId
109
188
  }
110
189
  })
111
190
  .then((response) => {
112
191
  requestId === previousState.requestIdRef.current &&
113
- syncListFromServer(dispatch, response.data.removeFromCustomerProductList);
192
+ syncListFromServer(dispatch, listId, response.data.removeFromCustomerProductList);
114
193
  })
115
194
  .catch((err) => {
116
195
  console.error('Product could not be removed from list', err);
117
- rollbackList(dispatch, previousState.list);
196
+ const previousList = previousState.lists.get(listId);
197
+ if (previousList) {
198
+ rollbackList(dispatch, listId, previousList);
199
+ }
118
200
  });
119
201
  };
120
202
  }
121
- export function clearAction({ updateAPI = false, removeMutation }) {
203
+ export function clearAction({ listId, updateAPI = false, removeMutation }) {
122
204
  return (dispatch, getState) => {
123
- dispatch({ type: 'REPLACE', payload: {} });
205
+ dispatch({
206
+ type: 'CLEAR_ITEMS',
207
+ payload: { listId }
208
+ });
124
209
  if (!updateAPI)
125
210
  return;
126
211
  const [remove] = removeMutation;
127
212
  const state = getState();
128
- const articleNumbers = flattenList(state.list).map((listItem) => listItem.articleNumber);
213
+ const list = state.lists.get(listId);
214
+ const articleNumbers = flattenList(list).map((listItem) => listItem.articleNumber);
129
215
  const requestId = scopedUniqueID();
130
216
  state.requestIdRef.current = requestId;
131
217
  remove({
132
218
  fetchPolicy: 'no-cache',
133
219
  context: { useApolloNetworkStatus: false },
134
- variables: { articleNumbers, id: null }
220
+ variables: { articleNumbers, id: listId }
135
221
  })
136
222
  .then((response) => {
137
223
  requestId === state.requestIdRef.current &&
138
- syncListFromServer(dispatch, response.data.removeFromCustomerProductList);
224
+ syncListFromServer(dispatch, listId, response.data.removeFromCustomerProductList);
139
225
  })
140
226
  .catch((err) => {
141
227
  console.error('List could not be cleared', err);
142
- rollbackList(dispatch, state.list);
228
+ rollbackList(dispatch, listId, list);
143
229
  });
144
230
  };
145
231
  }
146
- export function addAction({ articleNumber, variantArticleNumber, addMutation, options, updateAPI = false }) {
232
+ export function addAction({ listId, articleNumber, variantArticleNumber, addMutation, options, updateAPI = false }) {
147
233
  return (dispatch, getState) => {
148
234
  const { quantity, description } = options;
149
235
  dispatch({
150
236
  type: 'ADD',
151
237
  payload: {
238
+ listId,
152
239
  articleNumber,
153
240
  variantArticleNumber,
154
241
  options: { quantity, description }
@@ -164,7 +251,8 @@ export function addAction({ articleNumber, variantArticleNumber, addMutation, op
164
251
  fetchPolicy: 'no-cache',
165
252
  context: { useApolloNetworkStatus: false },
166
253
  variables: {
167
- id: null,
254
+ //id: null, XXX
255
+ id: listId,
168
256
  items: [
169
257
  {
170
258
  articleNumber: variantArticleNumber || articleNumber,
@@ -176,28 +264,34 @@ export function addAction({ articleNumber, variantArticleNumber, addMutation, op
176
264
  })
177
265
  .then(({ data: { addToCustomerProductList } }) => {
178
266
  requestId === previousState.requestIdRef.current &&
179
- syncListFromServer(dispatch, addToCustomerProductList);
267
+ syncListFromServer(dispatch, listId, addToCustomerProductList);
180
268
  })
181
269
  .catch((err) => {
182
270
  console.error('Product could not be added to list', err);
183
- rollbackList(dispatch, previousState.list);
271
+ rollbackList(dispatch, listId, previousState.lists.get(listId));
184
272
  });
185
273
  };
186
274
  }
187
275
  function scopedUniqueID() {
188
276
  return uniqueId('_product_list_');
189
277
  }
190
- function syncListFromServer(dispatch, productList) {
191
- const normalizedList = normalizeServerList(productList);
278
+ function syncListFromServer(dispatch, listId, productList) {
279
+ const list = normalizeServerList(productList.customerProductList);
192
280
  dispatch({
193
281
  type: 'REPLACE',
194
- payload: normalizedList
282
+ payload: {
283
+ listId,
284
+ list
285
+ }
195
286
  });
196
287
  }
197
- function rollbackList(dispatch, productList) {
288
+ function rollbackList(dispatch, listId, productList) {
198
289
  dispatch({
199
290
  type: 'REPLACE',
200
- payload: productList
291
+ payload: {
292
+ listId,
293
+ list: productList
294
+ }
201
295
  });
202
296
  }
203
297
  //# sourceMappingURL=action-creators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"action-creators.js","sourceRoot":"","sources":["action-creators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action-creators.js","sourceRoot":"","sources":["action-creators.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { DocumentNode } from 'graphql';
3
3
  import { MutationTuple, QueryResult } from 'react-apollo';
4
- import { CustomerProductListResult, MutationAddToCustomerProductListArgs, MutationRemoveFromCustomerProductListArgs, MutationUpdateCustomerProductListItemArgs, Product, ProductVariant, QueryCustomerProductListArgs, QueryProductsArgs } from '../../types';
4
+ import { CustomerProductListResult, MutationCreateCustomerProductListArgs, MutationAddToCustomerProductListArgs, MutationRemoveFromCustomerProductListArgs, MutationUpdateCustomerProductListItemArgs, Product, ProductVariant, QueryCustomerProductListArgs, QueryProductsArgs } from '../../types';
5
5
  import { ThunkAction } from '../useThunkReducer';
6
6
  import { Action } from './product-list-reducer';
7
7
  export { useProductList } from './useProductList';
@@ -17,16 +17,42 @@ export interface ProductListContextOptions {
17
17
  usingLocalList: boolean;
18
18
  queries: ProductListQueries;
19
19
  }
20
+ /**
21
+ * A Product list mapping is a mapping between an ID and a product list
22
+ *
23
+ * As a convenienve, an ID of null is used for the "default" product list.
24
+ */
25
+ export declare type ProductListId = string | null;
26
+ export declare type ProductListMap = Map<ProductListId, NormalizedProductList>;
27
+ export interface NormalizedProductList {
28
+ name: string | null;
29
+ items: {
30
+ [articleNumber: string]: {
31
+ options: ProductListItemOptions;
32
+ variants: ProductListItemVariants | null;
33
+ };
34
+ };
35
+ }
36
+ export declare const PRODUCT_LISTS_KEY = "productLists";
37
+ export declare function emptyProductLists(): ProductListMap;
38
+ export declare function productListMapToArray(map: ProductListMap): [string, NormalizedProductList][];
39
+ export declare function productListArrayToMap(array: [ProductListId, NormalizedProductList][]): Map<string, NormalizedProductList>;
20
40
  export interface ProductListState {
21
41
  loggedIn: boolean;
22
- list?: NormalizedProductList;
42
+ lists: ProductListMap;
23
43
  requestIdRef: React.MutableRefObject<string | null>;
24
44
  }
25
45
  export interface ProductListQueries {
26
46
  /** Products query, used for retrieving products from localList */
27
47
  productsQuery: DocumentNode;
48
+ /** The customerProductLists query */
49
+ all: DocumentNode;
28
50
  /** The customerProductList query */
29
51
  query: DocumentNode;
52
+ /** The createCustomerProductList mutation */
53
+ createList: DocumentNode;
54
+ /** The deleteCustomerProductList mutation */
55
+ deleteList: DocumentNode;
30
56
  /** The addToCustomerProductList mutation */
31
57
  add: DocumentNode;
32
58
  /** An addToCustomerProductList mutation that returns the full list */
@@ -45,12 +71,6 @@ export interface ProductListDetail {
45
71
  /** An array containing the product data */
46
72
  products: ProductListProduct[];
47
73
  }
48
- export interface NormalizedProductList {
49
- [articleNumber: string]: {
50
- options: ProductListItemOptions;
51
- variants: ProductListItemVariants | null;
52
- };
53
- }
54
74
  export interface FlattenedProductListItem {
55
75
  articleNumber: string;
56
76
  parentArticleNumber?: string;
@@ -80,12 +100,18 @@ export declare type ProductListProductValidation = {
80
100
  export declare type AddToListMutation = MutationTuple<{
81
101
  addToCustomerProductList: CustomerProductListResult;
82
102
  }, MutationAddToCustomerProductListArgs>;
103
+ export declare type CreateListMutation = MutationTuple<{
104
+ createCustomerProductList: CustomerProductListResult;
105
+ }, MutationCreateCustomerProductListArgs>;
83
106
  export declare type RemoveFromListMutation = MutationTuple<{
84
107
  removeFromCustomerProductList: CustomerProductListResult;
85
108
  }, MutationRemoveFromCustomerProductListArgs>;
86
109
  export declare type UpdateListItemMutation = MutationTuple<{
87
110
  updateCustomerProductListItem: CustomerProductListResult;
88
111
  }, MutationUpdateCustomerProductListItemArgs>;
112
+ export declare type ListsProductsQuery = QueryResult<{
113
+ customerProductLists: CustomerProductListResult[];
114
+ }>;
89
115
  export declare type ListProductsQuery = QueryResult<CustomerProductListResult, QueryCustomerProductListArgs>;
90
116
  export declare type ProductsQuery = QueryResult<{
91
117
  products: Product[];
@@ -1,3 +1,22 @@
1
1
  export { useProductList } from './useProductList';
2
2
  export { useProductListItems } from './useProductListItems';
3
+ export const PRODUCT_LISTS_KEY = 'productLists';
4
+ export function emptyProductLists() {
5
+ return new Map([
6
+ [
7
+ null,
8
+ {
9
+ items: {},
10
+ name: null
11
+ }
12
+ ]
13
+ ]);
14
+ }
15
+ export function productListMapToArray(map) {
16
+ const [...array] = map;
17
+ return array;
18
+ }
19
+ export function productListArrayToMap(array) {
20
+ return new Map(array);
21
+ }
3
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAgC5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAEhD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,GAAG,CAAC;QACb;YACE,IAAI;YACJ;gBACE,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,IAAI;aACX;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAmB;IACvD,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;IACvB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAA+C;IAE/C,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC"}