-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpopup.js
More file actions
61 lines (56 loc) · 1.65 KB
/
popup.js
File metadata and controls
61 lines (56 loc) · 1.65 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
document.addEventListener("DOMContentLoaded", async () => {
const chkGlobal = document.getElementById("global-enable");
const chkSite = document.getElementById("site-enable");
const tagsEl = document.getElementById("tags");
const input = document.getElementById("domain-input");
const btnSave = document.getElementById("save");
const statusEl = document.getElementById("status");
let domains = [];
function renderTags() {
tagsEl.innerHTML = "";
domains.forEach((d, i) => {
const span = document.createElement("span");
span.className = "tag";
span.textContent = d;
const rem = document.createElement("span");
rem.className = "remove";
rem.textContent = "×";
rem.onclick = () => {
domains.splice(i, 1);
renderTags();
};
span.append(rem);
tagsEl.append(span);
});
}
input.addEventListener("keydown", (e) => {
if (e.key === "Enter" && input.value.trim()) {
domains.push(input.value.trim());
input.value = "";
renderTags();
e.preventDefault();
}
});
const prefs = await chrome.storage.sync.get({
enabled: true,
enableOnThis: false,
domains: [],
});
chkGlobal.checked = prefs.enabled;
chkSite.checked = prefs.enableOnThis;
domains = prefs.domains;
renderTags();
btnSave.addEventListener("click", () => {
chrome.storage.sync.set(
{
enabled: chkGlobal.checked,
enableOnThis: chkSite.checked,
domains,
},
() => {
statusEl.textContent = "모든 변경 사항이 저장되었습니다.";
setTimeout(() => (statusEl.textContent = ""), 1500);
}
);
});
});