about summary refs log tree commit diff stats
path: root/src/pages/options/twitter.js
blob: 1f6be4e17703648c3b1c6dc06a9de67e7a73b276 (plain) (blame)
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
import twitterHelper from "../../assets/javascripts/helpers/twitter.js";
import commonHelper from "../../assets/javascripts/helpers/common.js";
import shared from "./shared.js";

const nitterInstances = twitterHelper.redirects;

let nitterInstanceElement = document.getElementById("nitter-instance");
let disableNitterElement = document.getElementById("disable-nitter");
let nitterRandomPoolElement = document.getElementById("nitter-random-pool");
let removeTwitterSWElement = document.getElementById("remove-twitter-sw");

browser.storage.sync.get(
    [
        "nitterInstance",
        "disableNitter",
        "nitterRandomPool",
        "removeTwitterSW",
    ],
    (result) => {
        nitterInstanceElement.value = result.nitterInstance || "";
        disableNitterElement.checked = !result.disableNitter;
        nitterRandomPoolElement.value = result.nitterRandomPool || commonHelper.filterInstances(nitterInstances);
        removeTwitterSWElement.checked = !result.removeTwitterSW;
        let id = "nitter-instance"
        let instances = nitterRandomPoolElement.value.split(',')
        shared.autocompletes.push({ id: id, instances: instances })
        shared.autocomplete(document.getElementById(id), instances);
    }
)

nitterInstanceElement.addEventListener("input", commonHelper.debounce(() => {
    if (nitterInstanceElement.checkValidity()) {
        browser.storage.sync.set({
            nitterInstance: shared.parseURL(nitterInstanceElement.value),
        });
    }
}, 500));

disableNitterElement.addEventListener("change", (event) => {
    browser.storage.sync.set({ disableNitter: !event.target.checked });
});

removeTwitterSWElement.addEventListener("change", (event) => {
    browser.storage.sync.set({ removeTwitterSW: !event.target.checked });
});

nitterRandomPoolElement.addEventListener("input", commonHelper.debounce(() => {
    browser.storage.sync.set({ nitterRandomPool: nitterRandomPoolElement.value });
}, 500));