blob: f96bd73c219ce5e7b761fc4034fb7543beb5534c [file] [log] [blame]
AviZi280f8012017-06-09 02:39:56 +03001/*!
svishnev7c727c12018-05-24 13:20:51 +03002 * Copyright © 2016-2018 European Support Limited
AviZi280f8012017-06-09 02:39:56 +03003 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
13 * or implied. See the License for the specific language governing
14 * permissions and limitations under the License.
15 */
Michael Landoefa037d2017-02-19 12:57:33 +020016import React from 'react';
talig8e9c0652017-12-20 14:30:43 +020017import PropTypes from 'prop-types';
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020018import { Provider } from 'react-redux';
AviZi280f8012017-06-09 02:39:56 +030019import GlobalModal from 'nfvo-components/modal/GlobalModal.js';
svishnev7c727c12018-05-24 13:20:51 +030020import Notifications from 'nfvo-components/notification/Notifications.js';
Michael Landoefa037d2017-02-19 12:57:33 +020021import Loader from 'nfvo-components/loader/Loader.jsx';
talig8e9c0652017-12-20 14:30:43 +020022import WebSocketUtil from 'nfvo-utils/WebSocketUtil.js';
23import UserNotificationsActionHelper from 'sdc-app/onboarding/userNotifications/UserNotificationsActionHelper.js';
Michael Landoefa037d2017-02-19 12:57:33 +020024import store from './AppStore.js';
svishnevd3886bb2018-01-08 15:21:46 +020025import FeaturesActionHelper from 'sdc-app/features/FeaturesActionHelper.js';
Michael Landoefa037d2017-02-19 12:57:33 +020026
27class Application extends React.Component {
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020028 static propTypes = {
29 openSocket: PropTypes.bool
30 };
31 componentDidMount() {
32 const { openSocket = true } = this.props;
33 if (openSocket) {
34 UserNotificationsActionHelper.notificationsFirstHandling(
35 store.dispatch
36 );
37 }
38 FeaturesActionHelper.getFeaturesList(store.dispatch);
39 }
40 componentWillUnmount() {
41 WebSocketUtil.close();
42 }
43 render() {
44 return (
45 <Provider store={store}>
46 <div>
47 <GlobalModal />
svishnev7c727c12018-05-24 13:20:51 +030048 <Notifications />
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020049 {this.props.children}
50 <Loader />
51 </div>
52 </Provider>
53 );
54 }
Michael Landoefa037d2017-02-19 12:57:33 +020055}
56
57export default Application;