From 6b59d61bf39ccd7c82fb41c3ad88d96a536aa448 Mon Sep 17 00:00:00 2001 From: Kyle Pope Date: Wed, 4 Mar 2026 21:22:51 +0800 Subject: [PATCH] Fix connection mutation delays: make all onSuccess fire-and-forget sendRequestMutation and cancelMutation were awaiting query invalidation in onSuccess, which blocked mutateAsync until 3+ network refetches completed (~1s+ delay). This caused noticeable lag on send/link/cancel operations. Now all mutations use sync fire-and-forget invalidation, matching respondMutation's pattern. Co-Authored-By: Claude Opus 4.6 --- frontend/src/hooks/useConnections.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/frontend/src/hooks/useConnections.ts b/frontend/src/hooks/useConnections.ts index 919abed..76ecf72 100644 --- a/frontend/src/hooks/useConnections.ts +++ b/frontend/src/hooks/useConnections.ts @@ -47,8 +47,9 @@ export function useConnections() { }); return data; }, - onSuccess: async () => { - await queryClient.invalidateQueries({ queryKey: ['connections'] }); + onSuccess: () => { + // Fire-and-forget — don't block mutateAsync on query refetches + queryClient.invalidateQueries({ queryKey: ['connections'] }); }, }); @@ -72,11 +73,10 @@ export function useConnections() { const { data } = await api.put(`/connections/requests/${requestId}/cancel`); return data; }, - onSuccess: async () => { - await Promise.all([ - queryClient.invalidateQueries({ queryKey: ['connections'] }), - queryClient.invalidateQueries({ queryKey: ['notifications'] }), - ]); + onSuccess: () => { + // Fire-and-forget — don't block mutateAsync on query refetches + queryClient.invalidateQueries({ queryKey: ['connections'] }); + queryClient.invalidateQueries({ queryKey: ['notifications'] }); }, });