Portal/rsconcept/frontend/src/features/library/backend/use-rename-location.ts

26 lines
830 B
TypeScript

import { useMutation, useQueryClient } from '@tanstack/react-query';
import { KEYS } from '@/backend/configuration';
import { libraryApi } from './api';
import { type IRenameLocationDTO } from './types';
export const useRenameLocation = () => {
const client = useQueryClient();
const mutation = useMutation({
mutationKey: [libraryApi.baseKey, 'rename-location'],
mutationFn: libraryApi.renameLocation,
onSuccess: async () => {
await Promise.allSettled([
client.invalidateQueries({ queryKey: [KEYS.library] }),
client.invalidateQueries({ queryKey: [KEYS.rsform] }),
client.invalidateQueries({ queryKey: [KEYS.oss] })
]);
},
onError: () => client.invalidateQueries()
});
return {
renameLocation: (data: IRenameLocationDTO) => mutation.mutateAsync(data)
};
};