import { useMutation, useQueryClient } from '@tanstack/react-query'; import { createPortfolio, updatePortfolio, deletePortfolio } from '../api/portfolioApi'; import { useNavigate } from 'react-router-dom'; export function usePortfolioMutations() { const queryClient = useQueryClient(); const navigate = useNavigate(); const create = useMutation({ mutationFn: (data: { name: string; description?: string; currency?: string }) => createPortfolio(data), onSuccess: (res) => { queryClient.invalidateQueries({ queryKey: ['portfolios'] }); navigate(`/portfolios/${res.data.id}`); }, }); const update = useMutation({ mutationFn: ({ id, data, }: { id: number; data: { name?: string; description?: string; currency?: string; }; }) => updatePortfolio(id, data), onSuccess: (_, { id }) => { queryClient.invalidateQueries({ queryKey: ['portfolios'] }); queryClient.invalidateQueries({ queryKey: ['portfolio', id] }); }, }); const remove = useMutation({ mutationFn: (id: number) => deletePortfolio(id), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['portfolios'] }); navigate('/portfolios'); }, }); return { create, update, remove }; }