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();
|
||||
|
||||
// ==========================================================================
|
||||
// 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 modalTagList = document.getElementById('modalTagList');
|
||||
const modalTagClose = document.getElementById('modalTagClose');
|
||||
@@ -175,9 +184,9 @@ const initApp = () => {
|
||||
|
||||
const renderTagModalList = () => {
|
||||
modalTagList.innerHTML = AVAILABLE_TAGS.map(tag => `
|
||||
<div class="modal-tag-item ${selectedTagsState.includes(tag) ? 'selected' : ''}" data-tag="${tag}">
|
||||
<input type="checkbox" ${selectedTagsState.includes(tag) ? 'checked' : ''}>
|
||||
<span>${tag}</span>
|
||||
<div class="modal-tag-item ${selectedTagsState.includes(tag.id) ? 'selected' : ''}" data-tag="${tag.id}">
|
||||
<input type="checkbox" ${selectedTagsState.includes(tag.id) ? 'checked' : ''}>
|
||||
<span>${tag.label}</span>
|
||||
</div>
|
||||
`).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);
|
||||
modalTagCancel.addEventListener('click', closeTagModal);
|
||||
modalTagOverlay.addEventListener('click', (e) => {
|
||||
@@ -270,8 +290,6 @@ const initApp = () => {
|
||||
sidebarTags.addEventListener('click', (e) => {
|
||||
const tagBtn = e.target.closest('.tag-filter');
|
||||
if (!tagBtn) return;
|
||||
document.querySelectorAll('.tag-filter').forEach(b => b.classList.remove('active'));
|
||||
tagBtn.classList.add('active');
|
||||
activeTag = tagBtn.dataset.tag;
|
||||
renderHistory();
|
||||
});
|
||||
@@ -667,12 +685,22 @@ const initApp = () => {
|
||||
|
||||
// Emoji para cada tag
|
||||
const getTagEmoji = (tag) => {
|
||||
const emojis = { relatorios: '📋', planejamento: '📝', mindlab: '🧠', estudos: '📚' };
|
||||
const emojis = {
|
||||
relatorios: '📋',
|
||||
planejamento: '📝',
|
||||
mindlab: '🧠',
|
||||
estudos: '📚',
|
||||
htpc: '💻',
|
||||
ata: '📝',
|
||||
sugestao: '💡',
|
||||
duvida: '❓'
|
||||
};
|
||||
return emojis[tag] || '🏷️';
|
||||
};
|
||||
|
||||
// Renderizar histórico completo
|
||||
const renderHistory = () => {
|
||||
renderSidebarTags(); // Renderizar tags da sidebar de forma dinâmica e atualizada
|
||||
historyItems.innerHTML = '';
|
||||
|
||||
if (chats.length === 0) {
|
||||
|
||||
Reference in New Issue
Block a user