Open the corresponding tab when a server is clicked in settings page
This commit is contained in:
parent
e4d1ab2938
commit
803366872a
|
@ -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),
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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)}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
|
|
@ -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}
|
||||
/>,
|
||||
|
|
Loading…
Reference in a new issue