From 54f7eb3657490c697211af8506b683d6909179dd Mon Sep 17 00:00:00 2001 From: Yuya Ochiai Date: Thu, 14 Jan 2016 23:27:37 +0900 Subject: [PATCH] Fix some error cases when the number of teams is zero * There is no config.json * config.teams.length === 0 --- src/browser/index.jsx | 3 +++ src/browser/settings.jsx | 9 +++++++-- src/common/settings.js | 8 ++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/browser/index.jsx b/src/browser/index.jsx index 190570d4..43790a6b 100644 --- a/src/browser/index.jsx +++ b/src/browser/index.jsx @@ -210,6 +210,9 @@ try { } catch (e) { window.location = 'settings.html'; } +if (config.teams.length === 0) { + window.location = 'settings.html'; +} var contextMenu = require('./menus/context'); var menu = contextMenu.createDefault(); diff --git a/src/browser/settings.jsx b/src/browser/settings.jsx index 50c796c0..e4dd9ee5 100644 --- a/src/browser/settings.jsx +++ b/src/browser/settings.jsx @@ -14,7 +14,12 @@ const Glyphicon = ReactBootstrap.Glyphicon; var SettingsPage = React.createClass({ getInitialState: function() { - var config = settings.readFileSync(this.props.configFile); + var config; + try { + config = settings.readFileSync(this.props.configFile); + } catch (e) { + config = settings.loadDefault(); + } return { teams: config.teams, hideMenuBar: config.hideMenuBar @@ -76,7 +81,7 @@ var SettingsPage = React.createClass({ { ' ' } - + diff --git a/src/common/settings.js b/src/common/settings.js index 5fd345e8..e63dee0e 100644 --- a/src/common/settings.js +++ b/src/common/settings.js @@ -38,5 +38,13 @@ module.exports = { } var data = JSON.stringify(config, null, ' '); fs.writeFileSync(configFile, data, 'utf8'); + }, + + loadDefault: function() { + return { + teams: [], + hideMenuBar: false, + version: version + }; } };