-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathoptions.js
More file actions
55 lines (47 loc) · 1.46 KB
/
Copy pathoptions.js
File metadata and controls
55 lines (47 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// Cross-browser API
const storage = typeof browser !== 'undefined' ? browser.storage : chrome.storage;
const DEFAULT_SETTINGS = {
dropZonePosition: 'bottom-center'
};
// Load saved settings
async function loadSettings() {
try {
const result = await storage.sync.get(DEFAULT_SETTINGS);
const position = result.dropZonePosition || DEFAULT_SETTINGS.dropZonePosition;
const radio = document.querySelector(`input[value="${position}"]`);
if (radio) {
radio.checked = true;
}
} catch (err) {
console.error('Nozo: Failed to load settings', err);
}
}
// Save settings
async function saveSettings(position) {
try {
await storage.sync.set({ dropZonePosition: position });
showStatus('Settings saved!');
} catch (err) {
console.error('Nozo: Failed to save settings', err);
}
}
// Show status message
function showStatus(message) {
const status = document.getElementById('status');
status.textContent = message;
status.className = 'status show success';
setTimeout(() => {
status.className = 'status';
}, 2000);
}
// Initialize
document.addEventListener('DOMContentLoaded', () => {
loadSettings();
// Listen for radio changes
const radios = document.querySelectorAll('input[name="dropZonePosition"]');
radios.forEach(radio => {
radio.addEventListener('change', (e) => {
saveSettings(e.target.value);
});
});
});