const urlInput = document.getElementById('serverUrl'); const statusEl = document.getElementById('status'); function showStatus(msg, ok) { statusEl.textContent = msg; statusEl.style.color = ok ? '#a6e3a1' : '#f38ba8'; setTimeout(() => { statusEl.textContent = ''; }, 3000); } browser.storage.sync.get('serverUrl').then(r => { if (r.serverUrl) urlInput.value = r.serverUrl; }); let saveTimer = null; function scheduleSave() { if (saveTimer) clearTimeout(saveTimer); saveTimer = setTimeout(save, 600); } async function save() { const url = urlInput.value.trim().replace(/\/+$/, ''); await browser.storage.sync.set({ serverUrl: url }); showStatus('Saved.', true); } document.getElementById('save-close').addEventListener('click', async () => { await save(); window.close(); }); urlInput.addEventListener('input', scheduleSave);