/*! * Copyright © 2016-2018 European Support Limited * * 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. */ import React from 'react'; import PropTypes from 'prop-types'; import { Provider } from 'react-redux'; import GlobalModal from 'nfvo-components/modal/GlobalModal.js'; import Notifications from 'nfvo-components/notification/Notifications.js'; import Loader from 'nfvo-components/loader/Loader.jsx'; import WebSocketUtil from 'nfvo-utils/WebSocketUtil.js'; import UserNotificationsActionHelper from 'sdc-app/onboarding/userNotifications/UserNotificationsActionHelper.js'; import store from './AppStore.js'; import FeaturesActionHelper from 'sdc-app/features/FeaturesActionHelper.js'; class Application extends React.Component { static propTypes = { openSocket: PropTypes.bool }; componentDidMount() { const { openSocket = true } = this.props; if (openSocket) { UserNotificationsActionHelper.notificationsFirstHandling( store.dispatch ); } FeaturesActionHelper.getFeaturesList(store.dispatch); } componentWillUnmount() { WebSocketUtil.close(); } render() { return ( <Provider store={store}> <div data-onboardingroot=""> <GlobalModal /> <Notifications /> {this.props.children} <Loader /> </div> </Provider> ); } } export default Application;