Merge pull request #3555 from thelounge/xpaw/apply-theme

Apply user theme as soon as possible on page load
This commit is contained in:
Pavel Djundik 2019-12-06 17:56:06 +02:00 committed by GitHub
commit 3224c988b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -61,6 +61,29 @@
document.getElementById("loading").remove(); document.getElementById("loading").remove();
}; };
// Apply user theme as soon as possible, before any other code loads
// This prevents flash of white while other code loads and socket connects
try {
const userSettings = JSON.parse(localStorage.getItem("settings"));
const themeEl = document.getElementById("theme");
if (
typeof userSettings.theme === "string" &&
themeEl.dataset.serverTheme !== userSettings.theme
) {
themeEl.attributes.href.value = `themes/${userSettings.theme}.css`;
}
if (
typeof userSettings.userStyles === "string" &&
!/[?&]nocss/.test(window.location.search)
) {
document.getElementById("user-specified-css").innerHTML = userSettings.userStyles;
}
} catch (e) {
//
}
// Trigger early service worker registration // Trigger early service worker registration
if ("serviceWorker" in navigator) { if ("serviceWorker" in navigator) {
navigator.serviceWorker.register("service-worker.js"); navigator.serviceWorker.register("service-worker.js");