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,
|
disablewebsecurity: React.PropTypes.bool.isRequired,
|
||||||
onUnreadCountChange: React.PropTypes.func.isRequired,
|
onUnreadCountChange: React.PropTypes.func.isRequired,
|
||||||
teams: React.PropTypes.array.isRequired,
|
teams: React.PropTypes.array.isRequired,
|
||||||
onTeamConfigChange: React.PropTypes.func.isRequired
|
onTeamConfigChange: React.PropTypes.func.isRequired,
|
||||||
|
initialIndex: React.PropTypes.number.isRequired
|
||||||
},
|
},
|
||||||
|
|
||||||
getInitialState() {
|
getInitialState() {
|
||||||
return {
|
return {
|
||||||
key: 0,
|
key: this.props.initialIndex,
|
||||||
unreadCounts: new Array(this.props.teams.length),
|
unreadCounts: new Array(this.props.teams.length),
|
||||||
mentionCounts: new Array(this.props.teams.length),
|
mentionCounts: new Array(this.props.teams.length),
|
||||||
unreadAtActive: new Array(this.props.teams.length),
|
unreadAtActive: new Array(this.props.teams.length),
|
||||||
|
|
|
@ -14,8 +14,9 @@ const appLauncher = new AutoLaunch({
|
||||||
isHidden: true
|
isHidden: true
|
||||||
});
|
});
|
||||||
|
|
||||||
function backToIndex() {
|
function backToIndex(index) {
|
||||||
remote.getCurrentWindow().loadURL('file://' + __dirname + '/index.html');
|
const target = typeof index === 'undefined' ? 0 : index;
|
||||||
|
remote.getCurrentWindow().loadURL(`file://${__dirname}/index.html?index=${target}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
const SettingsPage = React.createClass({
|
const SettingsPage = React.createClass({
|
||||||
|
@ -182,6 +183,7 @@ const SettingsPage = React.createClass({
|
||||||
onTeamsChange={this.handleTeamsChange}
|
onTeamsChange={this.handleTeamsChange}
|
||||||
updateTeam={this.updateTeam}
|
updateTeam={this.updateTeam}
|
||||||
addServer={this.addServer}
|
addServer={this.addServer}
|
||||||
|
onTeamClick={backToIndex}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
|
|
|
@ -12,7 +12,8 @@ const TeamList = React.createClass({
|
||||||
addServer: React.PropTypes.func,
|
addServer: React.PropTypes.func,
|
||||||
updateTeam: React.PropTypes.func,
|
updateTeam: React.PropTypes.func,
|
||||||
toggleAddTeamForm: React.PropTypes.func,
|
toggleAddTeamForm: React.PropTypes.func,
|
||||||
setAddTeamFormVisibility: React.PropTypes.func
|
setAddTeamFormVisibility: React.PropTypes.func,
|
||||||
|
onTeamClick: React.PropTypes.func
|
||||||
},
|
},
|
||||||
|
|
||||||
getInitialState() {
|
getInitialState() {
|
||||||
|
@ -92,6 +93,7 @@ const TeamList = React.createClass({
|
||||||
url={team.url}
|
url={team.url}
|
||||||
onTeamRemove={handleTeamRemove}
|
onTeamRemove={handleTeamRemove}
|
||||||
onTeamEditing={handleTeamEditing}
|
onTeamEditing={handleTeamEditing}
|
||||||
|
onTeamClick={this.props.onTeamClick.bind(this, i)}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
|
@ -16,12 +16,16 @@ class TeamListItem extends React.Component {
|
||||||
render() {
|
render() {
|
||||||
var style = {
|
var style = {
|
||||||
left: {
|
left: {
|
||||||
display: 'inline-block'
|
display: 'inline-block',
|
||||||
|
cursor: 'pointer'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<div className='teamListItem list-group-item'>
|
<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>
|
<h4 className='list-group-item-heading'>{ this.props.name }</h4>
|
||||||
<p className='list-group-item-text'>
|
<p className='list-group-item-text'>
|
||||||
{ this.props.url }
|
{ this.props.url }
|
||||||
|
@ -47,6 +51,7 @@ TeamListItem.propTypes = {
|
||||||
name: React.PropTypes.string,
|
name: React.PropTypes.string,
|
||||||
onTeamEditing: React.PropTypes.func,
|
onTeamEditing: React.PropTypes.func,
|
||||||
onTeamRemove: React.PropTypes.func,
|
onTeamRemove: React.PropTypes.func,
|
||||||
|
onTeamClick: React.PropTypes.func,
|
||||||
url: React.PropTypes.string
|
url: React.PropTypes.string
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,9 @@ const {remote, ipcRenderer} = require('electron');
|
||||||
const MainPage = require('./components/MainPage.jsx');
|
const MainPage = require('./components/MainPage.jsx');
|
||||||
|
|
||||||
const AppConfig = require('./config/AppConfig.js');
|
const AppConfig = require('./config/AppConfig.js');
|
||||||
|
const url = require('url');
|
||||||
|
|
||||||
|
const settings = require('../common/settings');
|
||||||
const badge = require('./js/badge');
|
const badge = require('./js/badge');
|
||||||
|
|
||||||
remote.getCurrentWindow().removeAllListeners('focus');
|
remote.getCurrentWindow().removeAllListeners('focus');
|
||||||
|
@ -86,10 +89,14 @@ function teamConfigChange(teams) {
|
||||||
AppConfig.set('teams', 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(
|
ReactDOM.render(
|
||||||
<MainPage
|
<MainPage
|
||||||
disablewebsecurity={AppConfig.data.disablewebsecurity}
|
disablewebsecurity={AppConfig.data.disablewebsecurity}
|
||||||
teams={AppConfig.data.teams}
|
teams={AppConfig.data.teams}
|
||||||
|
initialIndex={initialIndex}
|
||||||
onUnreadCountChange={showUnreadBadge}
|
onUnreadCountChange={showUnreadBadge}
|
||||||
onTeamConfigChange={teamConfigChange}
|
onTeamConfigChange={teamConfigChange}
|
||||||
/>,
|
/>,
|
||||||
|
|
Loading…
Reference in a new issue