feat: alinha tags da sidebar dinamicamente e implementa cards de sugestao tematica de boas-vindas
This commit is contained in:
+36
-8
@@ -150,9 +150,18 @@ const initApp = () => {
|
|||||||
updateModelBadge();
|
updateModelBadge();
|
||||||
|
|
||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
// MODAL DE TAGS
|
// MODAL DE TAGS & SIDEBAR TAGS
|
||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
const AVAILABLE_TAGS = ['HTPC', 'ATA', 'Planejamento', 'Formação', 'Projeto', 'Relatório', 'Sugestão', 'Dúvida'];
|
const AVAILABLE_TAGS = [
|
||||||
|
{ id: 'relatorios', label: '📋 Relatórios' },
|
||||||
|
{ id: 'planejamento', label: '📝 Planejamento' },
|
||||||
|
{ id: 'mindlab', label: '🧠 Mind Lab' },
|
||||||
|
{ id: 'estudos', label: '📚 Estudos' },
|
||||||
|
{ id: 'htpc', label: '💻 HTPC' },
|
||||||
|
{ id: 'ata', label: '📝 ATA' },
|
||||||
|
{ id: 'sugestao', label: '💡 Sugestão' },
|
||||||
|
{ id: 'duvida', label: '❓ Dúvida' }
|
||||||
|
];
|
||||||
const modalTagOverlay = document.getElementById('modalTagOverlay');
|
const modalTagOverlay = document.getElementById('modalTagOverlay');
|
||||||
const modalTagList = document.getElementById('modalTagList');
|
const modalTagList = document.getElementById('modalTagList');
|
||||||
const modalTagClose = document.getElementById('modalTagClose');
|
const modalTagClose = document.getElementById('modalTagClose');
|
||||||
@@ -175,9 +184,9 @@ const initApp = () => {
|
|||||||
|
|
||||||
const renderTagModalList = () => {
|
const renderTagModalList = () => {
|
||||||
modalTagList.innerHTML = AVAILABLE_TAGS.map(tag => `
|
modalTagList.innerHTML = AVAILABLE_TAGS.map(tag => `
|
||||||
<div class="modal-tag-item ${selectedTagsState.includes(tag) ? 'selected' : ''}" data-tag="${tag}">
|
<div class="modal-tag-item ${selectedTagsState.includes(tag.id) ? 'selected' : ''}" data-tag="${tag.id}">
|
||||||
<input type="checkbox" ${selectedTagsState.includes(tag) ? 'checked' : ''}>
|
<input type="checkbox" ${selectedTagsState.includes(tag.id) ? 'checked' : ''}>
|
||||||
<span>${tag}</span>
|
<span>${tag.label}</span>
|
||||||
</div>
|
</div>
|
||||||
`).join('');
|
`).join('');
|
||||||
|
|
||||||
@@ -194,6 +203,17 @@ const initApp = () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const renderSidebarTags = () => {
|
||||||
|
if (!sidebarTags) return;
|
||||||
|
let tagsHtml = `<button class="tag-filter ${activeTag === 'all' ? 'active' : ''}" data-tag="all">Todas</button>`;
|
||||||
|
tagsHtml += AVAILABLE_TAGS.map(tag => `
|
||||||
|
<button class="tag-filter ${activeTag === tag.id ? 'active' : ''}" data-tag="${tag.id}">
|
||||||
|
${tag.label}
|
||||||
|
</button>
|
||||||
|
`).join('');
|
||||||
|
sidebarTags.innerHTML = tagsHtml;
|
||||||
|
};
|
||||||
|
|
||||||
modalTagClose.addEventListener('click', closeTagModal);
|
modalTagClose.addEventListener('click', closeTagModal);
|
||||||
modalTagCancel.addEventListener('click', closeTagModal);
|
modalTagCancel.addEventListener('click', closeTagModal);
|
||||||
modalTagOverlay.addEventListener('click', (e) => {
|
modalTagOverlay.addEventListener('click', (e) => {
|
||||||
@@ -270,8 +290,6 @@ const initApp = () => {
|
|||||||
sidebarTags.addEventListener('click', (e) => {
|
sidebarTags.addEventListener('click', (e) => {
|
||||||
const tagBtn = e.target.closest('.tag-filter');
|
const tagBtn = e.target.closest('.tag-filter');
|
||||||
if (!tagBtn) return;
|
if (!tagBtn) return;
|
||||||
document.querySelectorAll('.tag-filter').forEach(b => b.classList.remove('active'));
|
|
||||||
tagBtn.classList.add('active');
|
|
||||||
activeTag = tagBtn.dataset.tag;
|
activeTag = tagBtn.dataset.tag;
|
||||||
renderHistory();
|
renderHistory();
|
||||||
});
|
});
|
||||||
@@ -667,12 +685,22 @@ const initApp = () => {
|
|||||||
|
|
||||||
// Emoji para cada tag
|
// Emoji para cada tag
|
||||||
const getTagEmoji = (tag) => {
|
const getTagEmoji = (tag) => {
|
||||||
const emojis = { relatorios: '📋', planejamento: '📝', mindlab: '🧠', estudos: '📚' };
|
const emojis = {
|
||||||
|
relatorios: '📋',
|
||||||
|
planejamento: '📝',
|
||||||
|
mindlab: '🧠',
|
||||||
|
estudos: '📚',
|
||||||
|
htpc: '💻',
|
||||||
|
ata: '📝',
|
||||||
|
sugestao: '💡',
|
||||||
|
duvida: '❓'
|
||||||
|
};
|
||||||
return emojis[tag] || '🏷️';
|
return emojis[tag] || '🏷️';
|
||||||
};
|
};
|
||||||
|
|
||||||
// Renderizar histórico completo
|
// Renderizar histórico completo
|
||||||
const renderHistory = () => {
|
const renderHistory = () => {
|
||||||
|
renderSidebarTags(); // Renderizar tags da sidebar de forma dinâmica e atualizada
|
||||||
historyItems.innerHTML = '';
|
historyItems.innerHTML = '';
|
||||||
|
|
||||||
if (chats.length === 0) {
|
if (chats.length === 0) {
|
||||||
|
|||||||
@@ -147,6 +147,29 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h2>Olá! Sou sua assistente virtual e me chamo Kemily. Como posso ajudar?</h2>
|
<h2>Olá! Sou sua assistente virtual e me chamo Kemily. Como posso ajudar?</h2>
|
||||||
|
|
||||||
|
<div class="welcome-grid">
|
||||||
|
<div class="suggestion-card" data-prompt="Escreva um relatório de observação semanal de um aluno de educação infantil focado em socialização e interação.">
|
||||||
|
<div class="card-icon">📋</div>
|
||||||
|
<div class="card-title">Relatório Semanal</div>
|
||||||
|
<div class="card-desc">Observação de desenvolvimento e socialização na educação infantil.</div>
|
||||||
|
</div>
|
||||||
|
<div class="suggestion-card" data-prompt="Crie um planejamento de aula inspirado no Mind Lab para trabalhar educação socioemocional e cooperação.">
|
||||||
|
<div class="card-icon">🧠</div>
|
||||||
|
<div class="card-title">Planejamento Mind Lab</div>
|
||||||
|
<div class="card-desc">Atividades lúdicas para desenvolvimento de habilidades socioemocionais.</div>
|
||||||
|
</div>
|
||||||
|
<div class="suggestion-card" data-prompt="Crie uma música pedagógica infantil alegre e animada sobre animais e sons da fazenda.">
|
||||||
|
<div class="card-icon">🎵</div>
|
||||||
|
<div class="card-title">Criar Música / Cantiga</div>
|
||||||
|
<div class="card-desc">Gere músicas divertidas com melodia e letra educativa.</div>
|
||||||
|
</div>
|
||||||
|
<div class="suggestion-card" data-prompt="Crie um planejamento pedagógico de artes alinhado à BNCC para o campo 'Traços, sons, cores e formas'.">
|
||||||
|
<div class="card-icon">🎨</div>
|
||||||
|
<div class="card-title">Atividade BNCC</div>
|
||||||
|
<div class="card-desc">Planos de aula estruturados de acordo com as normas da BNCC.</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Lista de mensagens geradas dinamicamente -->
|
<!-- Lista de mensagens geradas dinamicamente -->
|
||||||
|
|||||||
Reference in New Issue
Block a user