Open the corresponding tab when a server is clicked in settings page

This commit is contained in:
Yuya Ochiai 2017-01-29 21:40:20 +09:00
parent e4d1ab2938
commit 803366872a
5 changed files with 24 additions and 7 deletions

View file

@ -39,12 +39,13 @@ const MainPage = React.createClass({
disablewebsecurity: React.PropTypes.bool.isRequired,
onUnreadCountChange: React.PropTypes.func.isRequired,
teams: React.PropTypes.array.isRequired,
onTeamConfigChange: React.PropTypes.func.isRequired
onTeamConfigChange: React.PropTypes.func.isRequired,
initialIndex: React.PropTypes.number.isRequired
},
getInitialState() {
return {
key: 0,
key: this.props.initialIndex,
unreadCounts: new Array(this.props.teams.length),
mentionCounts: new Array(this.props.teams.length),
unreadAtActive: new Array(this.props.teams.length),

View file

@ -14,8 +14,9 @@ const appLauncher = new AutoLaunch({
isHidden: true
});
function backToIndex() {
remote.getCurrentWindow().loadURL('file://' + __dirname + '/index.html');
function backToIndex(index) {
const target = typeof index === 'undefined' ? 0 : index;
remote.getCurrentWindow().loadURL(`file://${__dirname}/index.html?index=${target}`);
}
const SettingsPage = React.createClass({
@ -182,6 +183,7 @@ const SettingsPage = React.createClass({
onTeamsChange={this.handleTeamsChange}
updateTeam={this.updateTeam}
addServer={this.addServer}
onTeamClick={backToIndex}
/>
</Col>
</Row>

View file

@ -12,7 +12,8 @@ const TeamList = React.createClass({
addServer: React.PropTypes.func,
updateTeam: React.PropTypes.func,
toggleAddTeamForm: React.PropTypes.func,
setAddTeamFormVisibility: React.PropTypes.func
setAddTeamFormVisibility: React.PropTypes.func,
onTeamClick: React.PropTypes.func
},
getInitialState() {
@ -92,6 +93,7 @@ const TeamList = React.createClass({
url={team.url}
onTeamRemove={handleTeamRemove}
onTeamEditing={handleTeamEditing}
onTeamClick={this.props.onTeamClick.bind(this, i)}
/>
);
});

View file

@ -16,12 +16,16 @@ class TeamListItem extends React.Component {
render() {
var style = {
left: {
display: 'inline-block'
display: 'inline-block',
cursor: 'pointer'
}
};
return (
<div className='teamListItem list-group-item'>
<div style={style.left}>
<div
style={style.left}
onClick={this.props.onTeamClick}
>
<h4 className='list-group-item-heading'>{ this.props.name }</h4>
<p className='list-group-item-text'>
{ this.props.url }
@ -47,6 +51,7 @@ TeamListItem.propTypes = {
name: React.PropTypes.string,
onTeamEditing: React.PropTypes.func,
onTeamRemove: React.PropTypes.func,
onTeamClick: React.PropTypes.func,
url: React.PropTypes.string
};

View file

@ -10,6 +10,9 @@ const {remote, ipcRenderer} = require('electron');
const MainPage = require('./components/MainPage.jsx');
const AppConfig = require('./config/AppConfig.js');
const url = require('url');
const settings = require('../common/settings');
const badge = require('./js/badge');
remote.getCurrentWindow().removeAllListeners('focus');
@ -86,10 +89,14 @@ function teamConfigChange(teams) {
AppConfig.set('teams', teams);
}
const parsedURL = url.parse(window.location.href, true);
const initialIndex = parsedURL.query.index ? parseInt(parsedURL.query.index, 10) : 0;
ReactDOM.render(
<MainPage
disablewebsecurity={AppConfig.data.disablewebsecurity}
teams={AppConfig.data.teams}
initialIndex={initialIndex}
onUnreadCountChange={showUnreadBadge}
onTeamConfigChange={teamConfigChange}
/>,