feat: adiciona barra de botoes de atalho rapido de modo (musica, video, imagem, chat) no rodape com validacao cruzada

This commit is contained in:
2026-05-26 17:59:57 +00:00
parent 63ac641c5f
commit 19552a6078
4 changed files with 173 additions and 6 deletions
+35 -2
View File
@@ -1173,7 +1173,7 @@ const initApp = () => {
};
// Função principal de envio de mensagens
const handleSendMessage = async (text, skipUserAppend = false, files = null) => {
const handleSendMessage = async (text, skipUserAppend = false, files = null, forcedIntent = null) => {
if (!text && (!files || files.length === 0)) return;
// Se não recebe files por parâmetro, usa os anexados globalmente
@@ -1282,7 +1282,7 @@ const initApp = () => {
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ messages: messagesPayload })
body: JSON.stringify({ messages: messagesPayload, forcedIntent: forcedIntent })
});
if (!response.ok) {
@@ -1521,6 +1521,39 @@ const initApp = () => {
handleSendMessage(text);
});
// Botões de Modos Rápidos de Prompt (Rodapé)
document.querySelectorAll('.btn-prompt-mode').forEach(btn => {
btn.addEventListener('click', () => {
const mode = btn.dataset.mode;
const text = userInput.value.trim();
// Se não houver texto digitado, insere um exemplo de prompt baseado na modalidade
if (!text) {
let suggestion = "";
if (mode === 'AUDIO') {
suggestion = "Crie uma música pedagógica alegre e animada sobre ";
} else if (mode === 'VIDEO') {
suggestion = "Crie um roteiro detalhado para um vídeo educativo sobre ";
} else if (mode === 'IMAGE') {
suggestion = "Crie uma ilustração pedagógica com cores vibrantes mostrando ";
} else if (mode === 'TEXT') {
suggestion = "Escreva uma história educativa infantil curta sobre ";
}
userInput.value = suggestion;
userInput.focus();
// Ajustar altura do textarea para acomodar a sugestão
userInput.style.height = 'auto';
userInput.style.height = userInput.scrollHeight + 'px';
btnSend.disabled = false;
return;
}
// Se houver texto, envia imediatamente forçando o modo correspondente
handleSendMessage(text, false, null, mode);
});
});
// Sugestões de Prompt Rápidas
suggestionCards.forEach(card => {
card.addEventListener('click', () => {