/* ============================================================================= MAIL APP - SENTIENT THEME JAVASCRIPT ============================================================================= */ (function() { 'use strict'; // ============================================================================= // AI PANEL (Collapsible, Mobile-friendly) // ============================================================================= window.toggleAIPanel = function() { const panel = document.getElementById('ai-panel'); const toggle = document.querySelector('.ai-toggle'); if (panel) { panel.classList.toggle('collapsed'); if (toggle) { toggle.classList.toggle('active', !panel.classList.contains('collapsed')); } localStorage.setItem('aiPanelCollapsed', panel.classList.contains('collapsed')); } }; window.sendAIMessage = function() { const input = document.getElementById('ai-input'); if (!input || !input.value.trim()) return; const message = input.value.trim(); input.value = ''; addMessage('user', message); showTypingIndicator(); setTimeout(() => { hideTypingIndicator(); addMessage('assistant', `Processando: "${message}". Como posso ajudar mais?`); }, 1500); }; window.aiAction = function(action) { const actions = { 'summarize': 'Resumindo o email selecionado...', 'reply': 'Gerando uma resposta profissional...', 'translate': 'Traduzindo o conteúdo...', 'organize': 'Organizando sua caixa de entrada...' }; addMessage('assistant', actions[action] || 'Processando...'); setTimeout(() => { addMessage('assistant', 'Ação concluída com sucesso! O que mais posso fazer?'); }, 2000); }; function addMessage(type, content) { const container = document.getElementById('ai-messages'); if (!container) return; const messageEl = document.createElement('div'); messageEl.className = `ai-message ${type}`; messageEl.innerHTML = `
${content}
`; container.appendChild(messageEl); container.scrollTop = container.scrollHeight; } function showTypingIndicator() { const container = document.getElementById('ai-messages'); if (!container) return; const indicator = document.createElement('div'); indicator.className = 'ai-message assistant'; indicator.id = 'typing-indicator'; indicator.innerHTML = `
`; container.appendChild(indicator); container.scrollTop = container.scrollHeight; } function hideTypingIndicator() { const indicator = document.getElementById('typing-indicator'); if (indicator) indicator.remove(); } // ============================================================================= // EMAIL FUNCTIONS // ============================================================================= window.composeEmail = function() { addMessage('assistant', 'Abrindo composer de email. Deseja que eu escreva um rascunho?'); }; function initEmailList() { document.querySelectorAll('.email-item').forEach(item => { item.addEventListener('click', function(e) { if (e.target.type === 'checkbox' || e.target.classList.contains('email-star')) return; document.querySelectorAll('.email-item').forEach(i => i.classList.remove('selected')); this.classList.add('selected'); this.classList.remove('unread'); }); }); document.querySelectorAll('.email-star').forEach(star => { star.addEventListener('click', function(e) { e.stopPropagation(); this.classList.toggle('starred'); this.textContent = this.classList.contains('starred') ? '⭐' : '☆'; }); }); } // ============================================================================= // APP NAVIGATION // ============================================================================= function initAppLauncher() { document.querySelectorAll('.app-icon').forEach(icon => { icon.addEventListener('click', function() { const app = this.dataset.app; if (app === 'chat') { window.location.href = '/suite/chat/chat-sentient.html'; } else if (app === 'drive') { window.location.href = '/suite/drive/drive-sentient.html'; } else if (app === 'tasks') { window.location.href = '/suite/tasks/tasks-sentient.html'; } else if (app === 'calendar') { window.location.href = '/suite/calendar/calendar-sentient.html'; } else if (app === 'meet') { window.location.href = '/suite/meet/meet-sentient.html'; } else if (app === 'paper') { window.location.href = '/suite/paper/paper-sentient.html'; } }); }); } function initTabs() { document.querySelectorAll('.topbar-tab').forEach(tab => { tab.addEventListener('click', function() { document.querySelectorAll('.topbar-tab').forEach(t => t.classList.remove('active')); this.classList.add('active'); }); }); } // ============================================================================= // KEYBOARD SHORTCUTS // ============================================================================= function initKeyboardShortcuts() { document.addEventListener('keydown', function(e) { if (e.key === 'Enter' && document.activeElement.id === 'ai-input') { e.preventDefault(); sendAIMessage(); } // Ctrl+Shift+A to toggle AI panel if (e.ctrlKey && e.shiftKey && e.key === 'A') { e.preventDefault(); toggleAIPanel(); } }); } // ============================================================================= // RESTORE AI PANEL STATE // ============================================================================= function restoreAIPanelState() { const collapsed = localStorage.getItem('aiPanelCollapsed') === 'true'; const panel = document.getElementById('ai-panel'); const toggle = document.querySelector('.ai-toggle'); if (panel && collapsed) { panel.classList.add('collapsed'); } if (toggle) { toggle.classList.toggle('active', !collapsed); } } // ============================================================================= // INITIALIZE // ============================================================================= function init() { initEmailList(); initAppLauncher(); initTabs(); initKeyboardShortcuts(); restoreAIPanelState(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();