init.tsx 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import {createRoot} from 'react-dom/client';
  2. import {createBrowserRouter, RouterProvider} from 'react-router-dom';
  3. import {wrapCreateBrowserRouterV6} from '@sentry/react';
  4. import * as Sentry from '@sentry/react';
  5. import {commonInitialization} from 'sentry/bootstrap/commonInitialization';
  6. import {initializeSdk} from 'sentry/bootstrap/initializeSdk';
  7. import ConfigStore from 'sentry/stores/configStore';
  8. import type {Config} from 'sentry/types/system';
  9. import {DANGEROUS_SET_REACT_ROUTER_6_HISTORY} from 'sentry/utils/browserHistory';
  10. import {QueryClient, QueryClientProvider} from 'sentry/utils/queryClient';
  11. import {routes6} from 'admin/routes';
  12. export function init(config: Config) {
  13. commonInitialization(config);
  14. initializeSdk(config);
  15. ConfigStore.set('getsentry.sendgridApiKey', window.__sendGridApiKey);
  16. }
  17. const queryClient = new QueryClient();
  18. const sentryCreateBrowserRouter = wrapCreateBrowserRouterV6(createBrowserRouter);
  19. const router = sentryCreateBrowserRouter(routes6);
  20. DANGEROUS_SET_REACT_ROUTER_6_HISTORY(router);
  21. export function renderApp() {
  22. const rootEl = document.getElementById('blk_router')!;
  23. const root = createRoot(rootEl);
  24. root.render(
  25. <QueryClientProvider client={queryClient}>
  26. <RouterProvider router={router} />
  27. </QueryClientProvider>
  28. );
  29. }
  30. // Make the sentry client available to the configurations beforeSend
  31. window.Sentry = Sentry;