index.tsx 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import {usePrefersStackedNav} from 'sentry/components/nav/prefersStackedNav';
  2. import NoProjectMessage from 'sentry/components/noProjectMessage';
  3. import PageFiltersContainer from 'sentry/components/organizations/pageFilters/container';
  4. import SentryDocumentTitle from 'sentry/components/sentryDocumentTitle';
  5. import {t} from 'sentry/locale';
  6. import useRouteAnalyticsHookSetup from 'sentry/utils/routeAnalytics/useRouteAnalyticsHookSetup';
  7. import useOrganization from 'sentry/utils/useOrganization';
  8. import {useParams} from 'sentry/utils/useParams';
  9. type Props = {
  10. children: React.ReactNode;
  11. };
  12. function IssueListContainer({children}: Props) {
  13. const organization = useOrganization();
  14. useRouteAnalyticsHookSetup();
  15. const prefersStackedNav = usePrefersStackedNav();
  16. const {viewId} = useParams<{orgId?: string; viewId?: string}>();
  17. const useGlobalPageFilters =
  18. !organization.features.includes('issue-stream-custom-views') ||
  19. (prefersStackedNav && !viewId);
  20. return (
  21. <SentryDocumentTitle title={t('Issues')} orgSlug={organization.slug}>
  22. <PageFiltersContainer
  23. skipLoadLastUsed={!useGlobalPageFilters}
  24. disablePersistence={!useGlobalPageFilters}
  25. skipInitializeUrlParams={organization.features.includes(
  26. 'issue-stream-custom-views'
  27. )}
  28. >
  29. <NoProjectMessage organization={organization}>{children}</NoProjectMessage>
  30. </PageFiltersContainer>
  31. </SentryDocumentTitle>
  32. );
  33. }
  34. export default IssueListContainer;