All files / src/hooks/mutations useProMutations.ts

100% Statements 8/8
100% Branches 0/0
100% Functions 4/4
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29            4x   4x   2x 1x             1x 1x 1x       1x        
import { useMutation, useQueryClient } from "@tanstack/react-query";
import { notify } from "../../lib/notify";
import { proApi, type Pro } from "../../lib/api";
import { queryKeys } from "../../lib/query-keys";
 
export function useUpdateProProfile(proId: string) {
	const queryClient = useQueryClient();
 
	return useMutation({
		mutationFn: async (data: Partial<Pro>) => {
			const response = await proApi.updateProfile(proId, data);
			return response.data;
		},
 
		// For profile updates, don't use optimistic updates (too complex)
		// Just show loading state and refetch on success
		onSuccess: (data) => {
			// Update pro cache with new data
			queryClient.setQueryData(queryKeys.pro.profile(proId), data);
			queryClient.invalidateQueries({ queryKey: queryKeys.pro.me() });
			notify.success("Profile updated");
		},
 
		onError: () => {
			notify.error("Failed to update profile");
		},
	});
}