App.tsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { BrowserRouter } from "react-router-dom";
  2. import { ConfigProvider } from "antd";
  3. import { IntlProvider } from "react-intl";
  4. import { Provider } from "react-redux";
  5. import { pdfjs } from "react-pdf";
  6. import mermaid from "mermaid";
  7. import { enableMapSet } from "immer";
  8. import Router from "./Router";
  9. import store from "./store";
  10. import locales, {
  11. get as getLocale,
  12. DEFAULT as DEFAULT_LOCALE,
  13. } from "./locales";
  14. import { API_HOST } from "./request";
  15. import onLoad from "./load";
  16. import "./App.css";
  17. pdfjs.GlobalWorkerOptions.workerSrc = `${API_HOST}/assets/pdf.worker.min.js`;
  18. mermaid.initialize({ startOnLoad: true });
  19. enableMapSet();
  20. onLoad();
  21. const lang = getLocale();
  22. const i18n = locales(lang);
  23. function Widget() {
  24. return (
  25. <Provider store={store}>
  26. <IntlProvider
  27. messages={i18n.messages}
  28. locale={lang}
  29. defaultLocale={DEFAULT_LOCALE}
  30. >
  31. <ConfigProvider locale={i18n.antd}>
  32. <BrowserRouter basename={process.env.PUBLIC_URL}>
  33. <Router />
  34. </BrowserRouter>
  35. </ConfigProvider>
  36. </IntlProvider>
  37. </Provider>
  38. );
  39. }
  40. export default Widget;