FIX: Corrige duplicação de mídia e exibição de nome de arquivo (Bug 1 e 3) #2
@ -94,7 +94,7 @@ function DateSeparator({ label }) {
|
|||||||
function MediaRenderer({ message, isAgent }) {
|
function MediaRenderer({ message, isAgent }) {
|
||||||
const mediaUrl = message.mediaUrl || useMemo(() => getMediaUrl(message.media), [message.media]);
|
const mediaUrl = message.mediaUrl || useMemo(() => getMediaUrl(message.media), [message.media]);
|
||||||
const mimetype = message.mediaMimeType || message.media?.mimetype || '';
|
const mimetype = message.mediaMimeType || message.media?.mimetype || '';
|
||||||
const filename = message.media?.filename || 'arquivo';
|
const filename = message.mediaFilename || message.media?.filename || message.text || 'arquivo';
|
||||||
|
|
||||||
if (!message.hasMedia && !mediaUrl) return null;
|
if (!message.hasMedia && !mediaUrl) return null;
|
||||||
|
|
||||||
|
|||||||
@ -99,6 +99,7 @@ function normalizeMessage(message) {
|
|||||||
const sender = message.sender || (message.fromMe ? 'agent' : 'customer');
|
const sender = message.sender || (message.fromMe ? 'agent' : 'customer');
|
||||||
const mediaUrl = message.mediaUrl || message.media_path || null;
|
const mediaUrl = message.mediaUrl || message.media_path || null;
|
||||||
const mediaMimeType = message.mediaMimeType || message.media_mime_type || null;
|
const mediaMimeType = message.mediaMimeType || message.media_mime_type || null;
|
||||||
|
const mediaFilename = message.mediaFilename || message.media_filename || message.media?.filename || null;
|
||||||
return {
|
return {
|
||||||
id,
|
id,
|
||||||
chatId: message.from || message.to || message.chatId,
|
chatId: message.from || message.to || message.chatId,
|
||||||
@ -109,6 +110,7 @@ function normalizeMessage(message) {
|
|||||||
media: message.media || null,
|
media: message.media || null,
|
||||||
mediaUrl,
|
mediaUrl,
|
||||||
mediaMimeType,
|
mediaMimeType,
|
||||||
|
mediaFilename,
|
||||||
mediaLoading: false,
|
mediaLoading: false,
|
||||||
mediaError: null,
|
mediaError: null,
|
||||||
};
|
};
|
||||||
@ -754,11 +756,12 @@ export function useChat() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const fileToSend = attachedFile || null;
|
const fileToSend = attachedFile || null;
|
||||||
|
const optimisticText = trimmed || (fileToSend ? (fileToSend.name || '[mídia]') : '');
|
||||||
const newMessage = {
|
const newMessage = {
|
||||||
id: `temp-${Date.now()}`,
|
id: `temp-${Date.now()}`,
|
||||||
chatId: contactId,
|
chatId: contactId,
|
||||||
sender: 'agent',
|
sender: 'agent',
|
||||||
text: trimmed,
|
text: optimisticText,
|
||||||
timestamp: Math.floor(Date.now() / 1000),
|
timestamp: Math.floor(Date.now() / 1000),
|
||||||
hasMedia: Boolean(fileToSend),
|
hasMedia: Boolean(fileToSend),
|
||||||
mediaUrl: fileToSend?.previewUrl || null,
|
mediaUrl: fileToSend?.previewUrl || null,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user