about summary refs log tree commit diff stats
path: root/src/pages/options/medium.js
blob: cd00c1a2a44000ca804b330b03d4c15014fdbb6d (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
import mediumHelper from "../../assets/javascripts/helpers/medium.js";
import commonHelper from "../../assets/javascripts/helpers/common.js";
import shared from "./shared.js";

const scribeInstances = mediumHelper.redirects;

let scribeInstanceElement = document.getElementById("scribe-instance");
let disableScribeElement = document.getElementById("disable-scribe");
let scribeRandomPoolElement = document.getElementById("scribe-random-pool");

browser.storage.sync.get(
    [
        "disableScribe",
        "scribeInstance",
        "scribeRandomPool",
    ],
    (result) => {
        scribeInstanceElement.value = result.scribeInstance || "";
        disableScribeElement.checked = !result.disableScribe;
        scribeRandomPoolElement.value = (result.scribeRandomPool || commonHelper.filterInstances(scribeInstances)).join("\n");
        let id = "scribe-instance";
        let instances = scribeRandomPoolElement.value.split(',')
        shared.autocompletes.push({ id: id, instances: instances })
        shared.autocomplete(document.getElementById(id), instances);
    }
)

disableScribeElement.addEventListener("change", (event) => {
    console.info("isScibeEnabled:", event.target.checked)
    browser.storage.sync.set({ disableScribe: !event.target.checked });
});

scribeInstanceElement.addEventListener("input", commonHelper.debounce(() => {
    if (scribeInstanceElement.checkValidity()) {
        console.info("selectedScribeInstance", scribeInstanceElement.value);
        browser.storage.sync.set({
            scribeInstance: shared.parseURL(scribeInstanceElement.value)
        });
    }
}, 500));

scribeRandomPoolElement.addEventListener("input", commonHelper.debounce(() => {
    browser.storage.sync.set({
        scribeRandomPool: scribeRandomPoolElement.value.split('\n')
    });
}, 500));