import React, { Component, PropTypes, cloneElement } from 'react'; import { createContainer } from 'meteor/react-meteor-data'; import App from './component'; import { subscribeForData, pollExists, wasUserKicked, redirectToLogoutUrl } from './service'; import NavBarContainer from '../nav-bar/container'; import ActionsBarContainer from '../actions-bar/container'; import MediaContainer from '../media/container'; import PollingContainer from '../polling/container'; import SettingsDropdown from '../modals/dropdown/SettingsDropdown'; const defaultProps = { navbar: , actionsbar: , media: , settings: , }; class AppContainer extends Component { constructor(props) { super(props); } render() { // inject location on the navbar container let navbarWithLocation = cloneElement(this.props.navbar, { location: this.props.location }); return ( {this.props.children} ); } } const actionControlsToShow = () => { if (pollExists()) { return ; } else { return ; } }; let loading = true; const loadingDep = new Tracker.Dependency; const getLoading = () => { loadingDep.depend(); return loading; }; const setLoading = (val) => { if (val !== loading) { loading = val; loadingDep.changed(); } }; export default createContainer(() => { Promise.all(subscribeForData()) .then(() => { setLoading(false); }); return { wasKicked: wasUserKicked(), isLoading: getLoading(), redirectToLogoutUrl, actionsbar: , }; }, AppContainer); AppContainer.defaultProps = defaultProps;