main.tsx 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import {browserHistory, Router, RouterContext} from 'react-router';
  2. import DemoHeader from 'sentry/components/demo/demoHeader';
  3. import ThemeAndStyleProvider from 'sentry/components/themeAndStyleProvider';
  4. import {routes} from 'sentry/routes';
  5. import ConfigStore from 'sentry/stores/configStore';
  6. import {PersistedStoreProvider} from 'sentry/stores/persistedStore';
  7. import {RouteContext} from 'sentry/views/routeContext';
  8. /**
  9. * Renders our compatability RouteContext.Provider. This will go away with
  10. * react-router v6.
  11. */
  12. function renderRouter(props: any) {
  13. return (
  14. <RouteContext.Provider value={props}>
  15. <RouterContext {...props} />
  16. </RouteContext.Provider>
  17. );
  18. }
  19. function Main() {
  20. return (
  21. <ThemeAndStyleProvider>
  22. <PersistedStoreProvider>
  23. {ConfigStore.get('demoMode') && <DemoHeader />}
  24. <Router history={browserHistory} render={renderRouter}>
  25. {routes()}
  26. </Router>
  27. </PersistedStoreProvider>
  28. </ThemeAndStyleProvider>
  29. );
  30. }
  31. export default Main;