content.tsx 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import {useCallback} from 'react';
  2. import Feature from 'sentry/components/acl/feature';
  3. import FeatureBadge from 'sentry/components/badge/featureBadge';
  4. import {Button} from 'sentry/components/button';
  5. import ButtonBar from 'sentry/components/buttonBar';
  6. import FeedbackWidgetButton from 'sentry/components/feedback/widget/feedbackWidgetButton';
  7. import * as Layout from 'sentry/components/layouts/thirds';
  8. import PageFiltersContainer from 'sentry/components/organizations/pageFilters/container';
  9. import {PageHeadingQuestionTooltip} from 'sentry/components/pageHeadingQuestionTooltip';
  10. import SentryDocumentTitle from 'sentry/components/sentryDocumentTitle';
  11. import {t} from 'sentry/locale';
  12. import {useLocation} from 'sentry/utils/useLocation';
  13. import {useNavigate} from 'sentry/utils/useNavigate';
  14. import useOrganization from 'sentry/utils/useOrganization';
  15. import {SpansTabContent} from 'sentry/views/explore/spans/spansTab';
  16. import {limitMaxPickableDays} from 'sentry/views/explore/utils';
  17. export function ExploreContent() {
  18. const organization = useOrganization();
  19. const {defaultPeriod, maxPickableDays, relativeOptions} =
  20. limitMaxPickableDays(organization);
  21. const location = useLocation();
  22. const navigate = useNavigate();
  23. const switchToOldTraceExplorer = useCallback(() => {
  24. navigate({
  25. ...location,
  26. query: {
  27. ...location.query,
  28. view: 'trace',
  29. },
  30. });
  31. }, [location, navigate]);
  32. return (
  33. <SentryDocumentTitle title={t('Traces')} orgSlug={organization?.slug}>
  34. <PageFiltersContainer maxPickableDays={maxPickableDays}>
  35. <Layout.Page>
  36. <Layout.Header>
  37. <Layout.HeaderContent>
  38. <Layout.Title>
  39. {t('Traces')}
  40. <PageHeadingQuestionTooltip
  41. docsUrl="https://github.com/getsentry/sentry/discussions/81239"
  42. title={t(
  43. 'Find problematic spans/traces or compute real-time metrics via aggregation.'
  44. )}
  45. linkLabel={t('Read the Discussion')}
  46. />
  47. <FeatureBadge
  48. title={t(
  49. 'This feature is available for early adopters and the UX may change'
  50. )}
  51. type="beta"
  52. />
  53. </Layout.Title>
  54. </Layout.HeaderContent>
  55. <Layout.HeaderActions>
  56. <ButtonBar gap={1}>
  57. <Feature organization={organization} features="visibility-explore-admin">
  58. <Button onClick={switchToOldTraceExplorer} size="sm">
  59. {t('Switch to Old Trace Explore')}
  60. </Button>
  61. </Feature>
  62. <FeedbackWidgetButton />
  63. </ButtonBar>
  64. </Layout.HeaderActions>
  65. </Layout.Header>
  66. <SpansTabContent
  67. defaultPeriod={defaultPeriod}
  68. maxPickableDays={maxPickableDays}
  69. relativeOptions={relativeOptions}
  70. />
  71. </Layout.Page>
  72. </PageFiltersContainer>
  73. </SentryDocumentTitle>
  74. );
  75. }