From 4e281365388e11b121f9da6a81d92d754abb99d7 Mon Sep 17 00:00:00 2001 From: asepharyana Date: Sun, 26 Jul 2026 14:42:16 +0700 Subject: [PATCH] feat: enhance image message rendering with metadata extraction and error handling --- .../src/features/messages/messages-panel.tsx | 53 ++++++++++++++----- 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/services/frontend/src/features/messages/messages-panel.tsx b/services/frontend/src/features/messages/messages-panel.tsx index 64a34e7..fc6a600 100644 --- a/services/frontend/src/features/messages/messages-panel.tsx +++ b/services/frontend/src/features/messages/messages-panel.tsx @@ -370,18 +370,47 @@ export function MessagesPanel({ guildId }: { guildId: string }) { ) : viewTab === "images" ? (
- {imageMessages.map((msg) => ( -
- {msg.content && ( -
- {msg.username}: {msg.content} -
- )} -
- ))} + {imageMessages.map((msg) => { + // Extract image URLs from metadata + let imageUrl: string | null = null; + try { + const meta = JSON.parse(msg.metadata ?? "{}"); + const attachments: Array<{ url: string; contentType?: string }> = + meta.attachments ?? []; + const img = attachments.find((a) => + a.contentType?.startsWith("image/"), + ); + imageUrl = img?.url ?? null; + } catch { + // metadata is malformed + } + + return ( +
+ {imageUrl ? ( + {msg.content + ) : ( +
+ No image +
+ )} + {msg.content && ( +
+ {msg.username}: {msg.content} +
+ )} +
+ ); + })}
) : ( /* Review tab */