@jetshop/core 5.8.4 → 5.11.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. package/ChannelHandler/ChannelHandler.d.ts +9 -13
  2. package/ChannelHandler/ChannelHandler.js +24 -66
  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 +9 -2
  12. package/analytics/AnalyticsProvider.js.map +1 -1
  13. package/analytics/integrations/ga4.d.ts +2 -1
  14. package/analytics/integrations/ga4.js +15 -6
  15. package/analytics/integrations/ga4.js.map +1 -1
  16. package/analytics/integrations/gtag/gtag.d.ts +2 -1
  17. package/analytics/integrations/gtag/gtag.js +20 -10
  18. package/analytics/integrations/gtag/gtag.js.map +1 -1
  19. package/analytics/integrations/gtm/index.d.ts +10 -1
  20. package/analytics/integrations/gtm/index.js +175 -2
  21. package/analytics/integrations/gtm/index.js.map +1 -1
  22. package/boot/SharedTree.js +1 -1
  23. package/boot/SharedTree.js.map +1 -1
  24. package/boot/apollo.d.ts +5 -4
  25. package/boot/apollo.js +18 -18
  26. package/boot/apollo.js.map +1 -1
  27. package/boot/client/startClient.js +7 -16
  28. package/boot/client/startClient.js.map +1 -1
  29. package/boot/server/createRenderer.js +8 -7
  30. package/boot/server/createRenderer.js.map +1 -1
  31. package/boot/server/index.js +2 -2
  32. package/boot/server/index.js.map +1 -1
  33. package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +53 -39
  34. package/boot/server/persistedQueries/getPersistedQueriesForRequest.js +2 -2
  35. package/boot/server/persistedQueries/getPersistedQueriesForRequest.js.map +1 -1
  36. package/cart/useAddToCart.d.ts +2 -2
  37. package/cart/useAddToCart.js +13 -12
  38. package/cart/useAddToCart.js.map +1 -1
  39. package/components/Auth/CustomerUpdateForm.js +7 -7
  40. package/components/Auth/CustomerUpdateForm.js.map +1 -1
  41. package/components/AuthContext/LogOut.d.ts +1 -0
  42. package/components/ChannelContext/ChannelProvider.d.ts +1 -3
  43. package/components/ChannelContext/ChannelProvider.js +6 -13
  44. package/components/ChannelContext/ChannelProvider.js.map +1 -1
  45. package/components/ChannelContext/ChannelProvider.test.js +110 -0
  46. package/components/ConfigProvider.d.ts +1 -0
  47. package/components/ConfigProvider.js.map +1 -1
  48. package/components/DynamicRoute/ContentRoute.d.ts +1 -1
  49. package/components/DynamicRoute/ProductByArticlenumber.d.ts +1 -0
  50. package/components/DynamicRoute/ProductRoute.d.ts +1 -0
  51. package/components/DynamicRoute/ProductRoute.js +4 -2
  52. package/components/DynamicRoute/ProductRoute.js.map +1 -1
  53. package/components/DynamicRoute/RouteResolver.js +1 -1
  54. package/components/DynamicRoute/RouteResolver.js.map +1 -1
  55. package/components/Mutation/AddToCart/addToCartUtils.js +3 -2
  56. package/components/Mutation/AddToCart/addToCartUtils.js.map +1 -1
  57. package/components/Mutation/DecrementQuantity.d.ts +1 -0
  58. package/components/Mutation/IncrementQuantity.d.ts +1 -0
  59. package/components/Mutation/RemoveFromCart.d.ts +2 -1
  60. package/components/Mutation/SetQuantity.d.ts +1 -0
  61. package/components/Mutation/cartMutationUtils.js +7 -6
  62. package/components/Mutation/cartMutationUtils.js.map +1 -1
  63. package/components/OpenGraph/OpenGraph.test.js +32 -5
  64. package/components/OpenGraph/OpenGraphProductData.d.ts +6 -1
  65. package/components/OpenGraph/OpenGraphProductData.js +18 -12
  66. package/components/OpenGraph/OpenGraphProductData.js.map +1 -1
  67. package/components/Query/CartProvider.js +32 -22
  68. package/components/Query/CartProvider.js.map +1 -1
  69. package/components/StructuredData/SiteLinksSearchStructuredData.d.ts +1 -0
  70. package/components/StructuredData/StructuredBreadcrumbData.d.ts +1 -0
  71. package/components/StructuredData/StructuredBreadcrumbData.js +4 -3
  72. package/components/StructuredData/StructuredBreadcrumbData.js.map +1 -1
  73. package/data/fragments/ProductListsFragments.gql +94 -0
  74. package/data/mutations/productListMutations.gql +18 -0
  75. package/data/queries/ProductLists.gql +8 -0
  76. package/dependencies.d.ts +10 -1
  77. package/hooks/ProductList/ProductListContext.js +49 -14
  78. package/hooks/ProductList/ProductListContext.js.map +1 -1
  79. package/hooks/ProductList/ProductLists.gql +0 -0
  80. package/hooks/ProductList/action-creators.d.ts +20 -7
  81. package/hooks/ProductList/action-creators.js +138 -44
  82. package/hooks/ProductList/action-creators.js.map +1 -1
  83. package/hooks/ProductList/index.d.ts +34 -8
  84. package/hooks/ProductList/index.js +19 -0
  85. package/hooks/ProductList/index.js.map +1 -1
  86. package/hooks/ProductList/list-transforms.d.ts +3 -2
  87. package/hooks/ProductList/list-transforms.js +22 -22
  88. package/hooks/ProductList/list-transforms.js.map +1 -1
  89. package/hooks/ProductList/list-transforms.test.js +103 -100
  90. package/hooks/ProductList/product-list-reducer.d.ts +37 -14
  91. package/hooks/ProductList/product-list-reducer.js +106 -43
  92. package/hooks/ProductList/product-list-reducer.js.map +1 -1
  93. package/hooks/ProductList/product-list-reducer.test.js +144 -82
  94. package/hooks/ProductList/useProductList.d.ts +2 -2
  95. package/hooks/ProductList/useProductList.js +12 -5
  96. package/hooks/ProductList/useProductList.js.map +1 -1
  97. package/hooks/ProductList/useProductListItems.d.ts +1 -1
  98. package/hooks/ProductList/useProductListItems.js +8 -6
  99. package/hooks/ProductList/useProductListItems.js.map +1 -1
  100. package/hooks/useInfinitePagination.js +1 -1
  101. package/hooks/useInfinitePagination.js.map +1 -1
  102. package/hooks/useRoutePreload.js +2 -2
  103. package/hooks/useRoutePreload.js.map +1 -1
  104. package/package.json +5 -5
  105. package/resolvers/index.d.ts +3 -0
  106. package/resolvers/index.js +3 -0
  107. package/resolvers/index.js.map +1 -1
  108. package/sentry/client.js +9 -4
  109. package/sentry/client.js.map +1 -1
  110. package/sentry/common.d.ts +1 -0
  111. package/sentry/common.js +5 -0
  112. package/sentry/common.js.map +1 -0
  113. package/sentry/server.js +11 -2
  114. package/sentry/server.js.map +1 -1
  115. package/time.d.ts +1 -0
  116. package/time.js +6 -0
  117. package/time.js.map +1 -0
  118. package/types.d.ts +1 -0
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { Route } from '../../types';
2
3
  declare function StructuredBreadcrumbData({ parents, breadcrumbText }: {
3
4
  parents: Route[];
@@ -5,12 +5,13 @@ function StructuredBreadcrumbData({ parents, breadcrumbText }) {
5
5
  const { selectedChannel } = useContext(ChannelContext);
6
6
  let mappedParents = [];
7
7
  if (parents && parents.length > 0) {
8
- mappedParents = parents.map((parent, index) => {
9
- var _a;
8
+ mappedParents = parents
9
+ .filter((parent) => { var _a; return (_a = parent.object) === null || _a === void 0 ? void 0 : _a.breadcrumbText; })
10
+ .map((parent, index) => {
10
11
  return {
11
12
  '@type': 'ListItem',
12
13
  position: parents.length - index,
13
- name: (_a = parent.object) === null || _a === void 0 ? void 0 : _a.breadcrumbText.toString(),
14
+ name: parent.object.breadcrumbText.toString(),
14
15
  item: `${selectedChannel.url}${parent.path}`
15
16
  };
16
17
  });
@@ -1 +1 @@
1
- {"version":3,"file":"StructuredBreadcrumbData.js","sourceRoot":"","sources":["StructuredBreadcrumbData.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,SAAS,wBAAwB,CAAC,EAChC,OAAO,EACP,cAAc,EAIf;IACC,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACvD,IAAI,aAAa,GAAe,EAAE,CAAC;IACnC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACjC,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;;YAC5C,OAAO;gBACL,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,OAAO,CAAC,MAAM,GAAG,KAAK;gBAChC,IAAI,EAAE,MAAA,MAAM,CAAC,MAAM,0CAAE,cAAc,CAAC,QAAQ,EAAE;gBAC9C,IAAI,EAAE,GAAG,eAAe,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE;aAC7C,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,aAAa,CAAC,OAAO,EAAE,CAAC;QAExB,MAAM,IAAI,GAAgC;YACxC,UAAU,EAAE,oBAAoB;YAChC,OAAO,EAAE,gBAAgB;YACzB,eAAe,EAAE;gBACf,GAAG,aAAa;gBAChB;oBACE,OAAO,EAAE,UAAU;oBACnB,QAAQ,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;oBAC5B,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE;iBAChC;aACF;SACF,CAAC;QACF,OAAO,oBAAC,cAAc,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;KACvC;;QAAM,OAAO,IAAI,CAAC;AACrB,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"StructuredBreadcrumbData.js","sourceRoot":"","sources":["StructuredBreadcrumbData.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,SAAS,wBAAwB,CAAC,EAChC,OAAO,EACP,cAAc,EAIf;IACC,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACvD,IAAI,aAAa,GAAe,EAAE,CAAC;IACnC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACjC,aAAa,GAAG,OAAO;aACpB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,WAAC,OAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,cAAc,CAAA,EAAA,CAAC;aACjD,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACrB,OAAO;gBACL,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,OAAO,CAAC,MAAM,GAAG,KAAK;gBAChC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE;gBAC7C,IAAI,EAAE,GAAG,eAAe,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE;aAC7C,CAAC;QACJ,CAAC,CAAC,CAAC;QACL,aAAa,CAAC,OAAO,EAAE,CAAC;QAExB,MAAM,IAAI,GAAgC;YACxC,UAAU,EAAE,oBAAoB;YAChC,OAAO,EAAE,gBAAgB;YACzB,eAAe,EAAE;gBACf,GAAG,aAAa;gBAChB;oBACE,OAAO,EAAE,UAAU;oBACnB,QAAQ,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;oBAC5B,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE;iBAChC;aACF;SACF,CAAC;QACF,OAAO,oBAAC,cAAc,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;KACvC;;QAAM,OAAO,IAAI,CAAC;AACrB,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,94 @@
1
+ #import "@jetshop/core/data/fragments/BadgeFragment.gql"
2
+ #import "@jetshop/core/data/fragments/ProductPriceFragment.gql"
3
+
4
+ fragment MinimalProductListDetail on CustomerProductList {
5
+ id
6
+ name
7
+ # TODO
8
+ # typeId {...}
9
+ # description
10
+ items {
11
+ variant {
12
+ articleNumber
13
+ }
14
+ product {
15
+ articleNumber
16
+ }
17
+ }
18
+ }
19
+
20
+ fragment VariantDetail on ProductVariant {
21
+ id
22
+ articleNumber
23
+ values
24
+ stockStatus {
25
+ buyable
26
+ text
27
+ }
28
+ images {
29
+ modifiedDate
30
+ alt
31
+ title
32
+ url
33
+ }
34
+ }
35
+
36
+ fragment VariantsDetail on ProductVariants {
37
+ options {
38
+ name
39
+ values
40
+ }
41
+ values {
42
+ ...VariantDetail
43
+ }
44
+ }
45
+
46
+ fragment ProductDetail on Product {
47
+ id
48
+ articleNumber
49
+ name
50
+ subName
51
+ hasConfigurations
52
+ hasVariants
53
+ isPreOrder
54
+ isPackage
55
+ stockStatus {
56
+ buyable
57
+ text
58
+ }
59
+ primaryRoute {
60
+ id
61
+ path
62
+ slug
63
+ }
64
+ ...ProductPrice
65
+ badges {
66
+ ...Badge
67
+ }
68
+ images {
69
+ modifiedDate
70
+ alt
71
+ title
72
+ url
73
+ }
74
+ variants {
75
+ ...VariantsDetail
76
+ }
77
+ }
78
+
79
+ fragment ProductListFragment on CustomerProductList {
80
+ id
81
+ description
82
+ name
83
+ shareToken
84
+ items {
85
+ quantity
86
+ description
87
+ product {
88
+ ...ProductDetail
89
+ }
90
+ variant {
91
+ ...VariantDetail
92
+ }
93
+ }
94
+ }
@@ -0,0 +1,18 @@
1
+ #import "@jetshop/core/data/fragments/ProductListsFragments.gql"
2
+
3
+ ## Create a product list
4
+ mutation CreateProductList($input: CreateCustomerProductListInput!) {
5
+ createCustomerProductList(input: $input) {
6
+ success
7
+ customerProductList {
8
+ ...MinimalProductListDetail
9
+ }
10
+ }
11
+ }
12
+
13
+ ## delete product list
14
+ mutation DeleteProductList($id: ID) {
15
+ deleteCustomerProductList(id: $id) {
16
+ success
17
+ }
18
+ }
@@ -0,0 +1,8 @@
1
+ #import "@jetshop/core/data/fragments/ProductListsFragments.gql"
2
+
3
+ ## query all lists
4
+ query ProductLists {
5
+ customerProductLists {
6
+ ...ProductListFragment
7
+ }
8
+ }
package/dependencies.d.ts CHANGED
@@ -11,7 +11,7 @@ declare module '@jetshop/intl/config';
11
11
  declare module 'store-css';
12
12
  declare module 'dnscache';
13
13
  declare module 'isbot' {
14
- export default function(userAgent: string): boolean;
14
+ export default function (userAgent: string): boolean;
15
15
  }
16
16
  declare module '*.gql' {
17
17
  import { DocumentNode } from 'graphql';
@@ -32,6 +32,15 @@ declare module '@jetshop/core/data/mutations/accountMutations.gql' {
32
32
  export const resetRequest: DocumentNode;
33
33
  }
34
34
 
35
+ declare module '@jetshop/core/data/mutations/productListMutations.gql' {
36
+ export const CreateProductList: DocumentNode;
37
+ export const DeleteProductList: DocumentNode;
38
+ }
39
+
40
+ declare module '@jetshop/core/data/queries/ProductLists.gql' {
41
+ export const ProductLists: DocumentNode;
42
+ }
43
+
35
44
  declare module '*.svg' {
36
45
  import React = require('react');
37
46
 
@@ -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;