index.tsx 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import "@fontsource/roboto/300.css";
  2. import "@fontsource/roboto/400.css";
  3. import "@fontsource/roboto/500.css";
  4. import "@fontsource/roboto/700.css";
  5. import "material-design-icons/iconfont/material-icons.css";
  6. import "react-quill/dist/quill.snow.css";
  7. import "./index.css";
  8. import React from "react";
  9. import ReactDOM from "react-dom";
  10. import { IntlProvider } from "react-intl";
  11. import { BrowserRouter, Route, Routes } from "react-router-dom";
  12. import { Provider } from "react-redux";
  13. import CachedOutlinedIcon from "@mui/icons-material/CachedOutlined";
  14. import loadable from "@loadable/component";
  15. import plugins from "./plugins";
  16. import { get as getLocale, messages as getMessages } from "./locales";
  17. import NotFound from "./404";
  18. import reportWebVitals from "./reportWebVitals";
  19. import store from "./store";
  20. const lang = getLocale();
  21. const messages = getMessages(lang);
  22. ReactDOM.render(
  23. <React.StrictMode>
  24. <Provider store={store}>
  25. <IntlProvider messages={messages} locale={lang}>
  26. <BrowserRouter basename="/my/">
  27. <Routes>
  28. {plugins.routes.map((it) => {
  29. const W = loadable(it.component, {
  30. fallback: <CachedOutlinedIcon />,
  31. });
  32. return <Route key={it.path} path={it.path} element={<W />} />;
  33. })}
  34. <Route path="*" element={<NotFound />} />
  35. </Routes>
  36. </BrowserRouter>
  37. </IntlProvider>
  38. </Provider>
  39. </React.StrictMode>,
  40. document.getElementById("root")
  41. );
  42. // If you want to start measuring performance in your app, pass a function
  43. // to log results (for example: reportWebVitals(console.log))
  44. // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
  45. reportWebVitals();