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, };