-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpopup.js
74 lines (68 loc) · 2.31 KB
/
popup.js
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
70
71
72
73
74
const classNameInput = document.getElementById("class-name");
const addClassButton = document.getElementById("add-class");
const classListDiv = document.getElementById("class-list");
const websiteUrlInput = document.getElementById("website-url");
const addUrlButton = document.getElementById("add-url");
const urlListDiv = document.getElementById("url-list");
function renderList(container, items, type) {
container.innerHTML = "";
items.forEach((item, index) => {
const div = document.createElement("div");
div.className = "item";
div.innerHTML = `
<span>${item}</span>
<button data-index="${index}" class="remove-${type}">Remove</button>
`;
container.appendChild(div);
});
document.querySelectorAll(`.remove-${type}`).forEach((button) => {
button.addEventListener("click", () => {
const index = parseInt(button.getAttribute("data-index"), 10);
chrome.storage.local.get([type], (result) => {
const items = result[type] || [];
items.splice(index, 1);
chrome.storage.local.set({ [type]: items }, () => {
renderList(container, items, type);
});
});
});
});
}
chrome.storage.local.get(["classes", "urls"], (result) => {
renderList(classListDiv, result.classes || [], "classes");
renderList(urlListDiv, result.urls || [], "urls");
});
addClassButton.addEventListener("click", () => {
const newClass = classNameInput.value.trim();
if (newClass) {
chrome.storage.local.get(["classes"], (result) => {
const classes = result.classes || [];
if (!classes.includes(newClass)) {
classes.push(newClass);
chrome.storage.local.set({ classes }, () => {
renderList(classListDiv, classes, "classes");
classNameInput.value = "";
});
} else {
alert("Class name already added!");
}
});
}
});
addUrlButton.addEventListener("click", () => {
const newUrl = websiteUrlInput.value.trim();
if (newUrl) {
chrome.storage.local.get(["urls"], (result) => {
const urls = result.urls || [];
if (!urls.includes(newUrl)) {
urls.push(newUrl);
chrome.storage.local.set({ urls }, () => {
renderList(urlListDiv, urls, "urls");
websiteUrlInput.value = "";
});
} else {
alert("URL already added!");
}
});
}
});