64 lines
2.1 KiB
JavaScript
64 lines
2.1 KiB
JavaScript
function buildBookmarkRows(bookmarks) {
|
|
const fields = document.getElementById("bookmark-fields");
|
|
fields.textContent = "";
|
|
|
|
bookmarks.forEach((bookmark, index) => {
|
|
const row = document.createElement("div");
|
|
row.className = "bookmark-row";
|
|
|
|
const title = document.createElement("input");
|
|
title.type = "text";
|
|
title.name = `bookmark-title-${index}`;
|
|
title.placeholder = `Bookmark ${index + 1} title`;
|
|
title.value = bookmark.title || "";
|
|
|
|
const url = document.createElement("input");
|
|
url.type = "text";
|
|
url.name = `bookmark-url-${index}`;
|
|
url.placeholder = `Bookmark ${index + 1} URL`;
|
|
url.value = bookmark.url || "";
|
|
|
|
row.append(title, url);
|
|
fields.append(row);
|
|
});
|
|
}
|
|
|
|
async function render() {
|
|
const settings = await browser.runtime.sendMessage({ type: "get-settings" });
|
|
buildBookmarkRows(settings.bookmarks);
|
|
|
|
document.querySelector('[name="trackers"]').checked = settings.blocking.trackers;
|
|
document.querySelector('[name="ads"]').checked = settings.blocking.ads;
|
|
document.querySelector('[name="analytics"]').checked = settings.blocking.analytics;
|
|
document.querySelector('[name="social"]').checked = settings.blocking.social;
|
|
}
|
|
|
|
document.getElementById("settings-form").addEventListener("submit", async (event) => {
|
|
event.preventDefault();
|
|
|
|
const bookmarks = Array.from({ length: 4 }, (_, index) => ({
|
|
title: document.querySelector(`[name="bookmark-title-${index}"]`).value.trim(),
|
|
url: document.querySelector(`[name="bookmark-url-${index}"]`).value.trim()
|
|
}));
|
|
|
|
await browser.runtime.sendMessage({
|
|
type: "save-settings",
|
|
settings: {
|
|
bookmarks,
|
|
blocking: {
|
|
trackers: document.querySelector('[name="trackers"]').checked,
|
|
ads: document.querySelector('[name="ads"]').checked,
|
|
analytics: document.querySelector('[name="analytics"]').checked,
|
|
social: document.querySelector('[name="social"]').checked
|
|
}
|
|
}
|
|
});
|
|
|
|
const status = document.getElementById("save-status");
|
|
status.textContent = "Saved";
|
|
window.setTimeout(() => {
|
|
status.textContent = "";
|
|
}, 1500);
|
|
});
|
|
|
|
void render();
|