|
@@ -23,8 +23,6 @@ import {
|
|
|
IconIssues,
|
|
|
IconLightning,
|
|
|
IconMegaphone,
|
|
|
- IconPlay,
|
|
|
- IconProfiling,
|
|
|
IconProject,
|
|
|
IconReleases,
|
|
|
IconSearch,
|
|
@@ -32,10 +30,8 @@ import {
|
|
|
IconSiren,
|
|
|
IconStats,
|
|
|
IconSupport,
|
|
|
- IconTelescope,
|
|
|
IconTimer,
|
|
|
} from 'sentry/icons';
|
|
|
-import {IconRobot} from 'sentry/icons/iconRobot';
|
|
|
import {t} from 'sentry/locale';
|
|
|
import ConfigStore from 'sentry/stores/configStore';
|
|
|
import DemoWalkthroughStore from 'sentry/stores/demoWalkthroughStore';
|
|
@@ -198,10 +194,6 @@ function Sidebar() {
|
|
|
organization,
|
|
|
};
|
|
|
|
|
|
- // New hierarchy organizes current links into two accordions: "Explore" and "Insights". This means setting up different sidebar groupings, and changing some link icons to small dots, since they now live under an accordion
|
|
|
- const hasNewSidebarHierarchy =
|
|
|
- hasOrganization && organization.features.includes('performance-insights');
|
|
|
-
|
|
|
const sidebarAnchor = isDemoWalkthrough() ? (
|
|
|
<GuideAnchor target="projects" disabled={!DemoWalkthroughStore.get('sidebar')}>
|
|
|
{t('Projects')}
|
|
@@ -240,7 +232,7 @@ function Sidebar() {
|
|
|
>
|
|
|
<SidebarItem
|
|
|
{...sidebarItemProps}
|
|
|
- icon={hasNewSidebarHierarchy ? <SubitemDot collapsed /> : <IconTelescope />}
|
|
|
+ icon={<SubitemDot collapsed />}
|
|
|
label={<GuideAnchor target="discover">{t('Discover')}</GuideAnchor>}
|
|
|
to={getDiscoverLandingUrl(organization)}
|
|
|
id="discover-v2"
|
|
@@ -394,7 +386,7 @@ function Sidebar() {
|
|
|
<Feature features={['insights-entry-points']} organization={organization}>
|
|
|
<SidebarItem
|
|
|
{...sidebarItemProps}
|
|
|
- icon={hasNewSidebarHierarchy ? <SubitemDot collapsed /> : <IconRobot />}
|
|
|
+ icon={<SubitemDot collapsed />}
|
|
|
label={MODULE_TITLES.ai}
|
|
|
{...LLMModuleBadgeProps}
|
|
|
to={`/organizations/${organization.slug}/${moduleURLBuilder('ai')}/`}
|
|
@@ -409,47 +401,13 @@ function Sidebar() {
|
|
|
features="performance-view"
|
|
|
organization={organization}
|
|
|
>
|
|
|
- {(() => {
|
|
|
- // If the client has the old sidebar hierarchy _and_ something to show inside the Performance dropdown, render an accordion.
|
|
|
- if (
|
|
|
- !hasNewSidebarHierarchy &&
|
|
|
- (organization.features.includes('insights-entry-points') ||
|
|
|
- organization.features.includes('performance-trace-explorer'))
|
|
|
- ) {
|
|
|
- return (
|
|
|
- <SidebarAccordion
|
|
|
- {...sidebarItemProps}
|
|
|
- icon={<IconLightning />}
|
|
|
- label={<GuideAnchor target="performance">{t('Performance')}</GuideAnchor>}
|
|
|
- to={`/organizations/${organization.slug}/performance/`}
|
|
|
- id="performance"
|
|
|
- exact={!shouldAccordionFloat}
|
|
|
- >
|
|
|
- {queries}
|
|
|
- {requests}
|
|
|
- {caches}
|
|
|
- {webVitals}
|
|
|
- {queues}
|
|
|
- {screenLoads}
|
|
|
- {appStarts}
|
|
|
- {resources}
|
|
|
- {mobileUI}
|
|
|
- {traces}
|
|
|
- </SidebarAccordion>
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- // Otherwise, show a regular sidebar link to the Performance landing page
|
|
|
- return (
|
|
|
- <SidebarItem
|
|
|
- {...sidebarItemProps}
|
|
|
- icon={<IconLightning />}
|
|
|
- label={<GuideAnchor target="performance">{t('Performance')}</GuideAnchor>}
|
|
|
- to={`/organizations/${organization.slug}/performance/`}
|
|
|
- id="performance"
|
|
|
- />
|
|
|
- );
|
|
|
- })()}
|
|
|
+ <SidebarItem
|
|
|
+ {...sidebarItemProps}
|
|
|
+ icon={<IconLightning />}
|
|
|
+ label={<GuideAnchor target="performance">{t('Performance')}</GuideAnchor>}
|
|
|
+ to={`/organizations/${organization.slug}/performance/`}
|
|
|
+ id="performance"
|
|
|
+ />
|
|
|
</Feature>
|
|
|
);
|
|
|
|
|
@@ -517,7 +475,7 @@ function Sidebar() {
|
|
|
>
|
|
|
<SidebarItem
|
|
|
{...sidebarItemProps}
|
|
|
- icon={hasNewSidebarHierarchy ? <SubitemDot collapsed /> : <IconPlay />}
|
|
|
+ icon={<SubitemDot collapsed />}
|
|
|
label={t('Replays')}
|
|
|
to={`/organizations/${organization.slug}/replays/`}
|
|
|
id="replays"
|
|
@@ -530,7 +488,7 @@ function Sidebar() {
|
|
|
const metrics = hasOrganization && hasCustomMetrics(organization) && (
|
|
|
<SidebarItem
|
|
|
{...sidebarItemProps}
|
|
|
- icon={hasNewSidebarHierarchy ? <SubitemDot collapsed /> : <IconGraph />}
|
|
|
+ icon={<SubitemDot collapsed />}
|
|
|
label={t('Metrics')}
|
|
|
to={metricsPath}
|
|
|
search={location?.pathname === normalizeUrl(metricsPath) ? location.search : ''}
|
|
@@ -567,8 +525,8 @@ function Sidebar() {
|
|
|
<SidebarItem
|
|
|
{...sidebarItemProps}
|
|
|
index
|
|
|
- icon={hasNewSidebarHierarchy ? <SubitemDot collapsed /> : <IconProfiling />}
|
|
|
- label={hasNewSidebarHierarchy ? t('Profiles') : t('Profiling')}
|
|
|
+ icon={<SubitemDot collapsed />}
|
|
|
+ label={t('Profiles')}
|
|
|
to={`/organizations/${organization.slug}/profiling/`}
|
|
|
id="profiling"
|
|
|
/>
|
|
@@ -658,7 +616,7 @@ function Sidebar() {
|
|
|
{projects}
|
|
|
</SidebarSection>
|
|
|
|
|
|
- {hasNewSidebarHierarchy && !isSelfHostedErrorsOnly && (
|
|
|
+ {!isSelfHostedErrorsOnly && (
|
|
|
<Fragment>
|
|
|
<SidebarSection>
|
|
|
{explore}
|
|
@@ -676,28 +634,6 @@ function Sidebar() {
|
|
|
</Fragment>
|
|
|
)}
|
|
|
|
|
|
- {!hasNewSidebarHierarchy && !isSelfHostedErrorsOnly && (
|
|
|
- <Fragment>
|
|
|
- <SidebarSection>
|
|
|
- {performance}
|
|
|
- {profiling}
|
|
|
- {metrics}
|
|
|
- {replays}
|
|
|
- {llmMonitoring}
|
|
|
- {feedback}
|
|
|
- {monitors}
|
|
|
- {alerts}
|
|
|
- </SidebarSection>
|
|
|
-
|
|
|
- <SidebarSection>
|
|
|
- {discover2}
|
|
|
- {dashboards}
|
|
|
- {releases}
|
|
|
- {userFeedback}
|
|
|
- </SidebarSection>
|
|
|
- </Fragment>
|
|
|
- )}
|
|
|
-
|
|
|
{isSelfHostedErrorsOnly && (
|
|
|
<Fragment>
|
|
|
<SidebarSection>
|