// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. // See License.txt for license information. var AdminSidebar = require('./admin_sidebar.jsx'); var AdminStore = require('../../stores/admin_store.jsx'); var AsyncClient = require('../../utils/async_client.jsx'); var LoadingScreen = require('../loading_screen.jsx'); var EmailSettingsTab = require('./email_settings.jsx'); var LogSettingsTab = require('./log_settings.jsx'); var LogsTab = require('./logs.jsx'); export default class AdminController extends React.Component { constructor(props) { super(props); this.selectTab = this.selectTab.bind(this); this.onConfigListenerChange = this.onConfigListenerChange.bind(this); this.state = { config: null, selected: 'email_settings' }; } componentDidMount() { AdminStore.addConfigChangeListener(this.onConfigListenerChange); AsyncClient.getConfig(); } componentWillUnmount() { AdminStore.removeConfigChangeListener(this.onConfigListenerChange); } onConfigListenerChange() { this.setState({ config: AdminStore.getConfig(), selected: this.state.selected }); } selectTab(tab) { this.setState({selected: tab}); } render() { var tab = ; if (this.state.config != null) { if (this.state.selected === 'email_settings') { tab = ; } else if (this.state.selected === 'log_settings') { tab = ; } else if (this.state.selected === 'logs') { tab = ; } } return (
); } }