summaryrefslogtreecommitdiffstats
path: root/assets
diff options
context:
space:
mode:
authorThéo Gaillard <theo.gaillard@protonmail.com>2021-12-26 13:53:32 +0100
committerThéo Gaillard <theo.gaillard@protonmail.com>2021-12-26 13:53:32 +0100
commit73a142fd9b778162c129af2da1c6bdbe9b8ed69b (patch)
tree9282d674e14e5cde5b40eb0ec66e23260dc42d96 /assets
parent0453d08eedf8caa8c825efca028df63e9ec127ac (diff)
downloadinvidious-73a142fd9b778162c129af2da1c6bdbe9b8ed69b.tar.gz
invidious-73a142fd9b778162c129af2da1c6bdbe9b8ed69b.tar.bz2
invidious-73a142fd9b778162c129af2da1c6bdbe9b8ed69b.zip
fix: null ptr while loading/switching theme
Diffstat (limited to 'assets')
-rw-r--r--assets/js/themes.js21
1 files changed, 14 insertions, 7 deletions
diff --git a/assets/js/themes.js b/assets/js/themes.js
index 543b849e..470f10bf 100644
--- a/assets/js/themes.js
+++ b/assets/js/themes.js
@@ -11,7 +11,9 @@ toggle_theme.addEventListener('click', function () {
xhr.open('GET', url, true);
set_mode(dark_mode);
- window.localStorage.setItem('dark_mode', dark_mode ? 'dark' : 'light');
+ try {
+ window.localStorage.setItem('dark_mode', dark_mode ? 'dark' : 'light');
+ } catch {}
xhr.send();
});
@@ -23,9 +25,12 @@ window.addEventListener('storage', function (e) {
});
window.addEventListener('DOMContentLoaded', function () {
- window.localStorage.setItem('dark_mode', document.getElementById('dark_mode_pref').textContent);
- // Update localStorage if dark mode preference changed on preferences page
- update_mode(window.localStorage.dark_mode);
+ const dark_mode = document.getElementById('dark_mode_pref').textContent;
+ try {
+ // Update localStorage if dark mode preference changed on preferences page
+ window.localStorage.setItem('dark_mode', dark_mode);
+ } catch {}
+ update_mode(dark_mode);
});
@@ -37,9 +42,11 @@ lightScheme.addListener(scheme_switch);
function scheme_switch (e) {
// ignore this method if we have a preference set
- if (localStorage.getItem('dark_mode')) {
- return;
- }
+ try {
+ if (localStorage.getItem('dark_mode')) {
+ return;
+ }
+ } catch {}
if (e.matches) {
if (e.media.includes("dark")) {
set_mode(true);