eml21/ai-wonderland
0
1// Theme toggle functionality2document.addEventListener('DOMContentLoaded', () => {3 // Check for saved theme preference or use system preference4 if (localStorage.getItem('color-theme') === 'dark' || 5 (!('color-theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {6 document.documentElement.classList.add('dark');7 } else {8 document.documentElement.classList.remove('dark');9 }10});11// Smooth scrolling for anchor links12document.querySelectorAll('a[href^="#"]').forEach(anchor => {13 anchor.addEventListener('click', function (e) {14 e.preventDefault();15 document.querySelector(this.getAttribute('href')).scrollIntoView({16 behavior: 'smooth'17 });18 });19});20// Initialize environment variables21require('dotenv').config();22 23// AI Tools Enter key support24document.addEventListener('keypress', function(e) {25 if (e.target && e.target.matches('input[type="text"]') && e.key === 'Enter') {26 const button = e.target.nextElementSibling || e.target.parentElement.nextElementSibling;27 if (button && button.tagName === 'BUTTON') {28 button.click();29 }30 }31});32 33// Error handling for API calls34window.addEventListener('error', function(e) {35 console.error('Unhandled error:', e.error);36 // Show user-friendly error message37 const errorDiv = document.createElement('div');38 errorDiv.className = 'fixed bottom-4 right-4 bg-red-500 text-white p-4 rounded-lg shadow-lg z-50';39 errorDiv.textContent = 'An error occurred. Please try again.';40 document.body.appendChild(errorDiv);41 setTimeout(() => errorDiv.remove(), 5000);42});43 44 