quickSnote
This commit is contained in:
32
browser-extension/options.js
Normal file
32
browser-extension/options.js
Normal file
@@ -0,0 +1,32 @@
|
||||
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);
|
||||
Reference in New Issue
Block a user