From 43224fa9d3aa855a0d84a2242e5e8d9d53617375 Mon Sep 17 00:00:00 2001 From: Alex <49969959+alexzhang1030@users.noreply.github.com> Date: Sat, 3 Dec 2022 00:55:52 +0800 Subject: [PATCH] fix: incorrect logic in useStatusActions (#295) --- composables/status.ts | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/composables/status.ts b/composables/status.ts index a559cf77..f4ee29c5 100644 --- a/composables/status.ts +++ b/composables/status.ts @@ -25,22 +25,20 @@ export function useStatusActions(props: StatusActionsProps) { translation: false, }) - async function toggleStatusAction(action: Action, newStatus: () => Promise, countField?: CountField) { + async function toggleStatusAction(action: Action, fetchNewStatus: () => Promise, countField?: CountField) { // check login if (!checkLogin()) return + isLoading[action] = true + fetchNewStatus().then((newStatus) => { + Object.assign(status, newStatus) + }).finally(() => { + isLoading[action] = false + }) // Optimistic update status[action] = !status[action] if (countField) status[countField] += status[action] ? 1 : -1 - - try { - isLoading[action] = true - Object.assign(status, await newStatus()) - } - finally { - isLoading[action] = false - } } const toggleReblog = () => toggleStatusAction( 'reblogged',