diff --git a/src/browser/components/SettingsPage.jsx b/src/browser/components/SettingsPage.jsx index 08f3e341..c4509dfa 100644 --- a/src/browser/components/SettingsPage.jsx +++ b/src/browser/components/SettingsPage.jsx @@ -1,5 +1,6 @@ const React = require('react'); -const {Button, Checkbox, Col, FormGroup, Grid, Navbar, Row} = require('react-bootstrap'); +const ReactDOM = require('react-dom'); +const {Button, Checkbox, Col, FormGroup, FormControl, ControlLabel, Grid, Navbar, Row} = require('react-bootstrap'); const {ipcRenderer, remote} = require('electron'); const AutoLaunch = require('auto-launch'); @@ -114,7 +115,7 @@ const SettingsPage = React.createClass({ }, handleChangeTrayIconTheme() { this.setState({ - trayIconTheme: !this.refs.trayIconTheme.props.checked + trayIconTheme: ReactDOM.findDOMNode(this.refs.trayIconTheme).value }); }, handleChangeAutoStart() { @@ -189,16 +190,19 @@ const SettingsPage = React.createClass({ } if (process.platform === 'linux') { options.push( - {'Icon theme (Need to restart the application)'} - - - ); + + {'Icon theme (Need to restart the application)'} + + + + + ); } options.push( { } case 'linux': { - const theme = config.trayIconTheme || 'light'; - return { - normal: nativeImage.createFromPath(path.resolve(assetsDir, 'linux', theme, 'MenuIconTemplate.png')), - unread: nativeImage.createFromPath(path.resolve(assetsDir, 'linux', theme, 'MenuIconUnreadTemplate.png')), - mention: nativeImage.createFromPath(path.resolve(assetsDir, 'linux', theme, 'MenuIconMentionTemplate.png')) - }; + const theme = config.trayIconTheme; + try { + return { + normal: nativeImage.createFromPath(path.resolve(assetsDir, 'linux', theme, 'MenuIconTemplate.png')), + unread: nativeImage.createFromPath(path.resolve(assetsDir, 'linux', theme, 'MenuIconUnreadTemplate.png')), + mention: nativeImage.createFromPath(path.resolve(assetsDir, 'linux', theme, 'MenuIconMentionTemplate.png')) + }; + } catch (e) { + //Fallback for invalid theme setting + return { + normal: nativeImage.createFromPath(path.resolve(assetsDir, 'linux', 'light', 'MenuIconTemplate.png')), + unread: nativeImage.createFromPath(path.resolve(assetsDir, 'linux', 'light', 'MenuIconUnreadTemplate.png')), + mention: nativeImage.createFromPath(path.resolve(assetsDir, 'linux', 'light', 'MenuIconMentionTemplate.png')) + }; + } } default: return {};