@comapeo/core-react 9.0.2 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +1 -1
  2. package/dist/commonjs/contexts/ClientApi.d.ts +1 -3
  3. package/dist/commonjs/contexts/ClientApi.js +2 -2
  4. package/dist/commonjs/hooks/client.d.ts +74 -33
  5. package/dist/commonjs/hooks/client.js +40 -11
  6. package/dist/commonjs/hooks/documents.d.ts +41 -429
  7. package/dist/commonjs/hooks/documents.js +101 -51
  8. package/dist/commonjs/hooks/invites.d.ts +153 -55
  9. package/dist/commonjs/hooks/invites.js +69 -20
  10. package/dist/commonjs/hooks/maps.d.ts +96 -225
  11. package/dist/commonjs/hooks/maps.js +104 -37
  12. package/dist/commonjs/hooks/projects.d.ts +666 -223
  13. package/dist/commonjs/hooks/projects.js +264 -131
  14. package/dist/commonjs/index.d.ts +2 -2
  15. package/dist/commonjs/lib/map-shares-stores.d.ts +1 -1
  16. package/dist/commonjs/lib/map-shares-stores.js +2 -2
  17. package/dist/commonjs/lib/presets.d.ts +1 -3
  18. package/dist/commonjs/lib/react-query.d.ts +103 -0
  19. package/dist/commonjs/lib/react-query.js +187 -0
  20. package/dist/commonjs/lib/sync.d.ts +2 -5
  21. package/dist/commonjs/lib/sync.js +0 -1
  22. package/dist/commonjs/lib/types.d.ts +4 -6
  23. package/dist/esm/contexts/ClientApi.d.ts +1 -3
  24. package/dist/esm/contexts/ClientApi.js +1 -1
  25. package/dist/esm/hooks/client.d.ts +74 -33
  26. package/dist/esm/hooks/client.js +40 -11
  27. package/dist/esm/hooks/documents.d.ts +41 -429
  28. package/dist/esm/hooks/documents.js +101 -51
  29. package/dist/esm/hooks/invites.d.ts +153 -55
  30. package/dist/esm/hooks/invites.js +69 -20
  31. package/dist/esm/hooks/maps.d.ts +96 -225
  32. package/dist/esm/hooks/maps.js +105 -38
  33. package/dist/esm/hooks/projects.d.ts +666 -223
  34. package/dist/esm/hooks/projects.js +262 -129
  35. package/dist/esm/index.d.ts +2 -2
  36. package/dist/esm/lib/map-shares-stores.d.ts +1 -1
  37. package/dist/esm/lib/map-shares-stores.js +1 -1
  38. package/dist/esm/lib/presets.d.ts +1 -3
  39. package/dist/esm/lib/react-query.d.ts +103 -0
  40. package/dist/esm/lib/react-query.js +162 -0
  41. package/dist/esm/lib/sync.d.ts +2 -5
  42. package/dist/esm/lib/sync.js +1 -1
  43. package/dist/esm/lib/types.d.ts +4 -6
  44. package/docs/API.md +137 -81
  45. package/package.json +39 -35
  46. package/dist/commonjs/lib/react-query/client.d.ts +0 -65
  47. package/dist/commonjs/lib/react-query/client.js +0 -68
  48. package/dist/commonjs/lib/react-query/documents.d.ts +0 -1484
  49. package/dist/commonjs/lib/react-query/documents.js +0 -149
  50. package/dist/commonjs/lib/react-query/invites.d.ts +0 -88
  51. package/dist/commonjs/lib/react-query/invites.js +0 -95
  52. package/dist/commonjs/lib/react-query/maps.d.ts +0 -104
  53. package/dist/commonjs/lib/react-query/maps.js +0 -129
  54. package/dist/commonjs/lib/react-query/mutation-result.d.ts +0 -8
  55. package/dist/commonjs/lib/react-query/mutation-result.js +0 -22
  56. package/dist/commonjs/lib/react-query/projects.d.ts +0 -316
  57. package/dist/commonjs/lib/react-query/projects.js +0 -359
  58. package/dist/commonjs/lib/react-query/shared.d.ts +0 -9
  59. package/dist/commonjs/lib/react-query/shared.js +0 -23
  60. package/dist/esm/lib/react-query/client.d.ts +0 -65
  61. package/dist/esm/lib/react-query/client.js +0 -59
  62. package/dist/esm/lib/react-query/documents.d.ts +0 -1484
  63. package/dist/esm/lib/react-query/documents.js +0 -137
  64. package/dist/esm/lib/react-query/invites.d.ts +0 -88
  65. package/dist/esm/lib/react-query/invites.js +0 -85
  66. package/dist/esm/lib/react-query/maps.d.ts +0 -104
  67. package/dist/esm/lib/react-query/maps.js +0 -119
  68. package/dist/esm/lib/react-query/mutation-result.d.ts +0 -8
  69. package/dist/esm/lib/react-query/mutation-result.js +0 -19
  70. package/dist/esm/lib/react-query/projects.d.ts +0 -316
  71. package/dist/esm/lib/react-query/projects.js +0 -324
  72. package/dist/esm/lib/react-query/shared.d.ts +0 -9
  73. package/dist/esm/lib/react-query/shared.js +0 -18
@@ -10,7 +10,7 @@ exports.usePresetsSelection = usePresetsSelection;
10
10
  const react_query_1 = require("@tanstack/react-query");
11
11
  const react_1 = require("react");
12
12
  const presets_js_1 = require("../lib/presets.js");
13
- const documents_js_1 = require("../lib/react-query/documents.js");
13
+ const react_query_js_1 = require("../lib/react-query.js");
14
14
  const projects_js_1 = require("./projects.js");
15
15
  /**
16
16
  * Retrieve a single document from the database based on the document's document ID.
@@ -37,15 +37,25 @@ const projects_js_1 = require("./projects.js");
37
37
  */
38
38
  function useSingleDocByDocId({ projectId, docType, docId, lang, }) {
39
39
  const { data: projectApi } = (0, projects_js_1.useSingleProject)({ projectId });
40
- const { data, error, isRefetching } = (0, react_query_1.useSuspenseQuery)((0, documents_js_1.documentByDocumentIdQueryOptions)({
41
- projectApi,
42
- projectId,
43
- docType,
44
- docId,
45
- lang,
46
- }));
40
+ const { data, error, isRefetching } = (0, react_query_1.useSuspenseQuery)({
41
+ ...(0, react_query_js_1.baseQueryOptions)(),
42
+ queryKey: (0, react_query_js_1.getDocumentByDocIdQueryKey)({
43
+ projectId,
44
+ docType,
45
+ docId,
46
+ lang,
47
+ }),
48
+ queryFn: async () => {
49
+ return projectApi[docType].getByDocId(docId, {
50
+ lang,
51
+ // We want to make sure that this throws in the case that no match is found
52
+ mustBeFound: true,
53
+ });
54
+ },
55
+ });
47
56
  return {
48
- data: data,
57
+ // @ts-expect-error Not smart enough
58
+ data,
49
59
  error,
50
60
  isRefetching,
51
61
  };
@@ -75,15 +85,21 @@ function useSingleDocByDocId({ projectId, docType, docId, lang, }) {
75
85
  */
76
86
  function useSingleDocByVersionId({ projectId, docType, versionId, lang, }) {
77
87
  const { data: projectApi } = (0, projects_js_1.useSingleProject)({ projectId });
78
- const { data, error, isRefetching } = (0, react_query_1.useSuspenseQuery)((0, documents_js_1.documentByVersionIdQueryOptions)({
79
- projectApi,
80
- projectId,
81
- docType,
82
- versionId,
83
- lang,
84
- }));
88
+ const { data, error, isRefetching } = (0, react_query_1.useSuspenseQuery)({
89
+ ...(0, react_query_js_1.baseQueryOptions)(),
90
+ queryKey: (0, react_query_js_1.getDocumentByVersionIdQueryKey)({
91
+ projectId,
92
+ docType,
93
+ versionId,
94
+ lang,
95
+ }),
96
+ queryFn: async () => {
97
+ return projectApi[docType].getByVersionId(versionId, { lang });
98
+ },
99
+ });
85
100
  return {
86
- data: data,
101
+ // @ts-expect-error Not smart enough
102
+ data,
87
103
  error,
88
104
  isRefetching,
89
105
  };
@@ -124,15 +140,24 @@ function useSingleDocByVersionId({ projectId, docType, versionId, lang, }) {
124
140
  */
125
141
  function useManyDocs({ projectId, docType, includeDeleted, lang, }) {
126
142
  const { data: projectApi } = (0, projects_js_1.useSingleProject)({ projectId });
127
- const { data, error, isRefetching } = (0, react_query_1.useSuspenseQuery)((0, documents_js_1.documentsQueryOptions)({
128
- projectApi,
129
- projectId,
130
- docType,
131
- includeDeleted,
132
- lang,
133
- }));
143
+ const { data, error, isRefetching } = (0, react_query_1.useSuspenseQuery)({
144
+ ...(0, react_query_js_1.baseQueryOptions)(),
145
+ queryKey: (0, react_query_js_1.getManyDocumentsQueryKey)({
146
+ projectId,
147
+ docType,
148
+ includeDeleted,
149
+ lang,
150
+ }),
151
+ queryFn: async () => {
152
+ return projectApi[docType].getMany({
153
+ includeDeleted,
154
+ lang,
155
+ });
156
+ },
157
+ });
134
158
  return {
135
- data: data,
159
+ // @ts-expect-error Not smart enough
160
+ data,
136
161
  error,
137
162
  isRefetching,
138
163
  };
@@ -146,15 +171,22 @@ function useManyDocs({ projectId, docType, includeDeleted, lang, }) {
146
171
  function useCreateDocument({ docType, projectId, }) {
147
172
  const queryClient = (0, react_query_1.useQueryClient)();
148
173
  const { data: projectApi } = (0, projects_js_1.useSingleProject)({ projectId });
149
- const { error, mutate, mutateAsync, reset, status } = (0, react_query_1.useMutation)((0, documents_js_1.createDocumentMutationOptions)({
150
- docType,
151
- projectApi,
152
- projectId,
153
- queryClient,
174
+ return (0, react_query_js_1.filterMutationResult)((0, react_query_1.useMutation)({
175
+ ...(0, react_query_js_1.baseMutationOptions)(),
176
+ mutationFn: async ({ value, }) => {
177
+ return (projectApi[docType]
178
+ // @ts-expect-error TS not handling this well
179
+ .create({ ...value, schemaName: docType }));
180
+ },
181
+ onSuccess: () => {
182
+ queryClient.invalidateQueries({
183
+ queryKey: (0, react_query_js_1.getDocumentsQueryKey)({
184
+ projectId,
185
+ docType,
186
+ }),
187
+ });
188
+ },
154
189
  }));
155
- return status === 'error'
156
- ? { error, mutate, mutateAsync, reset, status }
157
- : { error: null, mutate, mutateAsync, reset, status };
158
190
  }
159
191
  /**
160
192
  * Update a document within a project.
@@ -162,18 +194,28 @@ function useCreateDocument({ docType, projectId, }) {
162
194
  * @param opts.docType Document type to update.
163
195
  * @param opts.projectId Public ID of project document belongs to.
164
196
  */
165
- function useUpdateDocument({ docType, projectId, }) {
197
+ function useUpdateDocument({
198
+ // TODO: Make this a mutation parameter instead of a hook parameter
199
+ docType, projectId, }) {
166
200
  const queryClient = (0, react_query_1.useQueryClient)();
167
201
  const { data: projectApi } = (0, projects_js_1.useSingleProject)({ projectId });
168
- const { error, mutate, mutateAsync, reset, status } = (0, react_query_1.useMutation)((0, documents_js_1.updateDocumentMutationOptions)({
169
- docType,
170
- projectApi,
171
- projectId,
172
- queryClient,
202
+ // @ts-expect-error Not sure why TS complains here
203
+ return (0, react_query_js_1.filterMutationResult)((0, react_query_1.useMutation)({
204
+ ...(0, react_query_js_1.baseMutationOptions)(),
205
+ mutationFn: async ({ versionId, value, }) => {
206
+ return (projectApi[docType]
207
+ // @ts-expect-error TS not handling this well
208
+ .update(versionId, value));
209
+ },
210
+ onSuccess: () => {
211
+ queryClient.invalidateQueries({
212
+ queryKey: (0, react_query_js_1.getDocumentsQueryKey)({
213
+ projectId,
214
+ docType,
215
+ }),
216
+ });
217
+ },
173
218
  }));
174
- return status === 'error'
175
- ? { error, mutate, mutateAsync, reset, status }
176
- : { error: null, mutate, mutateAsync, reset, status };
177
219
  }
178
220
  /**
179
221
  * Delete a document within a project.
@@ -181,18 +223,26 @@ function useUpdateDocument({ docType, projectId, }) {
181
223
  * @param opts.docType Document type to delete.
182
224
  * @param opts.projectId Public ID of project document belongs to.
183
225
  */
184
- function useDeleteDocument({ docType, projectId, }) {
226
+ function useDeleteDocument({
227
+ // TODO: Make this a mutation parameter instead of a hook parameter
228
+ docType, projectId, }) {
185
229
  const queryClient = (0, react_query_1.useQueryClient)();
186
230
  const { data: projectApi } = (0, projects_js_1.useSingleProject)({ projectId });
187
- const { error, mutate, mutateAsync, reset, status } = (0, react_query_1.useMutation)((0, documents_js_1.deleteDocumentMutationOptions)({
188
- docType,
189
- projectApi,
190
- projectId,
191
- queryClient,
231
+ // @ts-expect-error Not sure why TS complains here
232
+ return (0, react_query_js_1.filterMutationResult)((0, react_query_1.useMutation)({
233
+ ...(0, react_query_js_1.baseMutationOptions)(),
234
+ mutationFn: async ({ docId }) => {
235
+ return projectApi[docType].delete(docId);
236
+ },
237
+ onSuccess: () => {
238
+ queryClient.invalidateQueries({
239
+ queryKey: (0, react_query_js_1.getDocumentsQueryKey)({
240
+ projectId,
241
+ docType,
242
+ }),
243
+ });
244
+ },
192
245
  }));
193
- return status === 'error'
194
- ? { error, mutate, mutateAsync, reset, status }
195
- : { error: null, mutate, mutateAsync, reset, status };
196
246
  }
197
247
  const dataTypeToGeometry = {
198
248
  observation: 'point',
@@ -1,3 +1,5 @@
1
+ import type { InviteApi, MemberApi } from '@comapeo/core';
2
+ import { type UseSuspenseQueryResult } from '@tanstack/react-query';
1
3
  /**
2
4
  * Get all invites that the device has received.
3
5
  *
@@ -8,11 +10,7 @@
8
10
  * }
9
11
  * ```
10
12
  */
11
- export declare function useManyInvites(): {
12
- data: import("@comapeo/core/dist/invite/invite-api.js", { with: { "resolution-mode": "import" } }).Invite[];
13
- error: Error | null;
14
- isRefetching: boolean;
15
- };
13
+ export declare function useManyInvites(): Pick<UseSuspenseQueryResult<Array<InviteApi.Invite>>, 'data' | 'error' | 'isRefetching'>;
16
14
  /**
17
15
  * Get a single invite based on its ID.
18
16
  *
@@ -25,61 +23,97 @@ export declare function useManyInvites(): {
25
23
  * }
26
24
  * ```
27
25
  */
28
- export declare function useSingleInvite({ inviteId }: {
26
+ export declare function useSingleInvite({ inviteId, }: {
29
27
  inviteId: string;
30
- }): {
31
- data: import("@comapeo/core/dist/invite/invite-api.js", { with: { "resolution-mode": "import" } }).Invite;
32
- error: Error | null;
33
- isRefetching: boolean;
34
- };
28
+ }): Pick<UseSuspenseQueryResult<InviteApi.Invite>, 'data' | 'error' | 'isRefetching'>;
35
29
  /**
36
30
  * Accept an invite that has been received.
37
31
  */
38
- export declare function useAcceptInvite(): {
39
- error: Error;
32
+ export declare function useAcceptInvite(): Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverIdleResult<string, Error, {
33
+ inviteId: string;
34
+ }, unknown>, {
35
+ mutate: import("@tanstack/react-query").UseMutateFunction<string, Error, {
36
+ inviteId: string;
37
+ }, unknown>;
38
+ }> & {
39
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<string, Error, {
40
+ inviteId: string;
41
+ }, unknown>;
42
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync"> | Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverLoadingResult<string, Error, {
43
+ inviteId: string;
44
+ }, unknown>, {
45
+ mutate: import("@tanstack/react-query").UseMutateFunction<string, Error, {
46
+ inviteId: string;
47
+ }, unknown>;
48
+ }> & {
49
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<string, Error, {
50
+ inviteId: string;
51
+ }, unknown>;
52
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync"> | Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverErrorResult<string, Error, {
53
+ inviteId: string;
54
+ }, unknown>, {
40
55
  mutate: import("@tanstack/react-query").UseMutateFunction<string, Error, {
41
56
  inviteId: string;
42
57
  }, unknown>;
58
+ }> & {
43
59
  mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<string, Error, {
44
60
  inviteId: string;
45
61
  }, unknown>;
46
- reset: () => void;
47
- status: "error";
48
- } | {
49
- error: null;
62
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync"> | Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverSuccessResult<string, Error, {
63
+ inviteId: string;
64
+ }, unknown>, {
50
65
  mutate: import("@tanstack/react-query").UseMutateFunction<string, Error, {
51
66
  inviteId: string;
52
67
  }, unknown>;
68
+ }> & {
53
69
  mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<string, Error, {
54
70
  inviteId: string;
55
71
  }, unknown>;
56
- reset: () => void;
57
- status: "pending" | "success" | "idle";
58
- };
72
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync">;
59
73
  /**
60
74
  * Reject an invite that has been received.
61
75
  */
62
- export declare function useRejectInvite(): {
63
- error: Error;
64
- mutate: import("@tanstack/react-query").UseMutateFunction<void, Error, {
76
+ export declare function useRejectInvite(): Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverIdleResult<string, Error, {
77
+ inviteId: string;
78
+ }, unknown>, {
79
+ mutate: import("@tanstack/react-query").UseMutateFunction<string, Error, {
65
80
  inviteId: string;
66
81
  }, unknown>;
67
- mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<void, Error, {
82
+ }> & {
83
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<string, Error, {
68
84
  inviteId: string;
69
85
  }, unknown>;
70
- reset: () => void;
71
- status: "error";
72
- } | {
73
- error: null;
74
- mutate: import("@tanstack/react-query").UseMutateFunction<void, Error, {
86
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync"> | Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverLoadingResult<string, Error, {
87
+ inviteId: string;
88
+ }, unknown>, {
89
+ mutate: import("@tanstack/react-query").UseMutateFunction<string, Error, {
75
90
  inviteId: string;
76
91
  }, unknown>;
77
- mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<void, Error, {
92
+ }> & {
93
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<string, Error, {
94
+ inviteId: string;
95
+ }, unknown>;
96
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync"> | Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverErrorResult<string, Error, {
97
+ inviteId: string;
98
+ }, unknown>, {
99
+ mutate: import("@tanstack/react-query").UseMutateFunction<string, Error, {
100
+ inviteId: string;
101
+ }, unknown>;
102
+ }> & {
103
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<string, Error, {
104
+ inviteId: string;
105
+ }, unknown>;
106
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync"> | Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverSuccessResult<string, Error, {
107
+ inviteId: string;
108
+ }, unknown>, {
109
+ mutate: import("@tanstack/react-query").UseMutateFunction<string, Error, {
78
110
  inviteId: string;
79
111
  }, unknown>;
80
- reset: () => void;
81
- status: "pending" | "success" | "idle";
82
- };
112
+ }> & {
113
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<string, Error, {
114
+ inviteId: string;
115
+ }, unknown>;
116
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync">;
83
117
  /**
84
118
  * Send an invite for a project.
85
119
  *
@@ -87,39 +121,83 @@ export declare function useRejectInvite(): {
87
121
  */
88
122
  export declare function useSendInvite({ projectId }: {
89
123
  projectId: string;
90
- }): {
91
- error: Error;
124
+ }): Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverIdleResult<"ACCEPT" | "REJECT" | "ALREADY", Error, {
125
+ deviceId: string;
126
+ roleDescription?: string;
127
+ roleId: MemberApi.RoleIdForNewInvite;
128
+ roleName?: string;
129
+ }, unknown>, {
130
+ mutate: import("@tanstack/react-query").UseMutateFunction<"ACCEPT" | "REJECT" | "ALREADY", Error, {
131
+ deviceId: string;
132
+ roleDescription?: string;
133
+ roleId: MemberApi.RoleIdForNewInvite;
134
+ roleName?: string;
135
+ }, unknown>;
136
+ }> & {
137
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<"ACCEPT" | "REJECT" | "ALREADY", Error, {
138
+ deviceId: string;
139
+ roleDescription?: string;
140
+ roleId: MemberApi.RoleIdForNewInvite;
141
+ roleName?: string;
142
+ }, unknown>;
143
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync"> | Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverLoadingResult<"ACCEPT" | "REJECT" | "ALREADY", Error, {
144
+ deviceId: string;
145
+ roleDescription?: string;
146
+ roleId: MemberApi.RoleIdForNewInvite;
147
+ roleName?: string;
148
+ }, unknown>, {
149
+ mutate: import("@tanstack/react-query").UseMutateFunction<"ACCEPT" | "REJECT" | "ALREADY", Error, {
150
+ deviceId: string;
151
+ roleDescription?: string;
152
+ roleId: MemberApi.RoleIdForNewInvite;
153
+ roleName?: string;
154
+ }, unknown>;
155
+ }> & {
156
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<"ACCEPT" | "REJECT" | "ALREADY", Error, {
157
+ deviceId: string;
158
+ roleDescription?: string;
159
+ roleId: MemberApi.RoleIdForNewInvite;
160
+ roleName?: string;
161
+ }, unknown>;
162
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync"> | Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverErrorResult<"ACCEPT" | "REJECT" | "ALREADY", Error, {
163
+ deviceId: string;
164
+ roleDescription?: string;
165
+ roleId: MemberApi.RoleIdForNewInvite;
166
+ roleName?: string;
167
+ }, unknown>, {
92
168
  mutate: import("@tanstack/react-query").UseMutateFunction<"ACCEPT" | "REJECT" | "ALREADY", Error, {
93
169
  deviceId: string;
94
170
  roleDescription?: string;
95
- roleId: import("@comapeo/core", { with: { "resolution-mode": "import" } }).MemberApi.RoleIdForNewInvite;
171
+ roleId: MemberApi.RoleIdForNewInvite;
96
172
  roleName?: string;
97
173
  }, unknown>;
174
+ }> & {
98
175
  mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<"ACCEPT" | "REJECT" | "ALREADY", Error, {
99
176
  deviceId: string;
100
177
  roleDescription?: string;
101
- roleId: import("@comapeo/core", { with: { "resolution-mode": "import" } }).MemberApi.RoleIdForNewInvite;
178
+ roleId: MemberApi.RoleIdForNewInvite;
102
179
  roleName?: string;
103
180
  }, unknown>;
104
- reset: () => void;
105
- status: "error";
106
- } | {
107
- error: null;
181
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync"> | Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverSuccessResult<"ACCEPT" | "REJECT" | "ALREADY", Error, {
182
+ deviceId: string;
183
+ roleDescription?: string;
184
+ roleId: MemberApi.RoleIdForNewInvite;
185
+ roleName?: string;
186
+ }, unknown>, {
108
187
  mutate: import("@tanstack/react-query").UseMutateFunction<"ACCEPT" | "REJECT" | "ALREADY", Error, {
109
188
  deviceId: string;
110
189
  roleDescription?: string;
111
- roleId: import("@comapeo/core", { with: { "resolution-mode": "import" } }).MemberApi.RoleIdForNewInvite;
190
+ roleId: MemberApi.RoleIdForNewInvite;
112
191
  roleName?: string;
113
192
  }, unknown>;
193
+ }> & {
114
194
  mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<"ACCEPT" | "REJECT" | "ALREADY", Error, {
115
195
  deviceId: string;
116
196
  roleDescription?: string;
117
- roleId: import("@comapeo/core", { with: { "resolution-mode": "import" } }).MemberApi.RoleIdForNewInvite;
197
+ roleId: MemberApi.RoleIdForNewInvite;
118
198
  roleName?: string;
119
199
  }, unknown>;
120
- reset: () => void;
121
- status: "pending" | "success" | "idle";
122
- };
200
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync">;
123
201
  /**
124
202
  * Request a cancellation of an invite sent to another device.
125
203
  *
@@ -127,24 +205,44 @@ export declare function useSendInvite({ projectId }: {
127
205
  */
128
206
  export declare function useRequestCancelInvite({ projectId }: {
129
207
  projectId: string;
130
- }): {
131
- error: Error;
208
+ }): Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverIdleResult<void, Error, {
209
+ deviceId: string;
210
+ }, unknown>, {
211
+ mutate: import("@tanstack/react-query").UseMutateFunction<void, Error, {
212
+ deviceId: string;
213
+ }, unknown>;
214
+ }> & {
215
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<void, Error, {
216
+ deviceId: string;
217
+ }, unknown>;
218
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync"> | Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverLoadingResult<void, Error, {
219
+ deviceId: string;
220
+ }, unknown>, {
221
+ mutate: import("@tanstack/react-query").UseMutateFunction<void, Error, {
222
+ deviceId: string;
223
+ }, unknown>;
224
+ }> & {
225
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<void, Error, {
226
+ deviceId: string;
227
+ }, unknown>;
228
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync"> | Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverErrorResult<void, Error, {
229
+ deviceId: string;
230
+ }, unknown>, {
132
231
  mutate: import("@tanstack/react-query").UseMutateFunction<void, Error, {
133
232
  deviceId: string;
134
233
  }, unknown>;
234
+ }> & {
135
235
  mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<void, Error, {
136
236
  deviceId: string;
137
237
  }, unknown>;
138
- reset: () => void;
139
- status: "error";
140
- } | {
141
- error: null;
238
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync"> | Pick<import("@tanstack/react-query").Override<import("@tanstack/react-query").MutationObserverSuccessResult<void, Error, {
239
+ deviceId: string;
240
+ }, unknown>, {
142
241
  mutate: import("@tanstack/react-query").UseMutateFunction<void, Error, {
143
242
  deviceId: string;
144
243
  }, unknown>;
244
+ }> & {
145
245
  mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<void, Error, {
146
246
  deviceId: string;
147
247
  }, unknown>;
148
- reset: () => void;
149
- status: "pending" | "success" | "idle";
150
- };
248
+ }, "error" | "status" | "mutate" | "reset" | "mutateAsync">;
@@ -7,7 +7,7 @@ exports.useRejectInvite = useRejectInvite;
7
7
  exports.useSendInvite = useSendInvite;
8
8
  exports.useRequestCancelInvite = useRequestCancelInvite;
9
9
  const react_query_1 = require("@tanstack/react-query");
10
- const invites_js_1 = require("../lib/react-query/invites.js");
10
+ const react_query_js_1 = require("../lib/react-query.js");
11
11
  const client_js_1 = require("./client.js");
12
12
  const projects_js_1 = require("./projects.js");
13
13
  /**
@@ -22,7 +22,13 @@ const projects_js_1 = require("./projects.js");
22
22
  */
23
23
  function useManyInvites() {
24
24
  const clientApi = (0, client_js_1.useClientApi)();
25
- const { data, error, isRefetching } = (0, react_query_1.useSuspenseQuery)((0, invites_js_1.getInvitesQueryOptions)({ clientApi }));
25
+ const { data, error, isRefetching } = (0, react_query_1.useSuspenseQuery)({
26
+ ...(0, react_query_js_1.baseQueryOptions)(),
27
+ queryKey: (0, react_query_js_1.getInvitesQueryKey)(),
28
+ queryFn: async () => {
29
+ return clientApi.invite.getMany();
30
+ },
31
+ });
26
32
  return { data, error, isRefetching };
27
33
  }
28
34
  /**
@@ -37,9 +43,15 @@ function useManyInvites() {
37
43
  * }
38
44
  * ```
39
45
  */
40
- function useSingleInvite({ inviteId }) {
46
+ function useSingleInvite({ inviteId, }) {
41
47
  const clientApi = (0, client_js_1.useClientApi)();
42
- const { data, error, isRefetching } = (0, react_query_1.useSuspenseQuery)((0, invites_js_1.getInviteByIdQueryOptions)({ clientApi, inviteId }));
48
+ const { data, error, isRefetching } = (0, react_query_1.useSuspenseQuery)({
49
+ ...(0, react_query_js_1.baseQueryOptions)(),
50
+ queryKey: (0, react_query_js_1.getInvitesByIdQueryKey)({ inviteId }),
51
+ queryFn: async () => {
52
+ return clientApi.invite.getById(inviteId);
53
+ },
54
+ });
43
55
  return { data, error, isRefetching };
44
56
  }
45
57
  /**
@@ -48,10 +60,20 @@ function useSingleInvite({ inviteId }) {
48
60
  function useAcceptInvite() {
49
61
  const queryClient = (0, react_query_1.useQueryClient)();
50
62
  const clientApi = (0, client_js_1.useClientApi)();
51
- const { error, mutate, mutateAsync, reset, status } = (0, react_query_1.useMutation)((0, invites_js_1.acceptInviteMutationOptions)({ clientApi, queryClient }));
52
- return status === 'error'
53
- ? { error, mutate, mutateAsync, reset, status }
54
- : { error: null, mutate, mutateAsync, reset, status };
63
+ return (0, react_query_js_1.filterMutationResult)((0, react_query_1.useMutation)({
64
+ ...(0, react_query_js_1.baseMutationOptions)(),
65
+ mutationFn: async ({ inviteId }) => {
66
+ return clientApi.invite.accept({ inviteId });
67
+ },
68
+ onSuccess: () => {
69
+ queryClient.invalidateQueries({
70
+ queryKey: (0, react_query_js_1.getInvitesQueryKey)(),
71
+ });
72
+ queryClient.invalidateQueries({
73
+ queryKey: (0, react_query_js_1.getProjectsQueryKey)(),
74
+ });
75
+ },
76
+ }));
55
77
  }
56
78
  /**
57
79
  * Reject an invite that has been received.
@@ -59,10 +81,20 @@ function useAcceptInvite() {
59
81
  function useRejectInvite() {
60
82
  const queryClient = (0, react_query_1.useQueryClient)();
61
83
  const clientApi = (0, client_js_1.useClientApi)();
62
- const { error, mutate, mutateAsync, reset, status } = (0, react_query_1.useMutation)((0, invites_js_1.rejectInviteMutationOptions)({ clientApi, queryClient }));
63
- return status === 'error'
64
- ? { error, mutate, mutateAsync, reset, status }
65
- : { error: null, mutate, mutateAsync, reset, status };
84
+ return (0, react_query_js_1.filterMutationResult)((0, react_query_1.useMutation)({
85
+ ...(0, react_query_js_1.baseMutationOptions)(),
86
+ mutationFn: async ({ inviteId }) => {
87
+ return clientApi.invite.accept({ inviteId });
88
+ },
89
+ onSuccess: () => {
90
+ queryClient.invalidateQueries({
91
+ queryKey: (0, react_query_js_1.getInvitesQueryKey)(),
92
+ });
93
+ queryClient.invalidateQueries({
94
+ queryKey: (0, react_query_js_1.getProjectsQueryKey)(),
95
+ });
96
+ },
97
+ }));
66
98
  }
67
99
  /**
68
100
  * Send an invite for a project.
@@ -72,10 +104,20 @@ function useRejectInvite() {
72
104
  function useSendInvite({ projectId }) {
73
105
  const queryClient = (0, react_query_1.useQueryClient)();
74
106
  const { data: projectApi } = (0, projects_js_1.useSingleProject)({ projectId });
75
- const { error, mutate, mutateAsync, reset, status } = (0, react_query_1.useMutation)((0, invites_js_1.sendInviteMutationOptions)({ projectApi, projectId, queryClient }));
76
- return status === 'error'
77
- ? { error, mutate, mutateAsync, reset, status }
78
- : { error: null, mutate, mutateAsync, reset, status };
107
+ return (0, react_query_js_1.filterMutationResult)((0, react_query_1.useMutation)({
108
+ ...(0, react_query_js_1.baseMutationOptions)(),
109
+ mutationFn: async ({ deviceId, ...role }) => {
110
+ return projectApi.$member.invite(deviceId, role);
111
+ },
112
+ onSuccess: () => {
113
+ queryClient.invalidateQueries({
114
+ queryKey: (0, react_query_js_1.getInvitesQueryKey)(),
115
+ });
116
+ queryClient.invalidateQueries({
117
+ queryKey: (0, react_query_js_1.getMembersQueryKey)({ projectId }),
118
+ });
119
+ },
120
+ }));
79
121
  }
80
122
  /**
81
123
  * Request a cancellation of an invite sent to another device.
@@ -85,8 +127,15 @@ function useSendInvite({ projectId }) {
85
127
  function useRequestCancelInvite({ projectId }) {
86
128
  const queryClient = (0, react_query_1.useQueryClient)();
87
129
  const { data: projectApi } = (0, projects_js_1.useSingleProject)({ projectId });
88
- const { error, mutate, mutateAsync, reset, status } = (0, react_query_1.useMutation)((0, invites_js_1.requestCancelInviteMutationOptions)({ projectApi, queryClient }));
89
- return status === 'error'
90
- ? { error, mutate, mutateAsync, reset, status }
91
- : { error: null, mutate, mutateAsync, reset, status };
130
+ return (0, react_query_js_1.filterMutationResult)((0, react_query_1.useMutation)({
131
+ ...(0, react_query_js_1.baseMutationOptions)(),
132
+ mutationFn: async ({ deviceId }) => {
133
+ return projectApi.$member.requestCancelInvite(deviceId);
134
+ },
135
+ onSuccess: () => {
136
+ queryClient.invalidateQueries({
137
+ queryKey: (0, react_query_js_1.getInvitesQueryKey)(),
138
+ });
139
+ },
140
+ }));
92
141
  }