From e6159a22d81ff9a4359c613b1fbb32192091a047 Mon Sep 17 00:00:00 2001 From: MrTimscampi Date: Sun, 9 Aug 2020 13:24:16 +0200 Subject: [PATCH 1/3] Fix themes not loading unless signed in --- src/scripts/autoThemes.js | 4 +++ src/scripts/settings/webSettings.js | 39 ++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/scripts/autoThemes.js b/src/scripts/autoThemes.js index dad8c10322..75309f377b 100644 --- a/src/scripts/autoThemes.js +++ b/src/scripts/autoThemes.js @@ -3,6 +3,10 @@ import skinManager from 'skinManager'; import connectionManager from 'connectionManager'; import events from 'events'; +// Set the default theme when loading +skinManager.setTheme(userSettings.theme()); + +// Set the user's prefered theme when signing in events.on(connectionManager, 'localusersignedin', function (e, user) { skinManager.setTheme(userSettings.theme()); }); diff --git a/src/scripts/settings/webSettings.js b/src/scripts/settings/webSettings.js index 800b56ec7c..7915e7af76 100644 --- a/src/scripts/settings/webSettings.js +++ b/src/scripts/settings/webSettings.js @@ -1,21 +1,41 @@ + let data; -function getConfig() { +async function getConfig() { if (data) return Promise.resolve(data); - return fetch('config.json?nocache=' + new Date().getUTCMilliseconds()).then(response => { - data = response.json(); + try { + const response = await fetch('config.json', { + cache: 'no-cache' + }); + + if (!response.ok) { + throw new Error('network response was not ok'); + } + + data = await response.json(); + return data; - }).catch(error => { - console.warn('web config file is missing so the template will be used'); + } catch (error) { + console.warn('failed to fetch the web config file:', error); return getDefaultConfig(); - }); + } } -function getDefaultConfig() { - return fetch('config.template.json').then(function (response) { +async function getDefaultConfig() { + try { + const response = await fetch('config.template.json', { + cache: 'no-cache' + }); + + if (!response.ok) { + throw new Error('network response was not ok'); + } + data = response.json(); return data; - }); + } catch (error) { + console.error('failed to fetch the default web config file:', error); + } } export function getMultiServer() { @@ -29,6 +49,7 @@ export function getMultiServer() { export function getThemes() { return getConfig().then(config => { + console.warn(config.themes); return config.themes; }).catch(error => { console.log('cannot get web config:', error); From 862489c73d3b76289bf4e0116f7d5d81b9d76e33 Mon Sep 17 00:00:00 2001 From: MrTimscampi Date: Sun, 9 Aug 2020 14:24:59 +0200 Subject: [PATCH 2/3] Fix forgotten await and warn --- src/scripts/settings/webSettings.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/scripts/settings/webSettings.js b/src/scripts/settings/webSettings.js index 7915e7af76..edd4d6e1f4 100644 --- a/src/scripts/settings/webSettings.js +++ b/src/scripts/settings/webSettings.js @@ -31,7 +31,7 @@ async function getDefaultConfig() { throw new Error('network response was not ok'); } - data = response.json(); + data = await response.json(); return data; } catch (error) { console.error('failed to fetch the default web config file:', error); @@ -49,7 +49,6 @@ export function getMultiServer() { export function getThemes() { return getConfig().then(config => { - console.warn(config.themes); return config.themes; }).catch(error => { console.log('cannot get web config:', error); From 37bd08fef6def998e0ff7715ae8e29733e1ca471 Mon Sep 17 00:00:00 2001 From: Julien Machiels Date: Tue, 11 Aug 2020 15:32:40 +0200 Subject: [PATCH 3/3] Update src/scripts/settings/webSettings.js Co-authored-by: Cameron --- src/scripts/settings/webSettings.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/scripts/settings/webSettings.js b/src/scripts/settings/webSettings.js index edd4d6e1f4..2ffe290d88 100644 --- a/src/scripts/settings/webSettings.js +++ b/src/scripts/settings/webSettings.js @@ -1,4 +1,3 @@ - let data; async function getConfig() {