From fc11976ae296816e21c64686949530fce6061c81 Mon Sep 17 00:00:00 2001 From: Euigyom Kim Date: Wed, 28 Jan 2026 11:08:10 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=A6=AC=EB=85=B8=ED=8A=B8=20=EB=A6=AC?= =?UTF-8?q?=EC=95=A1=EC=85=98=20=EB=8C=80=EC=83=81=20=EC=A0=95=EA=B7=9C?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 4b48271..1444171 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -868,24 +868,25 @@ export const App = () => { setActionError("리액션은 미스키 계정에서만 사용할 수 있습니다."); return; } - if (status.myReaction && status.myReaction !== reaction.name) { + const target = status.reblog ?? status; + if (target.myReaction && target.myReaction !== reaction.name) { setActionError("이미 리액션을 남겼습니다. 먼저 취소해주세요."); return; } setActionError(null); - const isRemoving = status.myReaction === reaction.name; - const optimistic = buildOptimisticReactionStatus(status, reaction, isRemoving); + const isRemoving = target.myReaction === reaction.name; + const optimistic = buildOptimisticReactionStatus(target, reaction, isRemoving); updateStatusEverywhere(account.id, optimistic); try { - const updated = isRemoving - ? await services.api.deleteReaction(account, status.id) - : await services.api.createReaction(account, status.id, reaction.name); + const updated = isRemoving + ? await services.api.deleteReaction(account, target.id) + : await services.api.createReaction(account, target.id, reaction.name); if (!hasSameReactions(updated, optimistic)) { updateStatusEverywhere(account.id, updated); } } catch (err) { setActionError(err instanceof Error ? err.message : "리액션 처리에 실패했습니다."); - updateStatusEverywhere(account.id, status); + updateStatusEverywhere(account.id, target); } }, [services.api, updateStatusEverywhere]