| |
| const toggleTheme = () => { |
| document.documentElement.classList.toggle('dark'); |
| localStorage.setItem('theme', document.documentElement.classList.contains('dark') ? 'dark' : 'light'); |
| }; |
|
|
| |
| if (localStorage.getItem('theme') === 'dark' || |
| (window.matchMedia('(prefers-color-scheme: dark)').matches && !localStorage.getItem('theme'))) { |
| document.documentElement.classList.add('dark'); |
| } |
|
|
| |
| const textarea = document.querySelector('textarea'); |
| const resizeTextarea = () => { |
| textarea.style.height = 'auto'; |
| textarea.style.height = `${textarea.scrollHeight}px`; |
| }; |
|
|
| textarea.addEventListener('input', resizeTextarea); |
|
|
| |
| const sendMessage = () => { |
| const message = textarea.value.trim(); |
| if (!message) return; |
| |
| |
| addMessage(message, 'user'); |
| textarea.value = ''; |
| resizeTextarea(); |
| |
| |
| setTimeout(() => { |
| addMessage("I'm Gemini, your AI assistant. I'll respond shortly...", 'ai'); |
| }, 1000); |
| }; |
|
|
| const addMessage = (content, sender) => { |
| const messagesContainer = document.querySelector('.chat-messages'); |
| const messageElement = document.createElement('div'); |
| messageElement.className = `message ${sender}-message`; |
| |
| messageElement.innerHTML = ` |
| <div class="message-content"> |
| <p>${content}</p> |
| </div> |
| `; |
| |
| messagesContainer.appendChild(messageElement); |
| messagesContainer.scrollTop = messagesContainer.scrollHeight; |
| }; |
|
|
| |
| document.querySelector('.send-btn').addEventListener('click', sendMessage); |
| textarea.addEventListener('keydown', (e) => { |
| if (e.key === 'Enter' && !e.shiftKey) { |
| e.preventDefault(); |
| sendMessage(); |
| } |
| }); |
|
|
| |
| const toggleMobileMenu = () => { |
| document.querySelector('.sidebar').classList.toggle('active'); |
| }; |
|
|
| |
| feather.replace(); |
|
|
| |
| document.querySelectorAll('.chat-item').forEach(item => { |
| item.addEventListener('click', () => { |
| document.querySelectorAll('.chat-item').forEach(i => i.classList.remove('active')); |
| item.classList.add('active'); |
| }); |
| }); |