-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathpopup.js
More file actions
69 lines (60 loc) · 3.29 KB
/
popup.js
File metadata and controls
69 lines (60 loc) · 3.29 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
document.addEventListener("DOMContentLoaded", () => {
const mainToggle = document.getElementById("main-toggle");
const autoPiPToggle = document.getElementById("auto-pip-enable-toggle");
const closePiPReturnToggle = document.getElementById("close-pip-return-toggle");
const autoPiPLabel = document.getElementById("auto-pip-enable-label");
const closePiPLabel = document.getElementById("close-pip-return-label");
const mainToggleLabel = document.getElementById("main-toggle-label");
// Retrieve the current states of all settings from chrome.storage
chrome.storage.sync.get(["extensionEnabled", "autoPiPEnabled", "closePiPOnReturnEnabled"], (data) => {
// Set the states based on saved preferences
const extensionEnabled = data.extensionEnabled ?? true; // Default to enabled if undefined
const autoPiPEnabled = data.autoPiPEnabled ?? false;
const closePiPOnReturnEnabled = data.closePiPOnReturnEnabled ?? false;
// Update the main toggle and other toggle buttons' state
mainToggle.checked = extensionEnabled;
autoPiPToggle.checked = autoPiPEnabled;
closePiPReturnToggle.checked = closePiPOnReturnEnabled;
// Update the UI labels
mainToggleLabel.textContent = extensionEnabled ? "Extension: On" : "Extension: Off";
autoPiPLabel.textContent = autoPiPEnabled ? "Auto PiP: On" : "Auto PiP: Off";
closePiPLabel.textContent = closePiPOnReturnEnabled ? "Close PiP on Return: On" : "Close PiP on Return: Off";
// Enable or disable the other toggles based on the main toggle
if (!extensionEnabled) {
autoPiPToggle.disabled = true;
closePiPReturnToggle.disabled = true;
autoPiPToggle.parentElement.classList.add("disabled");
closePiPReturnToggle.parentElement.classList.add("disabled");
}
});
// Handle main toggle change (enable/disable extension)
mainToggle.addEventListener("change", () => {
const isEnabled = mainToggle.checked;
chrome.storage.sync.set({ extensionEnabled: isEnabled });
mainToggleLabel.textContent = isEnabled ? "Extension: On" : "Extension: Off";
// Enable or disable the other toggles based on the main toggle
if (isEnabled) {
autoPiPToggle.disabled = false;
closePiPReturnToggle.disabled = false;
autoPiPToggle.parentElement.classList.remove("disabled");
closePiPReturnToggle.parentElement.classList.remove("disabled");
} else {
autoPiPToggle.disabled = true;
closePiPReturnToggle.disabled = true;
autoPiPToggle.parentElement.classList.add("disabled");
closePiPReturnToggle.parentElement.classList.add("disabled");
}
});
// Handle auto PiP toggle change
autoPiPToggle.addEventListener("change", () => {
const isEnabled = autoPiPToggle.checked;
chrome.storage.sync.set({ autoPiPEnabled: isEnabled });
autoPiPLabel.textContent = isEnabled ? "Auto PiP: On" : "Auto PiP: Off";
});
// Handle close PiP on return toggle change
closePiPReturnToggle.addEventListener("change", () => {
const isEnabled = closePiPReturnToggle.checked;
chrome.storage.sync.set({ closePiPOnReturnEnabled: isEnabled });
closePiPLabel.textContent = isEnabled ? "Close PiP on Return: On" : "Close PiP on Return: Off";
});
});