about summary refs log tree commit diff stats
path: root/src/pages/options/options.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/options/options.js')
-rw-r--r--src/pages/options/options.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/pages/options/options.js b/src/pages/options/options.js
index cfe3a266..91e7ac05 100644
--- a/src/pages/options/options.js
+++ b/src/pages/options/options.js
@@ -8,6 +8,7 @@ import mapsHelper from "../../assets/javascripts/helpers/google-maps.js";
 import redditHelper from "../../assets/javascripts/helpers/reddit.js";
 import searchHelper from "../../assets/javascripts/helpers/google-search.js";
 import googleTranslateHelper from "../../assets/javascripts/helpers/google-translate.js";
+import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js";
 
 const nitterInstances = twitterHelper.redirects;
 const invidiousInstances = youtubeHelper.redirects;
@@ -16,6 +17,7 @@ const osmInstances = mapsHelper.redirects;
 const redditInstances = redditHelper.redirects;
 const searchEngineInstances = searchHelper.redirects;
 const simplyTranslateInstances = googleTranslateHelper.redirects;
+const wikipediaInstances = wikipediaHelper.redirects;
 const autocompletes = [
   { id: "nitter-instance", instances: nitterInstances },
   { id: "invidious-instance", instances: invidiousInstances },
@@ -27,6 +29,7 @@ const autocompletes = [
     instances: searchEngineInstances.map((instance) => instance.link),
   },
   { id: "simply-translate-instance", instances: simplyTranslateInstances },
+  { id: "wikipedia-instance", instances: wikipediaInstances },
 ];
 const domparser = new DOMParser();
 
@@ -39,6 +42,7 @@ let searchEngineInstance = document.getElementById("search-engine-instance");
 let simplyTranslateInstance = document.getElementById(
   "simply-translate-instance"
 );
+let wikipediaInstance = document.getElementById("wikipedia-instance");
 let disableNitter = document.getElementById("disable-nitter");
 let disableInvidious = document.getElementById("disable-invidious");
 let disableBibliogram = document.getElementById("disable-bibliogram");
@@ -48,6 +52,7 @@ let disableSearchEngine = document.getElementById("disable-search-engine");
 let disableSimplyTranslate = document.getElementById(
   "disable-simply-translate"
 );
+let disableWikipedia = document.getElementById("disable-wikipedia");
 let alwaysProxy = document.getElementById("always-proxy");
 let onlyEmbeddedVideo = document.getElementById("only-embed");
 let videoQuality = document.getElementById("video-quality");
@@ -100,6 +105,7 @@ browser.storage.sync.get(
     "redditInstance",
     "searchEngineInstance",
     "simplyTranslateInstance",
+    "wikipediaInstance",
     "disableNitter",
     "disableInvidious",
     "disableBibliogram",
@@ -107,6 +113,7 @@ browser.storage.sync.get(
     "disableReddit",
     "disableSearchEngine",
     "disableSimplyTranslate",
+    "disableWikipedia",
     "alwaysProxy",
     "onlyEmbeddedVideo",
     "videoQuality",
@@ -135,6 +142,7 @@ browser.storage.sync.get(
     searchEngineInstance.value =
       (result.searchEngineInstance && result.searchEngineInstance.link) || "";
     simplyTranslateInstance.value = result.simplyTranslateInstance || "";
+    wikipediaInstance.value = result.wikipediaInstance || "";
     disableNitter.checked = !result.disableNitter;
     disableInvidious.checked = !result.disableInvidious;
     disableBibliogram.checked = !result.disableBibliogram;
@@ -142,6 +150,7 @@ browser.storage.sync.get(
     disableReddit.checked = !result.disableReddit;
     disableSearchEngine.checked = !result.disableSearchEngine;
     disableSimplyTranslate.checked = !result.disableSimplyTranslate;
+    disableWikipedia.checked = !result.disableWikipedia;
     alwaysProxy.checked = result.alwaysProxy;
     onlyEmbeddedVideo.checked = result.onlyEmbeddedVideo;
     videoQuality.value = result.videoQuality || "";
@@ -328,6 +337,18 @@ simplyTranslateInstance.addEventListener(
   simplyTranslateInstanceChange
 );
 
+const wikipediaInstanceChange = debounce(() => {
+  if (wikipediaInstance.checkValidity()) {
+    browser.storage.sync.set({
+      wikipediaInstance: parseURL(wikipediaInstance.value),
+    });
+  }
+}, 500);
+wikipediaInstance.addEventListener(
+  "input",
+  wikipediaInstanceChange
+);
+
 disableNitter.addEventListener("change", (event) => {
   browser.storage.sync.set({ disableNitter: !event.target.checked });
 });
@@ -356,6 +377,10 @@ disableSimplyTranslate.addEventListener("change", (event) => {
   browser.storage.sync.set({ disableSimplyTranslate: !event.target.checked });
 });
 
+disableWikipedia.addEventListener("change", (event) => {
+  browser.storage.sync.set({ disableWikipedia: !event.target.checked });
+});
+
 alwaysProxy.addEventListener("change", (event) => {
   browser.storage.sync.set({ alwaysProxy: event.target.checked });
 });