open5gs/webui/src/containers/App.js

72 lines
1.6 KiB
JavaScript
Raw Normal View History

2017-06-07 13:49:36 +00:00
import { Component } from 'react';
2017-06-07 12:16:05 +00:00
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
2017-06-08 03:28:28 +00:00
import { bindActionCreators, compose } from 'redux';
2017-06-07 13:49:36 +00:00
2017-06-08 06:33:22 +00:00
import * as uiActions from '../actions/ui';
2017-06-09 03:26:33 +00:00
import withWidth, { SMALL } from '../lib/with-width';
2017-06-07 12:16:05 +00:00
2017-06-09 05:22:26 +00:00
import { Layout } from 'components';
import PdnContainer from 'containers/PdnContainer';
import UserContainer from 'containers/UserContainer';
2017-06-07 12:16:05 +00:00
2017-06-07 13:49:36 +00:00
class App extends Component {
static propTypes = {
session: PropTypes.object.isRequired,
view: PropTypes.string.isRequired,
width: PropTypes.number.isRequired
}
static defaultProps = {
view: "pdn"
}
componentWillMount() {
const {
width,
2017-06-08 06:33:22 +00:00
UIActions
2017-06-07 13:49:36 +00:00
} = this.props;
if (width !== SMALL) {
2017-06-08 06:33:22 +00:00
UIActions.setSidebarVisibility(true);
2017-06-07 13:49:36 +00:00
}
}
render() {
const {
view
} = this.props;
return (
<Layout>
<Layout.Container visible={view === "pdn"}>
<PdnContainer/>
</Layout.Container>
<Layout.Container visible={view === "user"}>
<UserContainer/>
</Layout.Container>
<Layout.Container visible={view === "test1"}>
<Layout.Content>{view}</Layout.Content>
</Layout.Container>
<Layout.Container visible={view === "test3"}>
<Layout.Content>{view}</Layout.Content>
</Layout.Container>
</Layout>
)
}
2017-06-07 12:16:05 +00:00
}
2017-06-07 13:49:36 +00:00
const enhance = compose(
withWidth(),
connect(
(state) => ({
2017-06-08 06:33:22 +00:00
view: state.ui.sidebar.view
2017-06-07 13:49:36 +00:00
}),
(dispatch) => ({
2017-06-08 06:33:22 +00:00
UIActions: bindActionCreators(uiActions, dispatch)
2017-06-07 13:49:36 +00:00
})
)
);
export default enhance(App);