diff --git a/public/app.js b/public/app.js index 0027a69..3deb8e0 100644 --- a/public/app.js +++ b/public/app.js @@ -832,7 +832,7 @@ const initApp = () => { conversationList.innerHTML = ''; chat.messages.forEach(msg => { - appendMessageUI(msg.role, msg.content); + appendMessageUI(msg.role, msg.content, msg.media); }); scrollToBottom(); @@ -872,7 +872,7 @@ const initApp = () => { // FLUXO DO CHAT & RENDERIZAÇÃO // ========================================================================== - const appendMessageUI = (role, content) => { + const appendMessageUI = (role, content, media = null) => { const isUser = role === 'user'; const row = document.createElement('div'); row.className = `message-row ${role}`; @@ -885,12 +885,86 @@ const initApp = () => { if (isUser) { contentHtml = `

${escapeHtml(content).replace(/\n/g, '
')}

`; } else { - contentHtml = marked.parse(content); + if (media) { + if (media.type === 'image') { + contentHtml = ` +
+
+ Ilustração gerada +
+

✨ "${escapeHtml(media.originalPrompt)}"

+
+ + + + + Salvar na Galeria + +
+
+ `; + } else if (media.type === 'audio') { + const audioId = 'audio_' + Date.now() + '_' + Math.floor(Math.random() * 10000); + contentHtml = ` +
+
+ + +
+
+
+
+
+ 0:00 +
+

🎵 "${escapeHtml(media.originalPrompt)}"

+
+ + + + + Baixar Música + +
+
+ `; + } else if (media.type === 'video') { + contentHtml = ` +
+
+ +
+

🎥 "${escapeHtml(media.originalPrompt)}"

+
+ + + + + Salvar Vídeo + +
+
+ `; + } + } else { + if (content.trim().startsWith('
')) { + contentHtml = content; + } else { + contentHtml = marked.parse(content); + } + } } const actionsHtml = !isUser ? `
- -