@go-avro/avro-js 0.0.2-beta.1 → 0.0.2-beta.100

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 (51) hide show
  1. package/README.md +1 -0
  2. package/dist/auth/AuthManager.d.ts +13 -3
  3. package/dist/auth/AuthManager.js +102 -28
  4. package/dist/auth/storage.d.ts +8 -8
  5. package/dist/auth/storage.js +12 -10
  6. package/dist/client/QueryClient.d.ts +372 -7
  7. package/dist/client/QueryClient.js +381 -96
  8. package/dist/client/core/fetch.d.ts +1 -0
  9. package/dist/client/core/fetch.js +62 -0
  10. package/dist/client/core/utils.d.ts +1 -0
  11. package/dist/client/core/utils.js +14 -0
  12. package/dist/client/core/xhr.d.ts +1 -0
  13. package/dist/client/core/xhr.js +84 -0
  14. package/dist/client/hooks/analytics.d.ts +1 -0
  15. package/dist/client/hooks/analytics.js +10 -0
  16. package/dist/client/hooks/avro.d.ts +1 -0
  17. package/dist/client/hooks/avro.js +9 -0
  18. package/dist/client/hooks/bills.d.ts +1 -0
  19. package/dist/client/hooks/bills.js +141 -0
  20. package/dist/client/hooks/chats.d.ts +1 -0
  21. package/dist/client/hooks/chats.js +37 -0
  22. package/dist/client/hooks/companies.d.ts +1 -0
  23. package/dist/client/hooks/companies.js +90 -0
  24. package/dist/client/hooks/events.d.ts +1 -0
  25. package/dist/client/hooks/events.js +307 -0
  26. package/dist/client/hooks/jobs.d.ts +1 -0
  27. package/dist/client/hooks/jobs.js +178 -0
  28. package/dist/client/hooks/messages.d.ts +1 -0
  29. package/dist/client/hooks/messages.js +30 -0
  30. package/dist/client/hooks/months.d.ts +1 -0
  31. package/dist/client/hooks/months.js +92 -0
  32. package/dist/client/hooks/plans.d.ts +1 -0
  33. package/dist/client/hooks/plans.js +9 -0
  34. package/dist/client/hooks/root.d.ts +1 -0
  35. package/dist/client/hooks/root.js +8 -0
  36. package/dist/client/hooks/routes.d.ts +1 -0
  37. package/dist/client/hooks/routes.js +168 -0
  38. package/dist/client/hooks/sessions.d.ts +1 -0
  39. package/dist/client/hooks/sessions.js +175 -0
  40. package/dist/client/hooks/teams.d.ts +1 -0
  41. package/dist/client/hooks/teams.js +116 -0
  42. package/dist/client/hooks/users.d.ts +1 -0
  43. package/dist/client/hooks/users.js +104 -0
  44. package/dist/index.d.ts +19 -0
  45. package/dist/index.js +19 -0
  46. package/dist/types/api.d.ts +588 -9
  47. package/dist/types/api.js +10 -1
  48. package/dist/types/auth.d.ts +0 -5
  49. package/dist/types/cache.d.ts +9 -0
  50. package/dist/types/cache.js +1 -0
  51. package/package.json +6 -4
@@ -0,0 +1,178 @@
1
+ import { useMutation, useQuery, useQueryClient, useInfiniteQuery } from '@tanstack/react-query';
2
+ import { AvroQueryClient } from '../../client/QueryClient';
3
+ AvroQueryClient.prototype.useGetJobs = function (body, total = 0, onProgress) {
4
+ const queryClient = useQueryClient();
5
+ const result = useInfiniteQuery({
6
+ queryKey: ['jobs', this.companyId, body.amt ?? 50, body.query ?? "", body.routeId ?? ""],
7
+ initialPageParam: 0,
8
+ getNextPageParam: (lastPage, allPages) => {
9
+ if (lastPage.length < (body.amt ?? 50))
10
+ return undefined;
11
+ return allPages.flat().length;
12
+ },
13
+ queryFn: ({ pageParam = 0 }) => {
14
+ onProgress?.(0);
15
+ return this.fetchJobs({
16
+ ...body,
17
+ route_id: body.routeId,
18
+ offset: pageParam,
19
+ });
20
+ },
21
+ });
22
+ if (result.data) {
23
+ result.data.pages.forEach((data_page) => {
24
+ data_page.forEach((job) => {
25
+ job.last_event = (job.tasks || []).reduce((latest, task) => {
26
+ return task.last_event && (!latest || task.last_event.time_started > (latest.time_started ?? 0)) ? task.last_event : latest;
27
+ }, null);
28
+ job.last_completed_event = (job.tasks || []).reduce((latest, task) => {
29
+ return task.last_completed_event && (!latest || task.last_completed_event.time_started > (latest.time_created ?? 0)) ? task.last_completed_event : latest;
30
+ }, null);
31
+ job.overdue_time = (job.tasks || []).reduce((maxOverdue, task) => {
32
+ return (task.overdue_time && task.overdue_time > maxOverdue) ? task.overdue_time : maxOverdue;
33
+ }, 0);
34
+ queryClient.setQueryData(['job', job.id], job);
35
+ });
36
+ });
37
+ }
38
+ return result;
39
+ };
40
+ AvroQueryClient.prototype.useGetJob = function (jobId) {
41
+ return useQuery({
42
+ queryKey: ['job', jobId],
43
+ queryFn: () => this.get(`/job/${jobId}`),
44
+ enabled: Boolean(jobId),
45
+ });
46
+ };
47
+ AvroQueryClient.prototype.useCreateJob = function () {
48
+ const queryClient = useQueryClient();
49
+ return useMutation({
50
+ mutationFn: ({ companyId, jobData }) => {
51
+ return this.post(`/company/${companyId}/job`, JSON.stringify(jobData), undefined, {
52
+ "Content-Type": "application/json",
53
+ });
54
+ },
55
+ onMutate: async ({ companyId, jobData }) => {
56
+ await queryClient.cancelQueries({ queryKey: ['jobs'] });
57
+ const previousJobs = queryClient.getQueryData(['jobs']);
58
+ queryClient.setQueryData(['jobs'], (oldData) => {
59
+ if (!oldData)
60
+ return [jobData];
61
+ if (oldData.pages) {
62
+ const firstPage = oldData.pages[0] || [];
63
+ return {
64
+ ...oldData,
65
+ pages: [[jobData, ...firstPage], ...oldData.pages.slice(1)],
66
+ };
67
+ }
68
+ if (Array.isArray(oldData)) {
69
+ return [jobData, ...oldData];
70
+ }
71
+ return oldData;
72
+ });
73
+ return { previousJobs };
74
+ },
75
+ onError: (err, variables, context) => {
76
+ if (context?.previousJobs) {
77
+ queryClient.setQueryData(['jobs'], context.previousJobs);
78
+ }
79
+ },
80
+ onSettled: (data, error, variables) => {
81
+ const { id: jobId } = data ?? {};
82
+ queryClient.invalidateQueries({ queryKey: ['jobs'] });
83
+ queryClient.invalidateQueries({ queryKey: ['job', jobId] });
84
+ },
85
+ });
86
+ };
87
+ AvroQueryClient.prototype.useUpdateJob = function () {
88
+ const queryClient = useQueryClient();
89
+ return useMutation({
90
+ mutationFn: ({ jobId, updates }) => {
91
+ return this.put(`/job/${jobId}`, JSON.stringify(updates), undefined, {
92
+ "Content-Type": "application/json",
93
+ });
94
+ },
95
+ onMutate: async ({ jobId, updates }) => {
96
+ await queryClient.cancelQueries({ queryKey: ['jobs'] });
97
+ await queryClient.cancelQueries({ queryKey: ['job', jobId] });
98
+ const previousJobs = queryClient.getQueryData(['jobs']);
99
+ const previousJob = queryClient.getQueryData(['job', jobId]);
100
+ queryClient.setQueryData(['job', jobId], (oldData) => oldData ? { ...oldData, ...updates } : undefined);
101
+ queryClient.setQueriesData({ queryKey: ['jobs'] }, (oldData) => {
102
+ if (!oldData)
103
+ return oldData;
104
+ if (oldData.pages) {
105
+ return {
106
+ ...oldData,
107
+ pages: oldData.pages.map((page) => page.map((job) => job.id === jobId ? { ...job, ...updates } : job)),
108
+ };
109
+ }
110
+ if (Array.isArray(oldData)) {
111
+ return oldData.map((job) => job.id === jobId ? { ...job, ...updates } : job);
112
+ }
113
+ return oldData;
114
+ });
115
+ return { previousJobs, previousJob };
116
+ },
117
+ onError: (err, variables, context) => {
118
+ const { jobId } = variables;
119
+ if (context?.previousJobs) {
120
+ queryClient.setQueryData(['jobs'], context.previousJobs);
121
+ }
122
+ if (context?.previousJob) {
123
+ queryClient.setQueryData(['job', jobId], context.previousJob);
124
+ }
125
+ },
126
+ onSettled: (data, error, variables) => {
127
+ const { jobId } = variables;
128
+ queryClient.invalidateQueries({ queryKey: ['jobs'] });
129
+ queryClient.invalidateQueries({ queryKey: ['job', jobId] });
130
+ },
131
+ });
132
+ };
133
+ AvroQueryClient.prototype.useDeleteJob = function () {
134
+ const queryClient = useQueryClient();
135
+ return useMutation({
136
+ mutationFn: async ({ jobId }) => {
137
+ return this.delete(`/job/${jobId}`, undefined, {
138
+ "Content-Type": "application/json",
139
+ });
140
+ },
141
+ onMutate: async ({ jobId }) => {
142
+ await queryClient.cancelQueries({ queryKey: ['jobs'] });
143
+ await queryClient.cancelQueries({ queryKey: ['job', jobId] });
144
+ const previousJobs = queryClient.getQueryData(['jobs']);
145
+ const previousJob = queryClient.getQueryData(['job', jobId]);
146
+ queryClient.setQueryData(['job', jobId], undefined);
147
+ queryClient.setQueriesData({ queryKey: ['jobs'] }, (oldData) => {
148
+ if (!oldData)
149
+ return oldData;
150
+ if (oldData.pages) {
151
+ const updatedPages = oldData.pages.map((page) => page.filter((job) => job.id !== jobId));
152
+ return { ...oldData, pages: updatedPages };
153
+ }
154
+ if (Array.isArray(oldData)) {
155
+ return oldData.filter((job) => job.id !== jobId);
156
+ }
157
+ return oldData;
158
+ });
159
+ return { previousJobs, previousJob };
160
+ },
161
+ onError: (_err, variables, context) => {
162
+ const { jobId } = variables;
163
+ if (context?.previousJobs) {
164
+ queryClient.setQueryData(['jobs'], context.previousJobs);
165
+ }
166
+ if (context?.previousJob) {
167
+ queryClient.setQueryData(['job', jobId], context.previousJob);
168
+ }
169
+ },
170
+ onSettled: (_data, _error, variables) => {
171
+ const { jobId } = variables;
172
+ queryClient.invalidateQueries({ queryKey: ['jobs'] });
173
+ queryClient.invalidateQueries({ queryKey: ['routes'] });
174
+ queryClient.invalidateQueries({ queryKey: ['job', jobId] });
175
+ queryClient.invalidateQueries({ queryKey: ['route'] });
176
+ },
177
+ });
178
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,30 @@
1
+ import { useInfiniteQuery, useQueryClient } from "@tanstack/react-query";
2
+ import { AvroQueryClient } from "../../client/QueryClient";
3
+ AvroQueryClient.prototype.useGetMessages = function (chatId, body) {
4
+ const queryClient = useQueryClient();
5
+ const result = useInfiniteQuery({
6
+ queryKey: [
7
+ 'messages',
8
+ chatId,
9
+ body.amt ?? 50,
10
+ body.known_ids ?? [],
11
+ body.unknown_ids ?? [],
12
+ body.query ?? '',
13
+ ],
14
+ initialPageParam: 0,
15
+ getNextPageParam: (lastPage, allPages) => {
16
+ if (lastPage.length < (body.amt ?? 50))
17
+ return undefined;
18
+ return allPages.flat().length; // next offset
19
+ },
20
+ queryFn: ({ pageParam = 0 }) => this.fetchMessages(chatId, { ...body, offset: pageParam }),
21
+ });
22
+ if (result.data) {
23
+ result.data.pages.forEach((data_page) => {
24
+ data_page.forEach((chat) => {
25
+ queryClient.setQueryData(['chat', chat.id], chat);
26
+ });
27
+ });
28
+ }
29
+ return result;
30
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,92 @@
1
+ import { useQueryClient, useInfiniteQuery, useMutation } from '@tanstack/react-query';
2
+ import { AvroQueryClient } from '../../client/QueryClient';
3
+ AvroQueryClient.prototype.useGetMonths = function (body) {
4
+ const queryClient = useQueryClient();
5
+ const result = useInfiniteQuery({
6
+ queryKey: [
7
+ 'months',
8
+ this.companyId,
9
+ body.amt ?? 50,
10
+ body.known_ids ?? [],
11
+ body.unknown_ids ?? [],
12
+ body.query ?? '',
13
+ body.unbilled ?? true,
14
+ body.billed ?? true,
15
+ body.paid ?? true,
16
+ body.jobId ?? '',
17
+ ],
18
+ initialPageParam: 0,
19
+ getNextPageParam: (lastPage, allPages) => {
20
+ if (lastPage.length < (body.amt ?? 50))
21
+ return undefined;
22
+ return allPages.flat().length; // next offset
23
+ },
24
+ queryFn: ({ pageParam = 0 }) => this.fetchMonths({ ...body, offset: pageParam }),
25
+ });
26
+ if (result.data) {
27
+ result.data.pages.forEach((data_page) => {
28
+ data_page.forEach((month) => {
29
+ queryClient.setQueryData(['month', month.id], month);
30
+ });
31
+ });
32
+ }
33
+ return result;
34
+ };
35
+ AvroQueryClient.prototype.useUpdateMonths = function () {
36
+ const queryClient = useQueryClient();
37
+ return useMutation({
38
+ mutationFn: async ({ months, action, }) => {
39
+ const monthIds = months.map(month => month.id);
40
+ return this.put(`/company/${this.companyId}/months`, JSON.stringify({
41
+ months: monthIds,
42
+ billed: true,
43
+ paid: action === "paid",
44
+ }), undefined, {
45
+ "Content-Type": "application/json",
46
+ });
47
+ },
48
+ onMutate: async ({ months, action }) => {
49
+ await queryClient.cancelQueries({ queryKey: ['months'] });
50
+ await queryClient.cancelQueries({ queryKey: ['month'] });
51
+ const previousMonths = queryClient.getQueryData(['months']);
52
+ const previousMonthObjs = months.map(month => queryClient.getQueryData(['month', month.id]));
53
+ const monthIds = months.map(month => month.id);
54
+ monthIds.forEach((monthId, idx) => {
55
+ queryClient.setQueryData(['month', monthId], (oldData) => {
56
+ return oldData
57
+ ? { ...oldData, billed: true, paid: action === "paid" }
58
+ : oldData;
59
+ });
60
+ });
61
+ queryClient.setQueriesData({ queryKey: ['months'] }, (oldData) => {
62
+ if (!oldData)
63
+ return oldData;
64
+ if (oldData.pages) {
65
+ const updatedPages = oldData.pages.map((page) => page.map((month) => monthIds.includes(month.id)
66
+ ? { ...month, billed: true, paid: action === "paid" }
67
+ : month));
68
+ return { ...oldData, pages: updatedPages };
69
+ }
70
+ if (Array.isArray(oldData)) {
71
+ return oldData.map((month) => monthIds.includes(month.id)
72
+ ? { ...month, billed: true, paid: action === "paid" }
73
+ : month);
74
+ }
75
+ return oldData;
76
+ });
77
+ return { previousMonths, previousMonthObjs };
78
+ },
79
+ onError: (err, variables, context) => {
80
+ if (context) {
81
+ queryClient.setQueryData(['months'], context.previousMonths);
82
+ context.previousMonthObjs.forEach((monthObj) => {
83
+ queryClient.setQueryData(['month', monthObj.id], monthObj);
84
+ });
85
+ }
86
+ },
87
+ onSettled: () => {
88
+ queryClient.invalidateQueries({ queryKey: ['months'] });
89
+ queryClient.invalidateQueries({ queryKey: ['month'] });
90
+ },
91
+ });
92
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import { useQuery, useQueryClient } from "@tanstack/react-query";
2
+ import { AvroQueryClient } from "../../client/QueryClient";
3
+ AvroQueryClient.prototype.useGetPlans = function (code) {
4
+ const queryClient = useQueryClient();
5
+ return useQuery({
6
+ queryKey: ['plans', code],
7
+ queryFn: async () => this.get(`/plans${code ? `?code=${code}` : ''}`),
8
+ });
9
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import { AvroQueryClient } from '../../client/QueryClient';
3
+ AvroQueryClient.prototype.useGetRoot = function () {
4
+ return useQuery({
5
+ queryKey: ['health'],
6
+ queryFn: () => this.get('/'),
7
+ });
8
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,168 @@
1
+ import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
2
+ import { AvroQueryClient } from '../../client/QueryClient';
3
+ AvroQueryClient.prototype.useGetRoutes = function (body, total, onProgress) {
4
+ return useQuery({
5
+ queryKey: ['routes', this.companyId, body.amt ?? 50, body.query ?? ""],
6
+ queryFn: async () => {
7
+ if (typeof total !== "number") {
8
+ return this.fetchRoutes({ ...body, offset: 0 });
9
+ }
10
+ onProgress?.(0);
11
+ const pageCount = body.amt ? Math.ceil(total / body.amt) : 0;
12
+ let completed = 0;
13
+ const promises = Array.from({ length: pageCount }, (_, i) => this.fetchRoutes({
14
+ ...body,
15
+ offset: i * (body.amt ?? 0),
16
+ }));
17
+ const trackedPromises = promises.map((promise) => promise.then((result) => {
18
+ completed++;
19
+ const fraction = completed / pageCount;
20
+ onProgress?.(fraction);
21
+ return result;
22
+ }));
23
+ const pages = await Promise.all(trackedPromises);
24
+ const routes = pages.flat();
25
+ return routes;
26
+ },
27
+ });
28
+ };
29
+ AvroQueryClient.prototype.useGetRoute = function (routeId) {
30
+ const queryClient = useQueryClient();
31
+ return useQuery({
32
+ queryKey: ['route', routeId],
33
+ queryFn: () => this.get(`/route/${routeId}`),
34
+ enabled: Boolean(routeId) && routeId.length > 0,
35
+ });
36
+ };
37
+ AvroQueryClient.prototype.useCreateRoute = function () {
38
+ const queryClient = useQueryClient();
39
+ return useMutation({
40
+ mutationFn: async ({ companyId, routeData }) => {
41
+ return this.post(`/company/${companyId}/route`, JSON.stringify(routeData), undefined, { "Content-Type": "application/json" });
42
+ },
43
+ onMutate: async ({ companyId, routeData }) => {
44
+ await queryClient.cancelQueries({ queryKey: ['routes'] });
45
+ const previousRoutes = queryClient.getQueryData(['routes']);
46
+ queryClient.setQueriesData({ queryKey: ['routes'] }, (oldData) => {
47
+ if (!oldData)
48
+ return oldData;
49
+ if (oldData.pages) {
50
+ return {
51
+ ...oldData,
52
+ pages: [
53
+ [{ ...routeData, id: 'temp-id' }],
54
+ ...oldData.pages,
55
+ ],
56
+ };
57
+ }
58
+ if (Array.isArray(oldData)) {
59
+ return [{ ...routeData, id: 'temp-id' }, ...oldData];
60
+ }
61
+ return oldData;
62
+ });
63
+ return { previousRoutes };
64
+ },
65
+ onError: (_err, _variables, context) => {
66
+ if (context?.previousRoutes) {
67
+ queryClient.setQueryData(['routes'], context.previousRoutes);
68
+ }
69
+ },
70
+ onSettled: (_data, _error, variables) => {
71
+ const { companyId } = variables;
72
+ queryClient.invalidateQueries({ queryKey: ['routes'] });
73
+ queryClient.invalidateQueries({ queryKey: ['jobs'] });
74
+ queryClient.invalidateQueries({ queryKey: ['job'] });
75
+ queryClient.invalidateQueries({ queryKey: ['company', companyId] });
76
+ },
77
+ });
78
+ };
79
+ AvroQueryClient.prototype.useUpdateRoute = function () {
80
+ const queryClient = useQueryClient();
81
+ return useMutation({
82
+ mutationFn: async ({ routeId, updates, }) => {
83
+ return this.put(`/route/${routeId}`, JSON.stringify(updates), undefined, { "Content-Type": "application/json" });
84
+ },
85
+ onMutate: async ({ routeId, updates }) => {
86
+ await queryClient.cancelQueries({ queryKey: ['route', routeId] });
87
+ await queryClient.cancelQueries({ queryKey: ['routes'] });
88
+ const previousRoute = queryClient.getQueryData(['route', routeId]);
89
+ const previousRoutes = queryClient.getQueryData(['routes']);
90
+ queryClient.setQueryData(['route', routeId], (oldData) => oldData ? { ...oldData, ...updates } : undefined);
91
+ queryClient.setQueriesData({ queryKey: ['routes'] }, (oldData) => {
92
+ if (!oldData)
93
+ return oldData;
94
+ if (oldData.pages) {
95
+ return {
96
+ ...oldData,
97
+ pages: oldData.pages.map((page) => page.map((route) => route.id === routeId ? { ...route, ...updates } : route)),
98
+ };
99
+ }
100
+ if (Array.isArray(oldData)) {
101
+ return oldData.map((route) => route.id === routeId ? { ...route, ...updates } : route);
102
+ }
103
+ return oldData;
104
+ });
105
+ return { previousRoute, previousRoutes };
106
+ },
107
+ onError: (_err, variables, context) => {
108
+ const { routeId } = variables;
109
+ if (context?.previousRoute) {
110
+ queryClient.setQueryData(['route', routeId], context.previousRoute);
111
+ }
112
+ if (context?.previousRoutes) {
113
+ queryClient.setQueryData(['routes'], context.previousRoutes);
114
+ }
115
+ },
116
+ onSettled: (_data, _error, variables) => {
117
+ const { routeId } = variables;
118
+ queryClient.invalidateQueries({ queryKey: ['routes'] });
119
+ queryClient.invalidateQueries({ queryKey: ['jobs'] });
120
+ queryClient.invalidateQueries({ queryKey: ['route', routeId] });
121
+ queryClient.invalidateQueries({ queryKey: ['job'] });
122
+ },
123
+ });
124
+ };
125
+ AvroQueryClient.prototype.useDeleteRoute = function () {
126
+ const queryClient = useQueryClient();
127
+ return useMutation({
128
+ mutationFn: async ({ routeId, }) => {
129
+ return this.delete(`/route/${routeId}`);
130
+ },
131
+ onMutate: async ({ routeId }) => {
132
+ await queryClient.cancelQueries({ queryKey: ['routes'] });
133
+ await queryClient.cancelQueries({ queryKey: ['route', routeId] });
134
+ const previousRoutes = queryClient.getQueryData(['routes']);
135
+ const previousRoute = queryClient.getQueryData(['route', routeId]);
136
+ queryClient.setQueryData(['route', routeId], undefined);
137
+ queryClient.setQueriesData({ queryKey: ['routes'] }, (oldData) => {
138
+ if (!oldData)
139
+ return oldData;
140
+ if (oldData.pages) {
141
+ const updatedPages = oldData.pages.map((page) => page.filter((route) => route.id !== routeId));
142
+ return { ...oldData, pages: updatedPages };
143
+ }
144
+ if (Array.isArray(oldData)) {
145
+ return oldData.filter((route) => route.id !== routeId);
146
+ }
147
+ return oldData;
148
+ });
149
+ return { previousRoutes, previousRoute };
150
+ },
151
+ onError: (_err, variables, context) => {
152
+ const { routeId } = variables;
153
+ if (context?.previousRoutes) {
154
+ queryClient.setQueryData(['routes'], context.previousRoutes);
155
+ }
156
+ if (context?.previousRoute) {
157
+ queryClient.setQueryData(['route', routeId], context.previousRoute);
158
+ }
159
+ },
160
+ onSettled: (_data, _error, variables) => {
161
+ const { routeId } = variables;
162
+ queryClient.invalidateQueries({ queryKey: ['routes'] });
163
+ queryClient.invalidateQueries({ queryKey: ['jobs'] });
164
+ queryClient.invalidateQueries({ queryKey: ['route', routeId] });
165
+ queryClient.invalidateQueries({ queryKey: ['job'] });
166
+ },
167
+ });
168
+ };
@@ -0,0 +1 @@
1
+ export {};