fix(web): in-session pause/resume preserves File ref; aborted transfers flip bubble to failed

This commit is contained in:
Jannis Braun
2026-05-02 18:03:12 +02:00
parent 403c6e9075
commit a58b7459fb
3 changed files with 44 additions and 5 deletions
+8 -1
View File
@@ -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 && (
<div className="mt-1 flex gap-2 px-2 py-1 rounded-md bg-accent-rose/15 text-xs">
<button
onClick={async () => {