all repos — nasg @ 7edea821f46e45cab23646ecc780b4b6d3bd1943

templates/themeswitcher.js (view raw)

 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
var DEFAULT_THEME = 'dark';
var ALT_THEME = 'light';

function setTheme(mode) {
    var st = document.querySelector('#css_alt');
    var cb = document.querySelector('#contrast');
    if (mode == DEFAULT_THEME) {
        st.setAttribute("media", "speech");
        cb.checked = true;
    }
    else {
        st.setAttribute("media", "all");
        cb.checked = false;
    }
}

function toggleTheme(e) {
    var mode = DEFAULT_THEME;
    if (e.checked == false) {
        mode = ALT_THEME;
    }
    setTheme(mode);
    localStorage.setItem("theme", mode);
    return true;
}

function mqlTheme(e) {
    console.log(e);
    if (e.matches) {
        setTheme(ALT_THEME);
    }
    else {
        setTheme(DEFAULT_THEME);
    }
}

var theme = localStorage.getItem("theme");
if (theme != null) {
    setTheme(theme);
}
else {
    var mql = window.matchMedia("(prefers-color-scheme: " + ALT_THEME + ")");
    if(mql.matches) {
        setTheme(ALT_THEME);
    }
    mql.addListener(mqlTheme);
}