change url when a user navigates between tabs [#962]

Этот коммит содержится в:
Stas Vovk
2015-10-18 18:55:04 +03:00
родитель 7e457dd8d9
Коммит 9fa3c996d5
5 изменённых файлов: 26 добавлений и 6 удалений

Просмотреть файл

@@ -40,9 +40,13 @@ export default class AdminController extends React.Component {
config: AdminStore.getConfig(),
teams: AdminStore.getAllTeams(),
selectedTeams,
selected: 'service_settings',
selectedTeam: null
selected: props.tab || 'service_settings',
selectedTeam: props.teamId || null
};
if (!props.tab) {
history.replaceState(null, null, `/admin_console/${this.state.selected}`);
}
}
componentDidMount() {
@@ -142,7 +146,9 @@ export default class AdminController extends React.Component {
} else if (this.state.selected === 'service_settings') {
tab = <ServiceSettingsTab config={this.state.config} />;
} else if (this.state.selected === 'team_users') {
tab = <TeamUsersTab team={this.state.teams[this.state.selectedTeam]} />;
if (this.state.teams) {
tab = <TeamUsersTab team={this.state.teams[this.state.selectedTeam]} />;
}
}
}

Просмотреть файл

@@ -24,6 +24,7 @@ export default class AdminSidebar extends React.Component {
handleClick(name, teamId, e) {
e.preventDefault();
this.props.selectTab(name, teamId);
history.pushState({name: name, teamId: teamId}, null, `/admin_console/${name}/${teamId || ''}`);
}
isSelected(name, teamId) {

Просмотреть файл

@@ -5,9 +5,12 @@ var ErrorBar = require('../components/error_bar.jsx');
var SelectTeamModal = require('../components/admin_console/select_team_modal.jsx');
var AdminController = require('../components/admin_console/admin_controller.jsx');
export function setupAdminConsolePage() {
export function setupAdminConsolePage(props) {
ReactDOM.render(
<AdminController />,
<AdminController
tab={props.ActiveTab}
teamId={props.TeamId}
/>,
document.getElementById('admin_controller')
);