🥅 Catch errors caused by null config (#682)

Fixes #682
This commit is contained in:
Alicia Sykes 2022-05-28 15:48:10 +01:00
parent c520d8314f
commit bc43caaf96
3 changed files with 21 additions and 4 deletions

View File

@ -19,7 +19,17 @@ import { metaTagData, startingView, routePaths } from '@/utils/defaults';
import ErrorHandler from '@/utils/ErrorHandler';
// Import data from users conf file. Note that rebuild is required for this to update.
import { pages, pageInfo, appConfig } from '../public/conf.yml';
import conf from '../public/conf.yml';
if (!conf) {
ErrorHandler('You\'ve not got any data in your config file yet.');
}
// Assign top-level config fields, check not null
const config = conf || {};
const pages = config.pages || [];
const pageInfo = config.pageInfo || {};
const appConfig = config.appConfig || {};
Vue.use(Router);
const progress = new Progress({ color: 'var(--progress-bar)' });

View File

@ -56,9 +56,11 @@ const store = new Vuex.Store({
return state.config;
},
pageInfo(state) {
if (!state.config) return {};
return state.config.pageInfo || {};
},
appConfig(state) {
if (!state.config) return {};
return state.config.appConfig || {};
},
sections(state) {
@ -140,8 +142,9 @@ const store = new Vuex.Store({
state.config = config;
},
[SET_REMOTE_CONFIG](state, config) {
if (!config.appConfig) config.appConfig = {};
state.remoteConfig = config;
const notNullConfig = config || {};
if (!notNullConfig.appConfig) notNullConfig.appConfig = {};
state.remoteConfig = notNullConfig;
},
[SET_LANGUAGE](state, lang) {
const newConfig = state.config;

View File

@ -31,7 +31,11 @@ export default class ConfigAccumulator {
appConfig() {
let appConfigFile = {};
// Set app config from file
if (this.conf) appConfigFile = this.conf.appConfig || buildConf.appConfig || {};
if (this.conf && this.conf.appConfig) {
appConfigFile = this.conf.appConfig;
} else if (buildConf && buildConf.appConfig) {
appConfigFile = buildConf.appConfig;
}
// Fill in defaults if anything missing
let usersAppConfig = defaultAppConfig;
if (localStorage[localStorageKeys.APP_CONFIG]) {