diff --git a/client/routes.jsx b/client/routes.jsx index 26de7e4e6c..8a4575fc53 100644 --- a/client/routes.jsx +++ b/client/routes.jsx @@ -1,25 +1,31 @@ import PropTypes from 'prop-types'; -import React, { useEffect } from 'react'; +import React, { useEffect,lazy,Suspense} from 'react'; import { useDispatch } from 'react-redux'; import { Route as RouterRoute, Switch } from 'react-router-dom'; import App from './modules/App/App'; -import IDEView from './modules/IDE/pages/IDEView'; -import FullView from './modules/IDE/pages/FullView'; -import About from './modules/About/pages/About'; -import CodeOfConduct from './modules/Legal/pages/CodeOfConduct'; -import PrivacyPolicy from './modules/Legal/pages/PrivacyPolicy'; -import TermsOfUse from './modules/Legal/pages/TermsOfUse'; -import LoginView from './modules/User/pages/LoginView'; -import SignupView from './modules/User/pages/SignupView'; -import ResetPasswordView from './modules/User/pages/ResetPasswordView'; -import EmailVerificationView from './modules/User/pages/EmailVerificationView'; -import NewPasswordView from './modules/User/pages/NewPasswordView'; -import AccountView from './modules/User/pages/AccountView'; -import CollectionView from './modules/User/pages/CollectionView'; -import DashboardView from './modules/User/pages/DashboardView'; import { getUser } from './modules/User/actions'; + +const IDEView = lazy(() => import('./modules/IDE/pages/IDEView')); +const FullView = lazy(() => import('./modules/IDE/pages/FullView')); +const About = lazy(() => import('./modules/About/pages/About')); +const CodeOfConduct = lazy(() => import('./modules/Legal/pages/CodeOfConduct')); +const PrivacyPolicy = lazy(() => import('./modules/Legal/pages/PrivacyPolicy')); +const TermsOfUse = lazy(() => import('./modules/Legal/pages/TermsOfUse')); +const LoginView = lazy(() => import('./modules/User/pages/LoginView')); +const SignupView = lazy(() => import('./modules/User/pages/SignupView')); +const ResetPasswordView = lazy(() => import('./modules/User/pages/ResetPasswordView')); +const EmailVerificationView = lazy(() => import('./modules/User/pages/EmailVerificationView')); +const NewPasswordView = lazy(() => import('./modules/User/pages/NewPasswordView')); +const AccountView = lazy(() => import('./modules/User/pages/AccountView')); +const CollectionView = lazy(() => import('./modules/User/pages/CollectionView')); +const DashboardView = lazy(() => import('./modules/User/pages/DashboardView')); + + + + + /** * `params` is no longer a top-level route component prop in v4. * It is a nested property of `match`. @@ -43,41 +49,49 @@ Route.propTypes = { component: PropTypes.elementType.isRequired }; +const Spinner = () => ( +