diff --git a/static/app/views/insights/llmMonitoring/views/llmMonitoringDetailsPage.tsx b/static/app/views/insights/llmMonitoring/views/llmMonitoringDetailsPage.tsx index ae6071da2d9a92..b4e5b87da53bd6 100644 --- a/static/app/views/insights/llmMonitoring/views/llmMonitoringDetailsPage.tsx +++ b/static/app/views/insights/llmMonitoring/views/llmMonitoringDetailsPage.tsx @@ -1,3 +1,5 @@ +import {Fragment} from 'react'; + import FeatureBadge from 'sentry/components/badge/featureBadge'; import {Breadcrumbs} from 'sentry/components/breadcrumbs'; import * as Layout from 'sentry/components/layouts/thirds'; @@ -146,7 +148,20 @@ export function LLMMonitoringPage({params}: Props) { {isInDomainView && ( - + + {spanDescription} + + + } + breadcrumbs={[ + { + label: t('Pipeline Summary'), + }, + ]} + module={ModuleName.AI} + /> )} diff --git a/static/app/views/insights/llmMonitoring/views/llmMonitoringLandingPage.tsx b/static/app/views/insights/llmMonitoring/views/llmMonitoringLandingPage.tsx index 1951d97653f000..f91c5d2e7ad84f 100644 --- a/static/app/views/insights/llmMonitoring/views/llmMonitoringLandingPage.tsx +++ b/static/app/views/insights/llmMonitoring/views/llmMonitoringLandingPage.tsx @@ -1,3 +1,5 @@ +import {Fragment} from 'react'; + import FeatureBadge from 'sentry/components/badge/featureBadge'; import {Breadcrumbs} from 'sentry/components/breadcrumbs'; import ButtonBar from 'sentry/components/buttonBar'; @@ -65,7 +67,18 @@ export function LLMMonitoringPage() { )} {isInDomainView && ( - + + {MODULE_TITLE} + + + } + module={ModuleName.AI} + /> )} diff --git a/static/app/views/insights/mobile/screens/views/screensLandingPage.spec.tsx b/static/app/views/insights/mobile/screens/views/screensLandingPage.spec.tsx index cdf079c6b19269..3ac21d5fa72690 100644 --- a/static/app/views/insights/mobile/screens/views/screensLandingPage.spec.tsx +++ b/static/app/views/insights/mobile/screens/views/screensLandingPage.spec.tsx @@ -83,7 +83,7 @@ describe('Screens Landing Page', function () { action: 'PUSH', hash: '', key: '', - pathname: '/organizations/org-slug/performance/mobile/mobile-screens', + pathname: '/organizations/org-slug/insights/mobile/mobile-screens', query: { project: project.id, }, diff --git a/static/app/views/insights/mobile/screens/views/screensLandingPage.tsx b/static/app/views/insights/mobile/screens/views/screensLandingPage.tsx index cd0dc9e594aac6..c4353014a7b836 100644 --- a/static/app/views/insights/mobile/screens/views/screensLandingPage.tsx +++ b/static/app/views/insights/mobile/screens/views/screensLandingPage.tsx @@ -1,4 +1,4 @@ -import {useCallback, useState} from 'react'; +import {Fragment, useCallback, useState} from 'react'; import styled from '@emotion/styled'; import omit from 'lodash/omit'; @@ -314,7 +314,21 @@ export function ScreensLandingPage() { )} - {isInDomainView && } + {isInDomainView && ( + + {MODULE_TITLE} + + + } + headerActions={isProjectCrossPlatform && } + module={ModuleName.MOBILE_SCREENS} + /> + )} diff --git a/static/app/views/insights/pages/ai/aiOverviewPage.tsx b/static/app/views/insights/pages/ai/aiOverviewPage.tsx index e18ea160f3557d..aa517302178c1e 100644 --- a/static/app/views/insights/pages/ai/aiOverviewPage.tsx +++ b/static/app/views/insights/pages/ai/aiOverviewPage.tsx @@ -24,6 +24,7 @@ import * as ModuleLayout from 'sentry/views/insights/common/components/moduleLay import {ToolRibbon} from 'sentry/views/insights/common/components/ribbon'; import {useOnboardingProject} from 'sentry/views/insights/common/queries/useOnboardingProject'; import {AiHeader} from 'sentry/views/insights/pages/ai/aiPageHeader'; +import {AI_LANDING_TITLE} from 'sentry/views/insights/pages/ai/settings'; import {OVERVIEW_PAGE_TITLE} from 'sentry/views/insights/pages/settings'; import {generateGenericPerformanceEventView} from 'sentry/views/performance/data'; import {TripleChartRow} from 'sentry/views/performance/landing/widgets/components/widgetChartRow'; @@ -124,7 +125,7 @@ function AiOverviewPage() { renderDisabled={NoAccess} > - + diff --git a/static/app/views/insights/pages/ai/aiPageHeader.tsx b/static/app/views/insights/pages/ai/aiPageHeader.tsx index 094ccc3d499fae..89fe16ac060ee0 100644 --- a/static/app/views/insights/pages/ai/aiPageHeader.tsx +++ b/static/app/views/insights/pages/ai/aiPageHeader.tsx @@ -4,17 +4,22 @@ import { AI_LANDING_SUB_PATH, AI_LANDING_TITLE, } from 'sentry/views/insights/pages/ai/settings'; -import {DomainViewHeader} from 'sentry/views/insights/pages/domainViewHeader'; +import { + DomainViewHeader, + type Props as HeaderProps, +} from 'sentry/views/insights/pages/domainViewHeader'; import {DOMAIN_VIEW_BASE_URL} from 'sentry/views/insights/pages/settings'; import {ModuleName} from 'sentry/views/insights/types'; type Props = { - headerActions?: React.ReactNode; - module?: ModuleName; + headerTitle: HeaderProps['headerTitle']; + breadcrumbs?: HeaderProps['additionalBreadCrumbs']; + headerActions?: HeaderProps['additonalHeaderActions']; + module?: HeaderProps['selectedModule']; }; // TODO - add props to append to breadcrumbs and change title -export function AiHeader({module, headerActions}: Props) { +export function AiHeader({module, headerTitle, headerActions, breadcrumbs}: Props) { const {slug} = useOrganization(); const aiBaseUrl = normalizeUrl( @@ -26,10 +31,12 @@ export function AiHeader({module, headerActions}: Props) { return ( ); } diff --git a/static/app/views/insights/pages/backend/backendPageHeader.tsx b/static/app/views/insights/pages/backend/backendPageHeader.tsx index 9b85bc8359e55a..9c14bd0f3a89e8 100644 --- a/static/app/views/insights/pages/backend/backendPageHeader.tsx +++ b/static/app/views/insights/pages/backend/backendPageHeader.tsx @@ -25,6 +25,7 @@ export function BackendHeader({module, headerActions}: Props) { return ( - } /> + } + /> diff --git a/static/app/views/insights/pages/mobile/mobilePageHeader.tsx b/static/app/views/insights/pages/mobile/mobilePageHeader.tsx index 8202e9868aa87b..d279da1e05b487 100644 --- a/static/app/views/insights/pages/mobile/mobilePageHeader.tsx +++ b/static/app/views/insights/pages/mobile/mobilePageHeader.tsx @@ -1,7 +1,9 @@ -import type {Crumb} from 'sentry/components/breadcrumbs'; import normalizeUrl from 'sentry/utils/url/normalizeUrl'; import useOrganization from 'sentry/utils/useOrganization'; -import {DomainViewHeader} from 'sentry/views/insights/pages/domainViewHeader'; +import { + DomainViewHeader, + type Props as HeaderProps, +} from 'sentry/views/insights/pages/domainViewHeader'; import { MOBILE_LANDING_SUB_PATH, MOBILE_LANDING_TITLE, @@ -11,15 +13,14 @@ import {isModuleEnabled} from 'sentry/views/insights/pages/utils'; import {ModuleName} from 'sentry/views/insights/types'; type Props = { - breadcrumbs?: Crumb[]; - headerActions?: React.ReactNode; - headerTitle?: React.ReactNode; - hideDefaultTabs?: boolean; - module?: ModuleName; - tabs?: {onTabChange: (key: string) => void; tabList: React.ReactNode; value: string}; + headerTitle: HeaderProps['headerTitle']; + breadcrumbs?: HeaderProps['additionalBreadCrumbs']; + headerActions?: HeaderProps['additonalHeaderActions']; + hideDefaultTabs?: HeaderProps['hideDefaultTabs']; + module?: HeaderProps['selectedModule']; + tabs?: HeaderProps['tabs']; }; -// TODO - add props to append to breadcrumbs and change title export function MobileHeader({ module, hideDefaultTabs, @@ -43,7 +44,8 @@ export function MobileHeader({ return (