const useFollowUser = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: ({ walletAddress }: PutFollowUser["req"]) => {
const userApi = new UserAPI();
return userApi.followUser({ walletAddress });
},
onSuccess: (_, { walletAddress }) => {
// oldFollowers does not have its type inferred as string[]
queryClient.setQueryData(queries.user.followers().queryKey, (oldFollowers) => [...oldFollowers, walletAddress]);
}
});
};
const user = createQueryKeys("user", {
followers: () => ({
queryKey: ["user", "followers"],
queryFn: () => {
const userApi = new UserAPI();
return userApi.getFollowers(); // this has the return type of string[]
}
}),
});
const useFollowUser = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: ({ walletAddress }: PutFollowUser["req"]) => {
const userApi = new UserAPI();
return userApi.followUser({ walletAddress });
},
onSuccess: (_, { walletAddress }) => {
// oldFollowers does not have its type inferred as string[]
queryClient.setQueryData(queries.user.followers().queryKey, (oldFollowers) => [...oldFollowers, walletAddress]);
}
});
};
const user = createQueryKeys("user", {
followers: () => ({
queryKey: ["user", "followers"],
queryFn: () => {
const userApi = new UserAPI();
return userApi.getFollowers(); // this has the return type of string[]
}
}),
});