2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
6 * Copyright © 2017-2018 Amdocs
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
21 import React, {Component} from 'react';
22 import {connect} from 'react-redux';
23 import * as Extensibility from './extensibility/index.js';
24 import TierSupport from './tierSupport/TierSupport.jsx';
25 import VnfSearch from './vnfSearch/VnfSearch.jsx';
26 import MainScreenHeader from './MainScreenHeader.jsx';
27 import {decryptParamsForView, changeUrlAddress} from 'utils/Routes.js';
35 } from 'react-router-dom';
39 extensibleViewNetworkCallback,
40 overlayNetworkCallback,
41 extensibleViewMessageCallback
42 } from './MainScreenWrapperActionHelper.js';
44 import extensibleViews from 'resources/views/extensibleViews.json';
46 const mapStateToProps = ({mainWrapper}) => {
49 toggleButtonActive = false,
50 extensibleViewNetworkCallbackData = {}
56 extensibleViewNetworkCallbackData
60 const mapActionsToProps = (dispatch) => {
62 onWindowSizeChange: () => dispatch(windowResize()),
63 onExtensibleViewNetworkCallback: (apiUrl,body,viewName,curViewData) => {
64 dispatch(extensibleViewNetworkCallback(apiUrl,body,viewName,curViewData));
66 onExtensibleViewMessageCallback: (message, messageSevirity) => {
67 dispatch(extensibleViewMessageCallback(message, messageSevirity));
69 onOverlayNetworkCallback: (apiUrl, body, viewName, curViewData, responseEventKey) => {
70 dispatch(overlayNetworkCallback(apiUrl, body, viewName, curViewData, responseEventKey));
75 class MainScreenWrapper extends Component {
79 window.addEventListener('resize', () => {
80 this.props.onWindowSizeChange();
89 onExtensibleViewNetworkCallback,
90 extensibleViewNetworkCallbackData,
91 onExtensibleViewMessageCallback,
92 onOverlayNetworkCallback
95 let customViewList = [];
96 extensibleViews.forEach(function(view,key) {
97 var renderComponent = (props) => {
99 if(props.match.params.extensibleViewParams !== undefined) {
100 viewParams = decryptParamsForView(props.match.params.extensibleViewParams);
103 if (Extensibility.default.hasOwnProperty(view.componentName)) {
104 let Component = Extensibility.default[view.componentName];
108 networkingCallback={(apiUrl, body, paramName, curViewData) => {
109 onExtensibleViewNetworkCallback(apiUrl, body, paramName, curViewData);
111 overlayCallback={(apiUrl, body, paramName, curOverlayData,responseEventKey) => {
112 onOverlayNetworkCallback(apiUrl, body, paramName, curOverlayData, responseEventKey);
114 messagingCallback ={(message, messageSeverity) => {
115 onExtensibleViewMessageCallback(message, messageSeverity);
117 changeRouteCallback = {(routeParam, historyObj) => {
118 changeUrlAddress(routeParam, historyObj);
120 viewName={view.displayName}
121 viewData={extensibleViewNetworkCallbackData}
122 viewParams={viewParams}/>
128 <Route key={extensibleViews[key]['viewName'] + 'Route'} path={'/' + extensibleViews[key]['viewName'] + '/:extensibleViewParams?' }
129 render={renderComponent}/>
135 <div className='main-app-container'>
137 <Redirect from='/' exact to='/schema'/>
139 <Route key='MainScreenHeaderRoute' path='/:externalUrl?' component={MainScreenHeader}/>
140 <Route key='TierSupportRoue' path='/schema/:viParam?' component={TierSupport}/>
141 <Route key='VnfSearchRoute' path='/vnfSearch/:filters?' component={VnfSearch}/>
149 export default connect(mapStateToProps, mapActionsToProps)(MainScreenWrapper);