Files

26 lines
783 B
TypeScript

import { useMutation, useQueryClient } from "@tanstack/react-query";
import { LocalDatabase } from "@/data/api/local-database";
export const useFavStatusMutation = function () {
const queryClient = useQueryClient();
// Queries
const query = useMutation({
mutationFn: async (favStatus: { id: string; status: boolean }) => {
const { id, status } = favStatus;
return await postToLocal(id, status);
},
onSuccess: (data, variables) => {
queryClient.setQueryData([`works:fav:${variables.id}`], variables.status);
queryClient.invalidateQueries({ queryKey: ["favs"] });
},
});
return query;
};
async function postToLocal(id: string, status: boolean) {
const db = new LocalDatabase();
return await db.setFavoriteStatus(id, status);
}