From da8a1376a782aec9344fb6b6b6679b4f6c619e04 Mon Sep 17 00:00:00 2001 From: Ajay Ramachandran Date: Tue, 7 Jan 2020 22:02:16 -0500 Subject: [PATCH] Converted options page to new config system. --- options/options.js | 61 ++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 35 deletions(-) diff --git a/options/options.js b/options/options.js index a87d150f..14ed32ad 100644 --- a/options/options.js +++ b/options/options.js @@ -3,38 +3,33 @@ window.addEventListener('DOMContentLoaded', init); async function init() { localizeHtmlPage(); + await wait(() => SB.config !== undefined); + // Set all of the toggle options to the correct option let optionsContainer = document.getElementById("options"); let optionsElements = optionsContainer.children; - // How many checks are left to be done - let checksLeft = 0; - for (let i = 0; i < optionsElements.length; i++) { switch (optionsElements[i].getAttribute("option-type")) { case "toggle": let option = optionsElements[i].getAttribute("sync-option"); - chrome.storage.sync.get([option], function(result) { - let optionResult = result[option]; - if (optionResult != undefined) { - let checkbox = optionsElements[i].querySelector("input"); - checkbox.checked = optionResult; - let reverse = optionsElements[i].getAttribute("toggle-type") === "reverse"; + let optionResult = SB.config[option]; - if (reverse) { - optionsElements[i].querySelector("input").checked = !optionResult; - } + let checkbox = optionsElements[i].querySelector("input"); + let reverse = optionsElements[i].getAttribute("toggle-type") === "reverse"; - checkbox.addEventListener("click", () =>{ - SB.config[option] = reverse ? !checkbox.checked : checkbox.checked; - }); + if (optionResult != undefined) { + checkbox.checked = optionResult; + + if (reverse) { + optionsElements[i].querySelector("input").checked = !optionResult; } + } - checksLeft--; + checkbox.addEventListener("click", () =>{ + SB.config[option] = reverse ? !checkbox.checked : checkbox.checked; }); - - checksLeft++; break; case "text-change": let button = optionsElements[i].querySelector(".trigger-button"); @@ -49,8 +44,6 @@ async function init() { } } - await wait(() => checksLeft == 0, 1000, 50); - optionsContainer.classList.remove("hidden"); optionsContainer.classList.add("animated"); } @@ -68,21 +61,19 @@ function activateKeybindChange(element) { let option = element.getAttribute("sync-option"); - chrome.storage.sync.get([option], function(result) { - let currentlySet = result[option] !== null ? chrome.i18n.getMessage("keybindCurrentlySet") : ""; - - let status = element.querySelector(".option-hidden-section > .keybind-status"); - status.innerText = chrome.i18n.getMessage("keybindDescription") + currentlySet; - - if (result[option] !== null) { - let statusKey = element.querySelector(".option-hidden-section > .keybind-status-key"); - statusKey.innerText = result[option]; - } + let currentlySet = SB.config[option] !== null ? chrome.i18n.getMessage("keybindCurrentlySet") : ""; - element.querySelector(".option-hidden-section").classList.remove("hidden"); - - document.addEventListener("keydown", (e) => keybindKeyPressed(element, e), {once: true}); - }); + let status = element.querySelector(".option-hidden-section > .keybind-status"); + status.innerText = chrome.i18n.getMessage("keybindDescription") + currentlySet; + + if (SB.config[option] !== null) { + let statusKey = element.querySelector(".option-hidden-section > .keybind-status-key"); + statusKey.innerText = SB.config[option]; + } + + element.querySelector(".option-hidden-section").classList.remove("hidden"); + + document.addEventListener("keydown", (e) => keybindKeyPressed(element, e), {once: true}); } /** @@ -97,7 +88,7 @@ function keybindKeyPressed(element, e) { let option = element.getAttribute("sync-option"); - chrome.storage.sync.set({[option]: key}); + SB.config[option] = key; let status = element.querySelector(".option-hidden-section > .keybind-status"); status.innerText = chrome.i18n.getMessage("keybindDescriptionComplete");