main.tsx 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import {useState} from 'react';
  2. import {createBrowserRouter, RouterProvider} from 'react-router-dom';
  3. import {wrapCreateBrowserRouter} from '@sentry/react';
  4. import {ReactQueryDevtools} from '@tanstack/react-query-devtools';
  5. import DemoHeader from 'sentry/components/demo/demoHeader';
  6. import {OnboardingContextProvider} from 'sentry/components/onboarding/onboardingContext';
  7. import {ThemeAndStyleProvider} from 'sentry/components/themeAndStyleProvider';
  8. import {routes} from 'sentry/routes';
  9. import {DANGEROUS_SET_REACT_ROUTER_6_HISTORY} from 'sentry/utils/browserHistory';
  10. import {
  11. DEFAULT_QUERY_CLIENT_CONFIG,
  12. QueryClient,
  13. QueryClientProvider,
  14. } from 'sentry/utils/queryClient';
  15. import {buildReactRouter6Routes} from './utils/reactRouter6Compat/router';
  16. const queryClient = new QueryClient(DEFAULT_QUERY_CLIENT_CONFIG);
  17. function buildRouter() {
  18. const sentryCreateBrowserRouter = wrapCreateBrowserRouter(createBrowserRouter);
  19. const router = sentryCreateBrowserRouter(buildReactRouter6Routes(routes()));
  20. DANGEROUS_SET_REACT_ROUTER_6_HISTORY(router);
  21. return router;
  22. }
  23. function Main() {
  24. const [router] = useState(buildRouter);
  25. return (
  26. <ThemeAndStyleProvider>
  27. <QueryClientProvider client={queryClient}>
  28. <OnboardingContextProvider>
  29. <DemoHeader />
  30. <RouterProvider router={router} />
  31. </OnboardingContextProvider>
  32. <ReactQueryDevtools initialIsOpen={false} buttonPosition="bottom-left" />
  33. </QueryClientProvider>
  34. </ThemeAndStyleProvider>
  35. );
  36. }
  37. export default Main;