main.tsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import './index.scss'
  2. import { ConnectionProvider } from './providers/connection'
  3. import { DocumentProvider } from './providers/document'
  4. import React from 'react'
  5. import ReactDOM from 'react-dom/client'
  6. import { SessionProvider } from './providers/session'
  7. import build from './build'
  8. import { localValueStorage } from './lib/valueStorage'
  9. import routes from './routes'
  10. import { RouterProvider, createBrowserRouter } from 'react-router-dom'
  11. const connectionProps = {
  12. host: build.api.host,
  13. timeout: build.api.timeout,
  14. }
  15. const documentProps = {
  16. titleSuffix: build.document.titleSuffix,
  17. }
  18. const router = createBrowserRouter(routes)
  19. const sessionProps = {
  20. authStorage: localValueStorage(`${build.localStorage.prefix}auth`),
  21. }
  22. ReactDOM.createRoot(document.getElementById('root')!).render(
  23. <React.StrictMode>
  24. <DocumentProvider value={documentProps}>
  25. <ConnectionProvider value={connectionProps}>
  26. <SessionProvider value={sessionProps}>
  27. <RouterProvider router={router} />
  28. </SessionProvider>
  29. </ConnectionProvider>
  30. </DocumentProvider>
  31. </React.StrictMode>,
  32. )