src/pages/options.js (41 lines of code) (raw):
const selectProtocolInput = (protocol) => {
const checkedProtocolInput = document.querySelector(`.js-protocol-input[value="${protocol}"]`);
if (checkedProtocolInput) {
checkedProtocolInput.checked = true;
}
const uncheckedProtocolInput = document.querySelector(
`.js-protocol-input:not([value="${protocol}"])`,
);
if (uncheckedProtocolInput) {
const labelClone = document.getElementById("lbl-clone");
if (labelClone) {
labelClone.setAttribute("for", uncheckedProtocolInput.id);
}
}
};
chrome.runtime.sendMessage({ type: "get-protocol" }, (data) => {
selectProtocolInput(data.protocol);
});
chrome.runtime.sendMessage({ type: "get-modify-pages" }, (data) => {
const modifyPagesInput = document.querySelector(".js-modify-pages-input");
modifyPagesInput.checked = data.allow;
});
document.querySelector(".js-protocol-input-group").addEventListener("change", (e) => {
chrome.runtime.sendMessage({
type: "save-protocol",
protocol: e.target.value,
});
});
document.querySelector(".js-modify-pages-input").addEventListener("change", (e) => {
chrome.runtime.sendMessage({
type: "save-modify-pages",
allow: e.target.checked,
});
});
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case "protocol-changed":
selectProtocolInput(message.newValue);
break;
// no default
}
});