import { state } from './state.js'; import { config } from './config.js'; import { initDB, getFromDB } from './db.js'; import { MusicPlayer } from './musicPlayer.js'; import { setupEventListeners } from './eventListeners.js'; import { loadInitialContent, initializeFavorites, initializeUserData, loadLocalContent, applyTheme, applyHeroVisibility } from './ui.js'; import { showNotification, _ } from './utils.js'; async function loadSettings() { try { const settingsData = await getFromDB('settings'); if (settingsData && settingsData.length > 0) { state.settings = { ...state.settings, ...settingsData[0] }; } else { state.settings.language = chrome.i18n.getUILanguage().split('-')[0]; } if (!state.settings.apiKey) { state.settings.apiKey = config.defaultApiKey; } } catch (error) { state.settings.language = chrome.i18n.getUILanguage().split('-')[0]; } } document.addEventListener('DOMContentLoaded', async () => { try { await initDB(); await loadSettings(); applyTheme(state.settings.theme); applyHeroVisibility(state.settings.showHero); gsap.registerPlugin(ScrollTrigger); state.musicPlayer = new MusicPlayer(); state.musicPlayer.setDB(state.db); initializeFavorites(); initializeUserData(); await loadLocalContent(); await loadInitialContent(); setupEventListeners(); initializeThirdPartyLibs(); } catch (error) { showNotification(_("fatalInitError"), "error"); document.getElementById('main-container').innerHTML = `
${_("fatalInitErrorSub")}