33 lines
853 B
JavaScript
33 lines
853 B
JavaScript
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);
|