diff --git a/web/src/components/MessageList.tsx b/web/src/components/MessageList.tsx index 06504c8..057bd39 100644 --- a/web/src/components/MessageList.tsx +++ b/web/src/components/MessageList.tsx @@ -378,7 +378,7 @@ export function MessageList() { event.preventDefault(); void ensureReactionsLoaded(message.id); const pos = getSafeContextPosition(event.clientX, event.clientY, 220, 220); - setCtx({ x: pos.x, y: pos.y, messageId: message.id, attachmentUrl: null }); + setCtx({ x: pos.x, y: pos.y, messageId: message.id, attachmentUrl: getMessageAttachmentUrl(message) }); }} > {selectedIds.size > 0 ? ( @@ -876,6 +876,17 @@ function canDeleteForEveryone( return message.sender_id === meId; } +function getMessageAttachmentUrl(message: Message): string | null { + const mediaTypes = new Set(["image", "video", "audio", "voice", "file", "circle_video"]); + if (!mediaTypes.has(message.type)) { + return null; + } + if (!message.text || !/^https?:\/\//i.test(message.text)) { + return null; + } + return message.text; +} + function extractFileName(url: string): string { try { const parsed = new URL(url);