diff --git a/packages/web/src/components/chat/Message.tsx b/packages/web/src/components/chat/Message.tsx index 61b0dfb8..fc7c27e3 100644 --- a/packages/web/src/components/chat/Message.tsx +++ b/packages/web/src/components/chat/Message.tsx @@ -132,6 +132,13 @@ export function Message({ message, isCompact, isFirstInGroup, previousMessageId const pending = isPendingMessage(message) ? message.__pending : null; const showInteractions = !pending; + const transfersForRow = useTransferStore((s) => s.transfers); + const anyTransferTerminallyBad = !!pending && pending.transferIds.some((tid) => { + const t = transfersForRow.get(tid); + return t && (t.state === 'failed' || t.state === 'aborted'); + }); + const showRetryDiscardRow = pending?.state === 'failed' || anyTransferTerminallyBad; + const channelKey: string = isPendingMessage(message) ? message.channelId || message.dmChannelId || '' : message.channelId || (message as MessageWithUser & { dmChannelId?: string }).dmChannelId || ''; @@ -503,7 +510,7 @@ export function Message({ message, isCompact, isFirstInGroup, previousMessageId )} {/* Failed-state retry/discard row */} - {pending?.state === 'failed' && ( + {showRetryDiscardRow && pending && (