const mutation = useMutation({
mutationFn: fileService.deleteFile,
mutationKey: ["delete", id],
onSettled: async () => {
queryClient.invalidateQueries({
queryKey: filesKeys.getFilesKey(),
});
},
onMutate: async () => {
const previousFiles = queryClient.getQueryData<File[]>(filesKeys.getFilesKey());
const newFiles = previousFiles?.filter((file) => file.fileId.toString() !== id);
queryClient.setQueryData(filesKeys.getFilesKey(), newFiles ?? []);
return { previousFiles };
},
onError: (_error, _variables, context) => {
if (context) {
queryClient.setQueryData(filesKeys.getFilesKey(), context.previousFiles);
}
message.error({
content: "Error deleting file",
key: "delete-file",
});
},
});
const mutation = useMutation({
mutationFn: fileService.deleteFile,
mutationKey: ["delete", id],
onSettled: async () => {
queryClient.invalidateQueries({
queryKey: filesKeys.getFilesKey(),
});
},
onMutate: async () => {
const previousFiles = queryClient.getQueryData<File[]>(filesKeys.getFilesKey());
const newFiles = previousFiles?.filter((file) => file.fileId.toString() !== id);
queryClient.setQueryData(filesKeys.getFilesKey(), newFiles ?? []);
return { previousFiles };
},
onError: (_error, _variables, context) => {
if (context) {
queryClient.setQueryData(filesKeys.getFilesKey(), context.previousFiles);
}
message.error({
content: "Error deleting file",
key: "delete-file",
});
},
});