A social knowledge tool for researchers built on ATProto
at main 1.1 kB view raw
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}