optimise and add prefer dark theme detection back

This commit is contained in:
David Ralph
2020-09-16 17:14:38 +01:00
parent 8b79f82e29
commit 97f680d738
2 changed files with 15 additions and 25 deletions

View File

@@ -65,34 +65,25 @@ export default class SettingsFunctions {
window.location.reload();
}
static setDefaultSettings() {
static async setDefaultSettings() {
localStorage.clear();
defaultSettings.forEach((element) => localStorage.setItem(element.name, element.value));
// Set theme depending on user preferred
// if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) localStorage.setItem('darkTheme', true);
//else localStorage.setItem('darkTheme', false);
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) localStorage.setItem('darkTheme', true);
else localStorage.setItem('darkTheme', false);
switch(detectBrowserLanguage()) {
case 'nl':
localStorage.setItem('language', 'nl');
document.documentElement.lang = 'nl';
break;
case 'no':
localStorage.setItem('language', 'no');
document.documentElement.lang = 'no';
break;
case 'fr':
localStorage.setItem('language', 'fr');
document.documentElement.lang = 'fr';
break;
case 'ru':
localStorage.setItem('language', 'ru');
document.documentElement.lang = 'ru';
break;
default:
localStorage.setItem('language', 'en');
}
// Webp support
const supportsWebP = require('supports-webp'); // We import it here so it doesn't run the function on each page load
if (supportsWebP) localStorage.setItem('supportswebp', 'true');
// Languages
const languages = ['nl', 'no', 'fr', 'ru'];
const browserLanguage = detectBrowserLanguage();
if (languages.includes(browserLanguage)) {
localStorage.setItem('language', browserLanguage);
document.documentElement.lang = browserLanguage;
} else localStorage.setItem('language', 'en');
// Finally we set this to true so it doesn't run the function on every load
localStorage.setItem('firstRun', true);