A social knowledge tool for researchers built on ATProto
1import { useMutation, useQueryClient } from '@tanstack/react-query';
2import { updateNoteCard } from '../dal';
3import { cardKeys } from '@/features/cards/lib/cardKeys';
4import { collectionKeys } from '@/features/collections/lib/collectionKeys';
5import { feedKeys } from '@/features/feeds/lib/feedKeys';
6import { noteKeys } from '../noteKeys';
7
8export default function useUpdateNote() {
9 const queryClient = useQueryClient();
10
11 const mutation = useMutation({
12 mutationFn: (note: { cardId: string; note: string }) => {
13 return updateNoteCard(note);
14 },
15
16 onSuccess: (data) => {
17 queryClient.invalidateQueries({ queryKey: cardKeys.card(data.cardId) });
18 queryClient.invalidateQueries({ queryKey: cardKeys.infinite() });
19 queryClient.invalidateQueries({
20 queryKey: cardKeys.infinite(data.cardId),
21 });
22 queryClient.invalidateQueries({ queryKey: cardKeys.all() });
23 queryClient.invalidateQueries({ queryKey: noteKeys.all() });
24 queryClient.invalidateQueries({ queryKey: feedKeys.all() });
25 queryClient.invalidateQueries({ queryKey: collectionKeys.all() });
26 },
27 });
28
29 return mutation;
30}