import React, { Suspense, lazy } from "react"; import { Router, Route, Switch } from "react-router-dom"; import { connect } from "react-redux"; // import { // Login, // Error404, // Offline, // ComingSoon // } from "@appserver/common"; import CommonStore from "@appserver/common/src/store"; import history from "@appserver/common/src/history"; import PrivateRoute from "@appserver/common/src/components/PrivateRoute"; import PublicRoute from "@appserver/common/src/components/PublicRoute"; import NavMenu from "@appserver/common/src/components/NavMenu"; import Main from "@appserver/common/src/components/Main"; import utils from "@appserver/common/src/utils"; import toastr from "@appserver/common/src/components/Toast/toastr"; import Home from "./components/pages/Home"; const About = lazy(() => import("./components/pages/About")); const Confirm = lazy(() => import("./components/pages/Confirm")); const Settings = lazy(() => import("./components/pages/Settings")); const Wizard = lazy(() => import("./components/pages/Wizard")); const Payments = lazy(() => import("./components/pages/Payments")); const { setIsLoaded, getUser, getPortalSettings, getModules, getIsAuthenticated, } = CommonStore.auth.actions; class App extends React.Component { componentDidMount() { const { getPortalSettings, getUser, getModules, setIsLoaded, getIsAuthenticated, } = this.props; getIsAuthenticated() .then((isAuthenticated) => { if (isAuthenticated) utils.updateTempContent(isAuthenticated); const requests = []; if (!isAuthenticated) { requests.push(getPortalSettings()); } else if ( !window.location.pathname.includes("confirm/EmailActivation") ) { requests.push(getUser()); requests.push(getPortalSettings()); requests.push(getModules()); } Promise.all(requests) .catch((e) => { toastr.error(e); }) .finally(() => { utils.updateTempContent(); setIsLoaded(); }); }) .catch((err) => toastr.error(err)); } render() { return navigator.onLine ? (
) : ( ); } } const mapStateToProps = (state) => { const { modules, isLoaded, settings } = state.auth; const { organizationName } = settings; return { modules, isLoaded, organizationName, }; }; const mapDispatchToProps = (dispatch) => { return { getIsAuthenticated: () => getIsAuthenticated(dispatch), getPortalSettings: () => getPortalSettings(dispatch), getUser: () => getUser(dispatch), getModules: () => getModules(dispatch), setIsLoaded: () => dispatch(setIsLoaded(true)), }; }; export default connect(mapStateToProps, mapDispatchToProps)(App);