From d508df2afb60eb6895fab3d64c2d257977a8f218 Mon Sep 17 00:00:00 2001 From: Rafael Lopes Date: Tue, 21 Jul 2026 16:37:20 -0300 Subject: [PATCH] =?UTF-8?q?FEAT:=20Exibe=20m=C3=ADdia=20recebida=20no=20ch?= =?UTF-8?q?at=20via=20URL=20direta=20(image,=20audio,=20video,=20document)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/chat/components/ChatWindow.jsx | 27 ++++------------------ src/modules/chat/hooks/useChat.js | 6 ++++- 2 files changed, 10 insertions(+), 23 deletions(-) diff --git a/src/modules/chat/components/ChatWindow.jsx b/src/modules/chat/components/ChatWindow.jsx index e63d98b..0bba7b6 100644 --- a/src/modules/chat/components/ChatWindow.jsx +++ b/src/modules/chat/components/ChatWindow.jsx @@ -91,21 +91,14 @@ function DateSeparator({ label }) { ); } -function MediaRenderer({ message, contactId, onLoadMedia, isAgent }) { - const mediaUrl = useMemo(() => getMediaUrl(message.media), [message.media]); - const mimetype = message.media?.mimetype || ''; +function MediaRenderer({ message, isAgent }) { + const mediaUrl = message.mediaUrl || useMemo(() => getMediaUrl(message.media), [message.media]); + const mimetype = message.mediaMimeType || message.media?.mimetype || ''; const filename = message.media?.filename || 'arquivo'; - useEffect(() => { - if (!message.hasMedia || message.media?.data || message.mediaLoading || message.mediaError) { - return; - } - onLoadMedia?.(contactId, message.id); - }, [contactId, message, onLoadMedia]); + if (!message.hasMedia && !mediaUrl) return null; - if (!message.hasMedia && !message.media) return null; - - if (message.mediaLoading || (!message.media?.data && !message.mediaError)) { + if (!mediaUrl) { return (
- Não foi possível carregar a mídia. - - ); - } - if (mimetype.startsWith('image/')) { return ( @@ -600,8 +585,6 @@ export function ChatWindow({ > {parsedText.senderLabel ? ( diff --git a/src/modules/chat/hooks/useChat.js b/src/modules/chat/hooks/useChat.js index 547390e..d7a993b 100644 --- a/src/modules/chat/hooks/useChat.js +++ b/src/modules/chat/hooks/useChat.js @@ -96,14 +96,18 @@ function normalizeChat(chat) { function normalizeMessage(message) { const id = getSerializedId(message.id) || message.id || `msg-${Date.now()}`; const sender = message.sender || (message.fromMe ? 'agent' : 'customer'); + const mediaUrl = message.mediaUrl || message.media_path || null; + const mediaMimeType = message.mediaMimeType || message.media_mime_type || null; return { id, chatId: message.from || message.to || message.chatId, sender, text: message.body ?? message.text ?? '', timestamp: message.timestamp, - hasMedia: Boolean(message.hasMedia || message.media), + hasMedia: Boolean(message.hasMedia || message.media || mediaUrl), media: message.media || null, + mediaUrl, + mediaMimeType, mediaLoading: false, mediaError: null, };