AlexeySafronov
c9293ac86d
# Conflicts: # packages/asc-web-common/src/components/FilterInput/FilterInput.js # packages/asc-web-common/src/components/FilterInput/sub-components/SortComboBox.js # packages/asc-web-common/src/components/PageLayout/index.js # packages/asc-web-common/src/components/PageLayout/sub-components/article-body.js # packages/asc-web-common/src/components/PageLayout/sub-components/article-header.js # packages/asc-web-common/src/components/PageLayout/sub-components/article-main-button.js # packages/asc-web-common/src/components/PageLayout/sub-components/section-body.js # packages/asc-web-common/src/components/PageLayout/sub-components/section-header.js # packages/asc-web-common/src/components/PrivateRoute/PrivateRoute.js # products/ASC.Files/Client/package.json # products/ASC.Files/Client/src/components/Article/Body/TreeFolders.js # products/ASC.Files/Client/src/components/pages/DocEditor/index.js # products/ASC.Files/Client/src/components/pages/Home/Section/Filter/index.js # products/ASC.Files/Client/src/components/panels/OperationsPanel/index.js # products/ASC.Files/Client/src/components/panels/SharingPanel/SharingRow.js # products/ASC.Files/Client/src/components/panels/SharingPanel/index.js # products/ASC.Files/Client/src/index.js # products/ASC.Files/Client/src/store/files/actions.js # products/ASC.Files/Client/yarn.lock # products/ASC.People/Client/package.json # products/ASC.People/Client/src/components/pages/Home/Section/Body/index.js # products/ASC.People/Client/src/components/pages/ProfileAction/Section/Body/FormFields/ContactField.js # products/ASC.People/Client/src/components/pages/ProfileAction/Section/Body/FormFields/DateField.js # products/ASC.People/Client/src/components/pages/ProfileAction/Section/Body/FormFields/EmailField.js # products/ASC.People/Client/src/components/pages/ProfileAction/Section/Body/FormFields/RadioField.js # products/ASC.People/Client/src/components/pages/ProfileAction/Section/Body/FormFields/TextChangeField.js # products/ASC.People/Client/src/components/pages/ProfileAction/Section/Body/FormFields/TextField.js # products/ASC.People/Client/src/index.js # products/ASC.People/Client/yarn.lock # web/ASC.Web.Client/package.json # web/ASC.Web.Client/src/App.js # web/ASC.Web.Client/src/components/pages/Confirm/index.js # web/ASC.Web.Client/src/components/pages/Confirm/sub-components/activateEmail.js # web/ASC.Web.Client/src/components/pages/Confirm/sub-components/changeEmail.js # web/ASC.Web.Client/src/components/pages/Confirm/sub-components/changeOwner.js # web/ASC.Web.Client/src/helpers/confirmRoute.js # web/ASC.Web.Client/src/index.js # web/ASC.Web.Common/package.json # web/ASC.Web.Common/yarn.lock # web/ASC.Web.Components/package.json # web/ASC.Web.Components/yarn.lock # web/ASC.Web.Login/src/LoginContent.jsx # web/ASC.Web.Login/src/sub-components/register-container.js # yarn.lock
133 lines
3.8 KiB
JavaScript
133 lines
3.8 KiB
JavaScript
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 ? (
|
|
<Router history={history}>
|
|
<NavMenu />
|
|
<Main>
|
|
<Suspense fallback={null}>
|
|
<Switch>
|
|
<Route exact path="/wizard" component={Wizard} />
|
|
<PublicRoute
|
|
exact
|
|
path={[
|
|
"/login",
|
|
"/login/error=:error",
|
|
"/login/confirmed-email=:confirmedEmail",
|
|
]}
|
|
component={Login}
|
|
/>
|
|
<Route path="/confirm" component={Confirm} />
|
|
<PrivateRoute
|
|
exact
|
|
path={["/", "/error=:error"]}
|
|
component={Home}
|
|
/>
|
|
<PrivateRoute exact path="/about" component={About} />
|
|
<PrivateRoute restricted path="/settings" component={Settings} />
|
|
<PrivateRoute
|
|
exact
|
|
path={["/coming-soon"]}
|
|
component={ComingSoon}
|
|
/>
|
|
<PrivateRoute path="/payments" component={Payments} />
|
|
<PrivateRoute component={Error404} />
|
|
</Switch>
|
|
</Suspense>
|
|
</Main>
|
|
</Router>
|
|
) : (
|
|
<Offline />
|
|
);
|
|
}
|
|
}
|
|
|
|
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);
|