// popup.js — Settings UI for Claude Arabic Voice document.addEventListener('DOMContentLoaded', () => { // ─── Load Settings ─────────────────────────────────────────────────────── chrome.storage.sync.get( ['language', 'autoSend', 'useGemini', 'geminiApiKey', 'geminiModel'], (data) => { if (data.language) document.getElementById('language').value = data.language; if (data.autoSend) document.getElementById('autoSend').checked = data.autoSend; if (data.useGemini) { document.getElementById('useGemini').checked = data.useGemini; document.getElementById('geminiSettings').style.display = 'block'; } if (data.geminiApiKey) document.getElementById('geminiApiKey').value = data.geminiApiKey; } ); // ─── Toggle Gemini Settings ────────────────────────────────────────────── document.getElementById('useGemini').addEventListener('change', (e) => { document.getElementById('geminiSettings').style.display = e.target.checked ? 'block' : 'none'; }); // ─── Save Settings ─────────────────────────────────────────────────────── document.getElementById('saveBtn').addEventListener('click', () => { const settings = { language: document.getElementById('language').value, autoSend: document.getElementById('autoSend').checked, useGemini: document.getElementById('useGemini').checked, geminiApiKey: document.getElementById('geminiApiKey').value.trim(), geminiModel: 'gemini-flash-lite-latest' }; chrome.storage.sync.set(settings, () => { const message = document.getElementById('saveMessage'); message.textContent = '✅ تم حفظ الإعدادات بنجاح!'; message.style.color = '#00c853'; setTimeout(() => { message.textContent = ''; }, 2500); // Notify content script of settings change chrome.tabs.query({ url: 'https://claude.ai/*' }, (tabs) => { tabs.forEach(tab => { chrome.tabs.sendMessage(tab.id, { type: 'SETTINGS_UPDATED', payload: settings }).catch(() => { /* tab may not have content script */ }); }); }); }); }); // ─── Update Status ────────────────────────────────────────────────────── function updateStatus() { const statusDot = document.getElementById('statusDot'); const statusText = document.getElementById('statusText'); chrome.tabs.query({ url: 'https://claude.ai/*' }, (tabs) => { if (tabs.length === 0) { statusDot.className = 'status-dot offline'; statusText.textContent = '🔴 Claude.ai غير مفتوح'; return; } // Check if content script is loaded chrome.tabs.sendMessage(tabs[0].id, { type: 'GET_STATUS' }, (response) => { if (chrome.runtime.lastError) { statusDot.className = 'status-dot offline'; statusText.textContent = '🔴 الإضافة غير نشطة - أعد تحميل الصفحة'; } else if (response && response.isListening) { statusDot.className = 'status-dot listening'; statusText.textContent = '🔴 جارٍ الاستماع...'; } else { statusDot.className = 'status-dot online'; statusText.textContent = '✅ جاهز للاستخدام'; } }); }); } updateStatus(); setInterval(updateStatus, 3000); });