Skip to content

fix(page-frame): remove empty headers and move breadcrumbs#113654

Merged
priscilawebdev merged 7 commits into
masterfrom
priscila/fix/empty-layout-header
Apr 22, 2026
Merged

fix(page-frame): remove empty headers and move breadcrumbs#113654
priscilawebdev merged 7 commits into
masterfrom
priscila/fix/empty-layout-header

Conversation

@priscilawebdev

@priscilawebdev priscilawebdev commented Apr 22, 2026

Copy link
Copy Markdown
Member

priscilawebdev and others added 2 commits April 22, 2026 13:03
Pages whose Layout.Title and actions all teleport to TopBar.Slot in
page-frame mode render an empty <header><div/></header> band at the
top of the page. Add an explicit top-level split in each affected
header component: when page-frame is active, return the TopBar.Slot
content directly without wrapping in Layout.Header.

Covers: explore/logs, explore/errors, explore/metrics,
explore/savedQueries.

Co-Authored-By: Claude <noreply@anthropic.com>
In page-frame mode, legacy inline <Breadcrumbs> inside
Layout.HeaderContent left a visible per-page header even though Title
and actions had already teleported to the top bar. Move the breadcrumb
content into <TopBar.Slot name="title"> (matching dashboards/detail)
so it appears alongside the title in the top bar.

Covers: explore/multiQueryMode, discover/landing, projectDetail. The
projectDetail case keeps Layout.Header around because the three action
buttons next to Feedback do not teleport.

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions github-actions Bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Apr 22, 2026
Removing Layout.HeaderContent in page-frame mode left Layout.Header
with only one grid child, which placed HeaderActions in the 1fr
column — stretching the three action buttons full width. Keep
HeaderContent in the grid (with the TopBar.Slot inside) so actions
fall back into the auto column and right-align as before.

Also shrink the project IdBadge in the breadcrumb last crumb from 20
to 16 and wrap it with the slug in a centered Flex so the icon and
text line up.

Co-Authored-By: Claude <noreply@anthropic.com>
/>
</Layout.HeaderContent>
{hasPageFrameFeature ? (
{hasPageFrameFeature ? (

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.

Before/After

Image


const hasBreadcrumb = Boolean(title && defined(pageId));

if (hasPageFrameFeature) {

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.

Before

Image

After

Image


const hasBreadcrumb = Boolean(title && defined(pageId));

if (hasPageFrameFeature) {

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.

Before

Image

After

Image

</TopBar.Slot>
</Fragment>
) : (
{hasPageFrameFeature ? (

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.

Before

Image

After

Image

)}
/>
) : (
<LinkButton

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.

Before

Image

After

Image

disableLink
hideName
{hasPageFrameFeature ? (
<TopBar.Slot name="title">

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.

Before

Image

After

Image

priscilawebdev and others added 2 commits April 22, 2026 13:36
OrganizationLayout already wraps every route in Layout.Page (which
renders as <main>), so the inner Layout.Page in explore/errors/content
produced a second <main> inside the first. Drop the inner wrapper;
the page body is now a direct child of SentryDocumentTitle, inheriting
the outer <main> from OrganizationLayout.

Co-Authored-By: Claude <noreply@anthropic.com>
In page-frame mode Layout.Title teleports and actions go to
TopBar.Slot, leaving Layout.HeaderContent rendering as an empty <div>
above the dataset tabs. Swap HeaderContent/HeaderActions for
TopBar.Slot title/actions when page-frame is active so only the tabs
remain as direct children of <Layout.Header>. DatasetSelectorTabs keep
their header placement in both modes.

Co-Authored-By: Claude <noreply@anthropic.com>
After extracting the title node into a const, the legacy-mode
"discover-basic only" branch wrapped a single <Layout.Title> in a
<Fragment>. Drop the wrapper.

Co-Authored-By: Claude <noreply@anthropic.com>
Collapse the two inline hasPageFrameFeature checks into one top-level
branch, and extract the shared breadcrumb + event-name block into a
local so it is only written once. Layout.Header and DatasetSelectorTabs
stay as common wrappers in both modes.

Co-Authored-By: Claude <noreply@anthropic.com>
@priscilawebdev

Copy link
Copy Markdown
Member Author

bugbot run

@linear-code

linear-code Bot commented Apr 22, 2026

Copy link
Copy Markdown

@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 5c928c7. Configure here.

@priscilawebdev
priscilawebdev marked this pull request as ready for review April 22, 2026 11:55
@priscilawebdev
priscilawebdev requested a review from a team as a code owner April 22, 2026 11:55
@priscilawebdev
priscilawebdev requested a review from a team April 22, 2026 11:57
@priscilawebdev
priscilawebdev merged commit 1c16958 into master Apr 22, 2026
66 checks passed
@priscilawebdev
priscilawebdev deleted the priscila/fix/empty-layout-header branch April 22, 2026 12:02
@github-actions github-actions Bot locked and limited conversation to collaborators May 7, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants