index.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import React from 'react';
  2. import ReactDOM from 'react-dom/client';
  3. import { BrowserRouter } from 'react-router-dom';
  4. import App from './App';
  5. import HeaderBar from './components/HeaderBar';
  6. import 'semantic-ui-offline/semantic.min.css';
  7. import './index.css';
  8. import { UserProvider } from './context/User';
  9. import { ToastContainer } from 'react-toastify';
  10. import 'react-toastify/dist/ReactToastify.css';
  11. import { StatusProvider } from './context/Status';
  12. import { Layout } from '@douyinfe/semi-ui';
  13. import SiderBar from './components/SiderBar';
  14. import { ThemeProvider } from './context/Theme';
  15. import FooterBar from './components/Footer';
  16. // initialization
  17. const root = ReactDOM.createRoot(document.getElementById('root'));
  18. const { Sider, Content, Header, Footer } = Layout;
  19. root.render(
  20. <React.StrictMode>
  21. <StatusProvider>
  22. <UserProvider>
  23. <BrowserRouter>
  24. <ThemeProvider>
  25. <Layout style={{ height: '100vh', display: 'flex', flexDirection: 'column' }}>
  26. <Header>
  27. <HeaderBar />
  28. </Header>
  29. <Layout style={{ flex: 1, overflow: 'hidden' }}>
  30. <Sider>
  31. <SiderBar />
  32. </Sider>
  33. <Layout>
  34. <Content
  35. style={{ overflowY: 'auto', padding: '24px' }}
  36. >
  37. <App />
  38. </Content>
  39. <Layout.Footer>
  40. <FooterBar></FooterBar>
  41. </Layout.Footer>
  42. </Layout>
  43. </Layout>
  44. <ToastContainer />
  45. </Layout>
  46. </ThemeProvider>
  47. </BrowserRouter>
  48. </UserProvider>
  49. </StatusProvider>
  50. </React.StrictMode>,
  51. );