main.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /// <reference types="vite/client" />
  2. /// <reference types="vite-plugin-svgr/client" />
  3. import "./assets/styles/index.scss";
  4. import { ResizeObserver } from "@juggle/resize-observer";
  5. if (!window.ResizeObserver) {
  6. window.ResizeObserver = ResizeObserver;
  7. }
  8. import React from "react";
  9. import { createRoot } from "react-dom/client";
  10. import { RecoilRoot } from "recoil";
  11. import { BrowserRouter } from "react-router-dom";
  12. import { BaseErrorBoundary } from "./components/base";
  13. import Layout from "./pages/_layout";
  14. import "./services/i18n";
  15. const mainElementId = "root";
  16. const container = document.getElementById(mainElementId);
  17. if (!container) {
  18. throw new Error(
  19. `No container '${mainElementId}' found to render application`
  20. );
  21. }
  22. document.addEventListener("keydown", (event) => {
  23. // Disable WebView keyboard shortcuts
  24. if (["F5", "F7"].includes(event.key)) {
  25. event.preventDefault();
  26. }
  27. if (
  28. (event.ctrlKey || event.metaKey) &&
  29. ["F", "H", "P", "R", "U"].includes(event.key.toUpperCase())
  30. ) {
  31. event.preventDefault();
  32. }
  33. });
  34. createRoot(container).render(
  35. <React.StrictMode>
  36. <RecoilRoot>
  37. <BaseErrorBoundary>
  38. <BrowserRouter>
  39. <Layout />
  40. </BrowserRouter>
  41. </BaseErrorBoundary>
  42. </RecoilRoot>
  43. </React.StrictMode>
  44. );