Skip to content

feat(settings): Add scope navigation rail - #128341

Merged
priscilawebdev merged 47 commits into
masterfrom
feat/settings-scope-navigation
Oct 28, 2026
Merged

priscilawebdev merged 47 commits into
masterfrom
feat/settings-scope-navigation

Conversation

@priscilawebdev

@priscilawebdev priscilawebdev commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

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

image

closes DE-1697

@github-actions github-actions Bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Oct 21, 2026
Comment on lines -150 to -153
// On touch mobile devices, prevent navigation and let setActiveGroup handle the active state
if (isMobile && !features.hover) {
e.preventDefault();
}

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment on lines +26 to +32
if (
settingsV3 &&
item.type === 'link' &&
['/settings/', '/settings/account/'].includes(item.to)
) {
return child;
}

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@cursor cursor Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread static/app/views/settings/components/settingsNavigation.tsx Outdated
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.
sentry-junior Bot and others added 3 commits October 27, 2026 11:07
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>
@priscilawebdev

Copy link
Copy Markdown
Member Author

bugbot run

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ 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/'},

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment thread static/app/utils/useReturnPath.ts
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>
Comment on lines 602 to +607
handle: {
settingsBreadcrumb: {
type: 'project',
to: '/settings/:orgId/projects/:projectId/',
},
settingsProjectSwitch: {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe this should be unified towards:

handle: {
  settings: {
    breadcrumb: {...}
    switchTo: ...
  }
}

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes...that is better! I can apply in a follow up 🙂

@priscilawebdev
priscilawebdev merged commit 301da1a into master Oct 28, 2026
83 checks passed
@priscilawebdev
priscilawebdev deleted the feat/settings-scope-navigation branch October 28, 2026 09:14
priscilawebdev added a commit that referenced this pull request Oct 29, 2026
…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, light
before](https://github.com/user-attachments/assets/6079b2c6-8c46-4400-8e4b-c928c393b868)
| ![Settings › Org, light
after](https://github.com/user-attachments/assets/b05c8cb5-d1ee-46ea-a30b-c8de21818be7)
|
| Settings › Org, dark | ![Settings › Org, dark
before](https://github.com/user-attachments/assets/899cd668-50a3-457a-a87a-3a922b99e966)
| ![Settings › Org, dark
after](https://github.com/user-attachments/assets/b57011f8-f504-42a8-b9f3-9a63c4899740)
|
| Settings › Project, light | ![Settings › Project, light
before](https://github.com/user-attachments/assets/2da71cc8-3c19-43ad-9f5e-90779a8db62f)
| ![Settings › Project, light
after](https://github.com/user-attachments/assets/a686a69b-56d8-4edb-a8b1-ca67f065ce3b)
|
| Settings › Project, dark | ![Settings › Project, dark
before](https://github.com/user-attachments/assets/938a359f-b8d7-4350-8a01-5b86ed1003a3)
| ![Settings › Project, dark
after](https://github.com/user-attachments/assets/4ee6bfdb-e515-4488-aa26-4faa5951409c)
|
| Settings › Project › Processing, hovered | ![Settings › Project ›
Processing, hovered
before](https://github.com/user-attachments/assets/0ce8a339-c09c-4e9b-98e6-12a236619d8d)
| ![Settings › Project › Processing, hovered
after](https://github.com/user-attachments/assets/d332a315-a9d2-42c5-8711-2672b34653ce)
|
| Settings › Account, light | ![Settings › Account, light
before](https://github.com/user-attachments/assets/bb8c7da5-cb4c-4c2d-be0c-dab9483bb191)
| ![Settings › Account, light
after](https://github.com/user-attachments/assets/9cc22605-b282-411f-a517-6bb5f58954a6)
|
| Settings › Account, dark | ![Settings › Account, dark
before](https://github.com/user-attachments/assets/d0eef338-daa1-4b27-8c7b-e140a9e40e46)
| ![Settings › Account, dark
after](https://github.com/user-attachments/assets/4f1ff1c2-4ca8-4c5e-b561-637bb1e7079d)
|
| Settings › Org › Integrations, collapsed | ![Settings › Org ›
Integrations, collapsed
before](https://github.com/user-attachments/assets/b77255cf-0cd1-475c-b18d-4d8a8d9621c3)
| ![Settings › Org › Integrations, collapsed
after](https://github.com/user-attachments/assets/15f943cd-0c84-4c3e-b87a-9ddacf9c7b8c)
|
| Settings › Org, mobile | ![Settings › Org, mobile
before](https://github.com/user-attachments/assets/6e398243-7657-4905-89f6-cde180bb15fe)
| ![Settings › Org, mobile
after](https://github.com/user-attachments/assets/9f0a4e3d-c011-453c-ad62-bff5c93033a1)
|
| Organization menu, open | ![Organization menu, open
before](https://github.com/user-attachments/assets/4027ca4f-c564-4d93-aa25-a6b1b4e9396b)
| ![Organization menu, open
after](https://github.com/user-attachments/assets/45ff9390-c7cd-49c2-b99d-1f9260f3c964)
|
| Organization menu › View All Projects, open | ![Organization menu ›
View All Projects, open
before](https://github.com/user-attachments/assets/99bca8c4-c007-4ffd-81f5-a8d79f92ecdd)
| ![Organization menu › View All Projects, open
after](https://github.com/user-attachments/assets/ea19c16f-ec3f-428f-a145-bf964699d6d1)
|
| Settings › Org, settings-v3 disabled | ![Settings › Org, settings-v3
disabled
before](https://github.com/user-attachments/assets/13ba4105-1c44-4318-ae2a-942ddf36b6b2)
| ![Settings › Org, settings-v3 disabled
after](https://github.com/user-attachments/assets/4f9390e8-6c72-4baa-a237-672e5433b62b)
|
| Issues › Feed, light | ![Issues › Feed, light
before](https://github.com/user-attachments/assets/3aa52000-2573-4447-95d9-bfe8b6bfc4ac)
| ![Issues › Feed, light
after](https://github.com/user-attachments/assets/0ef9a135-b0ed-4a0f-bd27-10c94d7c07eb)
|
| Explore › Traces › Starred Queries, light | ![Explore › Traces ›
Starred Queries, light
before](https://github.com/user-attachments/assets/2f82f933-dcac-4dd7-8d22-c3ed47e19c20)
| ![Explore › Traces › Starred Queries, light
after](https://github.com/user-attachments/assets/47ec2361-e2e4-44a5-bac1-e581b74d5ebc)
|
| Explore › Traces › Starred Queries, dark | ![Explore › Traces ›
Starred Queries, dark
before](https://github.com/user-attachments/assets/90808c80-86d4-4815-8b0e-601ae03dc363)
| ![Explore › Traces › Starred Queries, dark
after](https://github.com/user-attachments/assets/aadb2194-6124-43c1-84d1-1c58931b0960)
|
| Seer › Automations, light | ![Seer › Automations, light
before](https://github.com/user-attachments/assets/f5e85d70-7dec-4966-9f62-cffe68b8f5cb)
| ![Seer › Automations, light
after](https://github.com/user-attachments/assets/f0a73dc8-3b5f-44b1-aeb6-2eefc9aff0ae)
|
| Seer › Automations, dark | ![Seer › Automations, dark
before](https://github.com/user-attachments/assets/129a2dea-5beb-465a-9758-42554ac3589c)
| ![Seer › Automations, dark
after](https://github.com/user-attachments/assets/88c76acb-658c-49f4-be56-cf55e3715be0)
|
| Insights › All Projects, light | ![Insights › All Projects, light
before](https://github.com/user-attachments/assets/c5b34e2d-f255-44d4-97e0-6c5bfa28e633)
| ![Insights › All Projects, light
after](https://github.com/user-attachments/assets/84a4ab8b-1e6e-4370-a449-68740440c0b9)
|
| Insights › All Projects, dark | ![Insights › All Projects, dark
before](https://github.com/user-attachments/assets/aa042464-add8-4f23-8877-65d0b7a3cdb8)
| ![Insights › All Projects, dark
after](https://github.com/user-attachments/assets/ac51d998-07ee-4a52-b4ee-07bfd9ea05d9)
|
| Dashboards › Starred Dashboards, light | ![Dashboards › Starred
Dashboards, light
before](https://github.com/user-attachments/assets/0a3103bd-21fc-4a4d-bdd6-0c5dc9bc80ad)
| ![Dashboards › Starred Dashboards, light
after](https://github.com/user-attachments/assets/47c8a735-a461-46fe-8b15-7db7b0a4e1a4)
|
| Dashboards › Starred Dashboards, dark | ![Dashboards › Starred
Dashboards, dark
before](https://github.com/user-attachments/assets/a2e57b04-a2f5-44e4-b7c6-4cdb6a3b6424)
| ![Dashboards › Starred Dashboards, dark
after](https://github.com/user-attachments/assets/c1079b7e-c495-474e-91be-6471448823c3)
|
| Insights › Frontend, light | ![Insights › Frontend, light
before](https://github.com/user-attachments/assets/743f3840-1a4d-443e-8395-1ecc0ed20928)
| ![Insights › Frontend, light
after](https://github.com/user-attachments/assets/672371a3-0e8f-4f93-ac62-d2ba4028a11f)
|
| Insights › Frontend, dark | ![Insights › Frontend, dark
before](https://github.com/user-attachments/assets/596caa16-f200-43e8-8492-7dffe5c61eea)
| ![Insights › Frontend, dark
after](https://github.com/user-attachments/assets/8f9c5e95-a5e9-4c1b-b602-5c8497d1d2d0)
|
| Monitors › All Monitors, light | ![Monitors › All Monitors, light
before](https://github.com/user-attachments/assets/16292a07-f4e3-4781-84c3-eaff78afcc1c)
| ![Monitors › All Monitors, light
after](https://github.com/user-attachments/assets/916c93b5-7887-4a1b-8a0f-fabc59964c9a)
|
| Monitors › All Monitors, dark | ![Monitors › All Monitors, dark
before](https://github.com/user-attachments/assets/1d643dab-2aed-4adc-b4f4-b25085380f74)
| ![Monitors › All Monitors, dark
after](https://github.com/user-attachments/assets/c9d1f66a-7146-456c-8f7d-f6a6bf524063)
|
| Admin › System Status › Environment, light | ![Admin › System Status ›
Environment, light
before](https://github.com/user-attachments/assets/4647965e-9eea-4ac1-99a4-57d02be8d7e6)
| ![Admin › System Status › Environment, light
after](https://github.com/user-attachments/assets/3bf46991-fa03-4497-9453-6a342371b025)
|
| Admin › System Status › Environment, dark | ![Admin › System Status ›
Environment, dark
before](https://github.com/user-attachments/assets/3483e51d-4dfc-4ea3-9b8c-ec6dab62dcae)
| ![Admin › System Status › Environment, dark
after](https://github.com/user-attachments/assets/0ee9eeb8-b169-4ed5-af77-240b75db2d4d)
|

This branch was successfully deployed

1 active deployment
Preview — ec4f39b7 Deployed Oct 27, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants