diff --git a/src/scripts/settings/webSettings.js b/src/scripts/settings/webSettings.js index 1304b83b9a..ae50c68285 100644 --- a/src/scripts/settings/webSettings.js +++ b/src/scripts/settings/webSettings.js @@ -1,4 +1,3 @@ - let data; const urlResolver = document.createElement('a'); @@ -86,12 +85,32 @@ export function getMultiServer() { }); } +const defaultTheme = { + 'name': 'Dark', + 'id': 'dark', + 'default': true +}; + +const checkDefaultTheme = (themes) => { + if (themes) { + const defaultTheme = themes.find((theme) => theme.default); + + if (!defaultTheme) { + themes.push(defaultTheme); + } + + return themes; + } + + return [defaultTheme]; +}; + export function getThemes() { return getConfig().then(config => { - return config.themes; + return checkDefaultTheme(Array.isArray(config.themes) ? config.themes : []); }).catch(error => { console.log('cannot get web config:', error); - return []; + return checkDefaultTheme(); }); } diff --git a/src/scripts/themeManager.js b/src/scripts/themeManager.js index ddaa9c4562..f7dcf597d1 100644 --- a/src/scripts/themeManager.js +++ b/src/scripts/themeManager.js @@ -17,18 +17,10 @@ function getThemes() { function getThemeStylesheetInfo(id) { return getThemes().then(themes => { - let theme = themes.find(theme => { + const theme = themes.find(theme => { return id ? theme.id === id : theme.default; }); - if (!theme) { - theme = { - 'name': 'Dark', - 'id': 'dark', - 'default': true - }; - } - return { stylesheetPath: 'themes/' + theme.id + '/theme.css', themeId: theme.id