Repository navigation
feat(settings): Add scope navigation rail - #128341
Conversation
| // On touch mobile devices, prevent navigation and let setActiveGroup handle the active state | ||
| if (isMobile && !features.hover) { | ||
| e.preventDefault(); | ||
| } |
There was a problem hiding this comment.
Moved this into useActivateNavigationGroupOnHover, since it's only needed when tapping a link activates a navigation group. This lets the Org, Project, and Account links navigate normally without requiring a navigateOnTouch prop.
| if ( | ||
| settingsV3 && | ||
| item.type === 'link' && | ||
| ['/settings/', '/settings/account/'].includes(item.to) | ||
| ) { | ||
| return child; | ||
| } |
There was a problem hiding this comment.
we don't want to show the "Settings" prefix in the new nav
Store the last non-settings page per organization so Back to app never returns to a page from a different organization.
…t settings from the URL Clear the override when the route group changes so it cannot come back when returning to the route group it was set under. The project settings sidebar no longer also requires the settings active group.
…into feat/settings-scope-navigation
The admin navigation reuses SettingsNavigation, so paths outside /settings fell back to the org scope and showed an Org Settings title. Return a null scope outside /settings instead.
Co-Authored-By: Priscila Andre de Oliveira <priscila.oliveira@sentry.io>
Personal Tokens and OAuth Applications live under /settings/account/, so listing them in the Org developer section switched the rail to Account when clicked. Build the V3 organization navigation without account pages instead of filtering the account section afterwards. Co-Authored-By: Priscila Andre de Oliveira <priscila.oliveira@sentry.io>
ProjectSettingsNavigation only renders for the project scope, so a projectId is always present. Co-Authored-By: Priscila Andre de Oliveira <priscila.oliveira@sentry.io>
|
bugbot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit a0abe69. Configure here.
| to: '/settings/:orgId/projects/:projectId/', | ||
| switchTo: '/settings/:orgId/projects/:projectId/teams/', | ||
| }, | ||
| settingsProjectSwitch: {switchTo: '/settings/:orgId/projects/:projectId/teams/'}, |
There was a problem hiding this comment.
Keeping the settings prefix for convention, but we can rename this later. When settings-v3 is GA we can remove the project crumb (type: 'project' entries and their to), but settingsBreadcrumb stays for the other crumbs
Split the long scenario tests into focused ones, query by role without within() where names are unique, drop assertions that could not fail, and cover the v3 breadcrumbs. Co-Authored-By: Priscila Andre de Oliveira <priscila.oliveira@sentry.io>
Unmatched routes can capture a pathname like //attacker.example, which links treat as another site. Fall back unless the stored path starts with a single slash. Co-Authored-By: Priscila Andre de Oliveira <priscila.oliveira@sentry.io>
| handle: { | ||
| settingsBreadcrumb: { | ||
| type: 'project', | ||
| to: '/settings/:orgId/projects/:projectId/', | ||
| }, | ||
| settingsProjectSwitch: { |
There was a problem hiding this comment.
maybe this should be unified towards:
handle: {
settings: {
breadcrumb: {...}
switchTo: ...
}
}
There was a problem hiding this comment.
yes...that is better! I can apply in a follow up 🙂
…28511) Settings V3 navigation now indents its links with a 24px leading slot so labels stay aligned whether or not a row has an icon. `new`, `beta` and `alpha` feature badges, such as Dev Toolbar's, render in that slot before the label. Other badges stay trailing. Shared sidebar rows use the same 32px height and 24px leading slot across Issues, Explore, Seer, Insights, Dashboards and Monitors; feature badges sit before the label while issue counts stay on the right. Section titles place their collapse chevron in the same slot, so the chevron, feature badges and labels line up as in the design. Groups keep using `SecondaryNavigation.Section`, which retains saved collapse preferences and the existing collapse animation. The toggle now exposes `aria-expanded`. On mobile, where sections don't collapse, titles keep the empty slot so they still align with the links. Builds on #128341. The Settings V3 scope navigation remains gated by the existing `settings-v3` flag. Design: https://www.figma.com/design/FThgiKJFHFag7Qmt1SOz65/Specs--Settings-v3?node-id=379-13688&m=dev **Changed** | Location | Before | After | | --- | --- | --- | | Settings › Org, light |  |  | | Settings › Org, dark |  |  | | Settings › Project, light |  |  | | Settings › Project, dark |  |  | | Settings › Project › Processing, hovered |  |  | | Settings › Account, light |  |  | | Settings › Account, dark |  |  | | Settings › Org › Integrations, collapsed |  |  | | Settings › Org, mobile |  |  | | Organization menu, open |  |  | | Organization menu › View All Projects, open |  |  | | Settings › Org, settings-v3 disabled |  |  | | Issues › Feed, light |  |  | | Explore › Traces › Starred Queries, light |  |  | | Explore › Traces › Starred Queries, dark |  |  | | Seer › Automations, light |  |  | | Seer › Automations, dark |  |  | | Insights › All Projects, light |  |  | | Insights › All Projects, dark |  |  | | Dashboards › Starred Dashboards, light |  |  | | Dashboards › Starred Dashboards, dark |  |  | | Insights › Frontend, light |  |  | | Insights › Frontend, dark |  |  | | Monitors › All Monitors, light |  |  | | Monitors › All Monitors, dark |  |  | | Admin › System Status › Environment, light |  |  | | Admin › System Status › Environment, dark |  |  |
A preview of the changes below:
Screen.Recording.2026-10-22.at.10.13.30.mov
Note
The items indentation, caret position and leading items (see screenshot below) will be done in a follow-up
closes DE-1697