import {useState} from 'react'; import type {InjectedRouter} from 'react-router'; import styled from '@emotion/styled'; import FeatureBadge from 'sentry/components/featureBadge'; import * as Layout from 'sentry/components/layouts/thirds'; import {PageHeadingQuestionTooltip} from 'sentry/components/pageHeadingQuestionTooltip'; import {TabList, Tabs} from 'sentry/components/tabs'; import {Tooltip} from 'sentry/components/tooltip'; import {SLOW_TOOLTIP_DELAY} from 'sentry/constants'; import {t} from 'sentry/locale'; import type {Organization} from 'sentry/types'; import {normalizeUrl} from 'sentry/utils/withDomainRequired'; type Props = { organization: Organization; router: InjectedRouter; hasV2ReleaseUIEnabled?: boolean; }; function Header({router, hasV2ReleaseUIEnabled = false, organization}: Props) { const [selected, setSelected] = useState(router.location.pathname); const location = router.location; const { cursor: _cursor, page: _page, view: _view, ...queryParams } = location?.query ?? {}; const tabs = hasV2ReleaseUIEnabled ? [ { label: t('Monitor'), description: '', path: normalizeUrl(`/organizations/${organization.slug}/releases/`), to: normalizeUrl({ query: { ...queryParams, }, pathname: `/organizations/${organization.slug}/releases/`, }), }, { label: t('Thresholds'), description: 'thresholds represent action alerts that will trigger once a threshold has been breached', path: normalizeUrl(`/organizations/${organization.slug}/release-thresholds/`), to: normalizeUrl({ query: { ...queryParams, }, pathname: `/organizations/${organization.slug}/release-thresholds/`, }), badge: , }, ] : []; const onTabSelect = key => { setSelected(key); }; return ( {t('Releases')} {hasV2ReleaseUIEnabled && ( {tabs.map(({label, description, path, to, badge}) => { return ( {label} {badge} ); })} )} ); } export default Header; const StyledTabs = styled(Tabs)` grid-column: 1/-1; `;