mirror of
https://github.com/expo/appjs25-eas-update-workshop-code.git
synced 2026-11-15 03:28:09 -10:00
26 lines
783 B
TypeScript
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);
|
|
}
|