Files
yaak/src-web/hooks/useUpdateAnyRequest.ts
2023-03-20 13:16:58 -07:00

26 lines
821 B
TypeScript

import { useMutation } from '@tanstack/react-query';
import { invoke } from '@tauri-apps/api';
import type { HttpRequest } from '../lib/models';
import { getRequest } from '../lib/store';
export function useUpdateAnyRequest() {
return useMutation<void, unknown, Partial<HttpRequest> & { id: string }>({
mutationFn: async (patch) => {
const request = await getRequest(patch.id);
if (request === null) {
throw new Error("Can't update a null request");
}
const updatedRequest = { ...request, ...patch };
await invoke('update_request', {
request: {
...updatedRequest,
createdAt: updatedRequest.createdAt.toISOString().replace('Z', ''),
updatedAt: updatedRequest.updatedAt.toISOString().replace('Z', ''),
},
});
},
});
}