From 6fe1955c9fb31a95e48ba098428eda7d2485aa89 Mon Sep 17 00:00:00 2001 From: "Sven (AAMOS AI)" Date: Mon, 17 Aug 2026 21:38:48 +0700 Subject: [PATCH] feat(mobile): MIKRO POLISH-3 optimistisk favoritmarkering med rollback --- apps/mobile/src/app/recipe/[id].tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/mobile/src/app/recipe/[id].tsx b/apps/mobile/src/app/recipe/[id].tsx index d013233..e4019b1 100644 --- a/apps/mobile/src/app/recipe/[id].tsx +++ b/apps/mobile/src/app/recipe/[id].tsx @@ -88,14 +88,14 @@ export default function RecipeScreen() { api(`/v1/recipes/${id}/favorite`, { method: isFavorite ? "DELETE" : "POST" }), onMutate: async (isFavorite: boolean) => { await queryClient.cancelQueries({ queryKey: ["recipe", id] }); - const previous = queryClient.getQueryData(["recipe", id]); + const prev = queryClient.getQueryData(["recipe", id]); queryClient.setQueryData(["recipe", id], (old) => old ? { ...old, isFavorite: !isFavorite } : old, ); - return { previous }; + return { prev }; }, - onError: (err, _isFavorite, context) => { - if (context?.previous) queryClient.setQueryData(["recipe", id], context.previous); + onError: (err, _vars, ctx) => { + if (ctx?.prev) queryClient.setQueryData(["recipe", id], ctx.prev); Alert.alert(t("common.oops"), err instanceof Error ? err.message : t("common.error")); }, onSettled: () => void queryClient.invalidateQueries({ queryKey: ["recipe", id] }),