index.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import css from './index.module.css';
  2. import {FC, Suspense} from 'react';
  3. import {Layout} from 'antd';
  4. import logo from '@assets/images/logo.png';
  5. import Menu from './menu';
  6. import User from './user';
  7. import {Link, Outlet} from 'react-router-dom';
  8. import {Auth, ErrorBoundary, Footer, Jurisdiction} from '@components';
  9. import HomeSkeleton from './Skeleton';
  10. import {HOME_PATH} from '@routes';
  11. const Home: FC = function() {
  12. return (
  13. <Layout className='container'>
  14. <Layout.Header className={css.header}>
  15. <Link to={HOME_PATH}>
  16. <img src={logo} alt='logo' className={css.logo} />
  17. </Link>
  18. <User />
  19. </Layout.Header>
  20. <Layout hasSider>
  21. <Menu />
  22. <Layout.Content>
  23. <Suspense>
  24. <Jurisdiction>
  25. <Outlet />
  26. </Jurisdiction>
  27. <Footer color='#666' />
  28. </Suspense>
  29. </Layout.Content>
  30. </Layout>
  31. </Layout>
  32. );
  33. };
  34. const HomeSuspense: FC = function() {
  35. return (
  36. <Auth>
  37. <main className='container'>
  38. <ErrorBoundary>
  39. <Suspense fallback={<HomeSkeleton />}>
  40. <Home />
  41. </Suspense>
  42. </ErrorBoundary>
  43. </main>
  44. </Auth>
  45. );
  46. };
  47. export default HomeSuspense;