import {Breadcrumbs} from 'sentry/components/breadcrumbs'; import * as Layout from 'sentry/components/layouts/thirds'; import {t} from 'sentry/locale'; import {decodeScalar} from 'sentry/utils/queryString'; import {MutableSearch} from 'sentry/utils/tokenizeSearch'; import {useLocation} from 'sentry/utils/useLocation'; import useOrganization from 'sentry/utils/useOrganization'; import {AiHeader} from 'sentry/views/insights/pages/ai/aiPageHeader'; import {BackendHeader} from 'sentry/views/insights/pages/backend/backendPageHeader'; import {FrontendHeader} from 'sentry/views/insights/pages/frontend/frontendPageHeader'; import {MobileHeader} from 'sentry/views/insights/pages/mobile/mobilePageHeader'; import {useDomainViewFilters} from 'sentry/views/insights/pages/useFilters'; import {getPerformanceLandingUrl} from 'sentry/views/performance/utils'; export function TrendsHeader() { const location = useLocation(); const organization = useOrganization(); const {view, isInDomainView} = useDomainViewFilters(); const headerTitle = t('Trends'); const getPerformanceLink = () => { const newQuery = { ...location.query, }; const query = decodeScalar(location.query.query, ''); const conditions = new MutableSearch(query); // This stops errors from occurring when navigating to other views since we are appending aggregates to the trends view conditions.removeFilter('tpm()'); conditions.removeFilter('confidence()'); conditions.removeFilter('transaction.duration'); newQuery.query = conditions.formatString(); return { pathname: getPerformanceLandingUrl(organization), query: newQuery, }; }; if (!isInDomainView) { return ( {headerTitle} ); } const headerProps = { headerTitle, breadcrumbs: [{label: headerTitle, to: undefined}], }; if (view === 'ai') { return ; } if (view === 'frontend') { return ; } if (view === 'mobile') { return ; } return ; }