summaryrefslogtreecommitdiffstats
path: root/src/app/MainScreenWrapper.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/MainScreenWrapper.jsx')
-rw-r--r--src/app/MainScreenWrapper.jsx103
1 files changed, 103 insertions, 0 deletions
diff --git a/src/app/MainScreenWrapper.jsx b/src/app/MainScreenWrapper.jsx
new file mode 100644
index 0000000..ba2a0e9
--- /dev/null
+++ b/src/app/MainScreenWrapper.jsx
@@ -0,0 +1,103 @@
+/*
+ * ============LICENSE_START===================================================
+ * SPARKY (AAI UI service)
+ * ============================================================================
+ * Copyright © 2017 AT&T Intellectual Property.
+ * Copyright © 2017 Amdocs
+ * All rights reserved.
+ * ============================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=====================================================
+ *
+ * ECOMP and OpenECOMP are trademarks
+ * and service marks of AT&T Intellectual Property.
+ */
+
+import React, {Component} from 'react';
+import {connect} from 'react-redux';
+
+import TierSupport from './tierSupport/TierSupport.jsx';
+import VnfSearch from './vnfSearch/VnfSearch.jsx';
+import MainScreenHeader from './MainScreenHeader.jsx';
+
+import DynamicViewLoader from
+ 'generic-components/dynamicViewLoader/dynamicViewLoader.jsx';
+
+import {
+ Route,
+ HashRouter as Router,
+ Switch,
+ Redirect
+} from 'react-router-dom';
+
+import {
+ windowResize
+} from './MainScreenWrapperActionHelper.js';
+
+import customViews from 'resources/views/customViews.json';
+
+const mapStateToProps = ({mainWrapper}) => {
+ let {
+ showMenu = false,
+ toggleButtonActive = false
+ } = mainWrapper;
+
+ return {
+ showMenu,
+ toggleButtonActive
+ };
+};
+
+const mapActionsToProps = (dispatch) => {
+ return {
+ onWindowSizeChange: () => dispatch(windowResize())
+ };
+};
+
+class MainScreenWrapper extends Component {
+
+ constructor() {
+ super();
+ window.addEventListener('resize', () => {
+ this.props.onWindowSizeChange();
+ });
+ }
+
+ render() {
+ let customViewList = [];
+
+ // add all custom views
+ for (let view in customViews) {
+ customViewList.push(
+ <Route path={'/' + customViews[view]['viewName']}
+ component={DynamicViewLoader}/>
+ );
+ }
+
+ return (
+ <Router>
+ <div>
+ <Switch>
+ <Redirect from='/' exact to='/viewInspect'/>
+ </Switch>
+ <Route path='/' component={MainScreenHeader}/>
+ <Route path='/viewInspect/:viParam?' component={TierSupport}/>
+ <Route path='/vnfSearch/:vnfParam?' component={VnfSearch}/>
+ {customViewList}
+ </div>
+ </Router>
+ );
+ }
+}
+
+export default connect(mapStateToProps, mapActionsToProps)(MainScreenWrapper);