mirror of
https://git.tt-rss.org/fox/tt-rss.git
synced 2025-08-06 06:07:29 +02:00
50 lines
1.7 KiB
JavaScript
50 lines
1.7 KiB
JavaScript
/* global UtilityApp */
|
|
|
|
/* TODO: this should probably be something like night_mode.js since it does nothing specific to utility scripts */
|
|
|
|
window.addEventListener("load", function() {
|
|
const UtilityJS = {
|
|
apply_night_mode: function (is_night, link) {
|
|
console.log("night mode changed to", is_night);
|
|
|
|
const light_theme = typeof __default_light_theme != 'undefined' ? __default_light_theme : 'themes/light.css';
|
|
const dark_theme = typeof __default_dark_theme != 'undefined' ? __default_dark_theme : 'themes/dark.css';
|
|
|
|
if (link) {
|
|
const css_override = is_night ? dark_theme : light_theme;
|
|
|
|
link.setAttribute("href", css_override + "?" + Date.now());
|
|
}
|
|
},
|
|
setup_night_mode: function() {
|
|
const mql = window.matchMedia('(prefers-color-scheme: dark)');
|
|
|
|
const link = document.createElement("link");
|
|
|
|
link.rel = "stylesheet";
|
|
link.id = "theme_auto_css";
|
|
|
|
link.onload = function() {
|
|
document.querySelector("body").removeClassName("css_loading");
|
|
|
|
if (typeof UtilityApp != "undefined")
|
|
UtilityApp.init();
|
|
};
|
|
|
|
try {
|
|
mql.addEventListener("change", () => {
|
|
UtilityJS.apply_night_mode(mql.matches, link);
|
|
});
|
|
} catch (e) {
|
|
console.warn("exception while trying to set MQL event listener");
|
|
}
|
|
|
|
document.querySelector("head").appendChild(link);
|
|
|
|
UtilityJS.apply_night_mode(mql.matches, link);
|
|
}
|
|
};
|
|
|
|
UtilityJS.setup_night_mode();
|
|
});
|