header.tsx 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import styled from '@emotion/styled';
  2. import {FeatureFeedback} from 'sentry/components/featureFeedback';
  3. import * as Layout from 'sentry/components/layouts/thirds';
  4. import ExternalLink from 'sentry/components/links/externalLink';
  5. import Link from 'sentry/components/links/link';
  6. import {PageHeadingQuestionTooltip} from 'sentry/components/pageHeadingQuestionTooltip';
  7. import {t, tct} from 'sentry/locale';
  8. import space from 'sentry/styles/space';
  9. import {Organization} from 'sentry/types';
  10. type Props = {
  11. activeTab: 'stats' | 'issues' | 'health';
  12. organization: Organization;
  13. };
  14. function StatsHeader({organization, activeTab}: Props) {
  15. return (
  16. <Layout.Header>
  17. <Layout.HeaderContent>
  18. <StyledLayoutTitle>
  19. {t('Stats')}
  20. <PageHeadingQuestionTooltip
  21. title={tct(
  22. 'A view of the usage data that Sentry has received across your entire organization. [link: Read the docs].',
  23. {link: <ExternalLink href="https://docs.sentry.io/product/stats/" />}
  24. )}
  25. />
  26. </StyledLayoutTitle>
  27. </Layout.HeaderContent>
  28. <Layout.HeaderActions>
  29. {activeTab !== 'stats' && (
  30. <FeatureFeedback buttonProps={{size: 'sm'}} featureName="team-stats" />
  31. )}
  32. </Layout.HeaderActions>
  33. <Layout.HeaderNavTabs underlined>
  34. <li className={`${activeTab === 'stats' ? 'active' : ''}`}>
  35. <Link to={`/organizations/${organization.slug}/stats/`}>{t('Usage')}</Link>
  36. </li>
  37. <li className={`${activeTab === 'issues' ? 'active' : ''}`}>
  38. <Link to={`/organizations/${organization.slug}/stats/issues/`}>
  39. {t('Issues')}
  40. </Link>
  41. </li>
  42. <li className={`${activeTab === 'health' ? 'active' : ''}`}>
  43. <Link to={`/organizations/${organization.slug}/stats/health/`}>
  44. {t('Health')}
  45. </Link>
  46. </li>
  47. </Layout.HeaderNavTabs>
  48. </Layout.Header>
  49. );
  50. }
  51. export default StatsHeader;
  52. const StyledLayoutTitle = styled(Layout.Title)`
  53. margin-top: ${space(0.5)};
  54. `;