Skip to content

nav-menu: update to top-nav layout - #6136

Open
wesrupert wants to merge 1 commit into
feat/wr/nav/pr/2from
feat/wr/nav/pr/3
Open

nav-menu: update to top-nav layout#6136
wesrupert wants to merge 1 commit into
feat/wr/nav/pr/2from
feat/wr/nav/pr/3

Conversation

@wesrupert

@wesrupert wesrupert commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Stack: master <- ../1 <- ../2 <- feat/wr/nav/pr/3 <- ../4 <- ../5
Can merge separate from children? No
See PR 5 for screenshots of final product.
Figma: link


Replaces the vertical Layout/Sider sidebar with a horizontal Menu, converting FeaturesNav and NavTools into hooks so their items render as flat Menu.Item children.

  • Convert FeaturesNav and NavTools from components into useFeaturesNav/useNavTools hooks, inlined directly in NavMenu so rc-menu's overflow measurement sees individual items
  • Rework MenuItem to separate wrapperClassName/wrapperStyle (outer flex child) from className/style (inner Menu.Item)
  • Drop the login help tip and the left-dock handling that no longer apply to a horizontal bar
  • Remove NotificationsArea from StudioFooter ahead of moving it into the nav

@bundlemon

bundlemon Bot commented Aug 27, 2026

Copy link
Copy Markdown

BundleMon

Files updated (1)
Status Path Size Limits
renderer.(hash).js
10.25MB (-21.42KB -0.2%) -
Unchanged files (3)
Status Path Size Limits
vendors~renderer.(hash).js
4.66MB -
updater.js
115.29KB -
guest-api.js
40.23KB -

Total files change -21.42KB -0.14%

Final result: ✅

View report in BundleMon website ➡️


Current branch size history | Target branch size history

Copilot AI 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.

Pull request overview

Updates the main window navigation from a vertical sider layout to a horizontal top-nav Menu, restructuring nav item rendering to support rc-menu overflow measurement and aligning related styling/layout.

Changes:

  • Render NavMenu as a top-nav bar in Main and replace the previous sider/container structure.
  • Refactor feature navigation into useFeaturesNav() so feature items render as flat Menu.Item children.
  • Update MenuItem to distinguish wrapper vs. inner Menu.Item styling and adjust nav/menu LESS styling; remove NotificationsArea from StudioFooter.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
app/components-react/windows/Main.tsx Moves NavMenu to render directly under TitleBar for top-nav layout.
app/components-react/shared/MenuItem.tsx Splits wrapper vs. inner Menu.Item props to support overflow/flex layout needs.
app/components-react/shared/MenuItem.m.less Adjusts wrapper layout to be a flex child suitable for horizontal menus.
app/components-react/root/StudioFooter.tsx Removes NotificationsArea from the footer in preparation for relocation.
app/components-react/nav-menu/NavTools.tsx Converts NavTools into a hook returning { items, modals } for inlining in NavMenu.
app/components-react/nav-menu/NavMenu.tsx Switches NavMenu to an antd Menu in horizontal mode and inlines feature/tool items.
app/components-react/nav-menu/NavMenu.m.less Reworks nav styling for a horizontal menu bar.
app/components-react/nav-menu/FeaturesNav.tsx Converts FeaturesNav into useFeaturesNav() returning flat items; updates Ultra/dashboard handling.
app/components-react/nav-menu/FeaturesNav.m.less Adds top-nav-specific styles for feature items (badges, active state, responsiveness).
Suppressed comments (1)

app/components-react/nav-menu/NavTools.tsx:204

  • modals is currently an empty TODO, but AuthModal is rendered inside items (above), which makes it a child of the parent <Menu> when items is inlined in NavMenu. Modals should be returned via modals, and items should only contain menu nodes.
  const modals = <>{/* TODO @nav: Add relevant modals */}</>;

  return { items, modals };

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

className={cx(styles.menuitemWrapper, wrapperClassName)}
style={wrapperStyle}
>
<Menu.Item {...itemProps} className={cx(styles.navMenuItem, p?.className)} title={false}>

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.

Seconded

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Will update.

Comment thread app/components-react/nav-menu/NavTools.tsx
className={cx(styles.menuitemWrapper, wrapperClassName)}
style={wrapperStyle}
>
<Menu.Item {...itemProps} className={cx(styles.navMenuItem, p?.className)} title={false}>

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.

Seconded

Comment thread app/components-react/windows/Main.tsx
Replaces the vertical Layout/Sider sidebar with a horizontal Menu,
converting FeaturesNav and NavTools into hooks so their items render as
flat Menu.Item children.

- Convert `FeaturesNav` and `NavTools` from components into
	`useFeaturesNav`/`useNavTools` hooks, inlined directly in `NavMenu` so
	rc-menu's overflow measurement sees individual items
- Rework `MenuItem` to separate `wrapperClassName`/`wrapperStyle` (outer
	flex child) from `className`/`style` (inner `Menu.Item`)
- Drop the login help tip and the left-dock handling that no longer
	apply to a horizontal bar
- Remove `NotificationsArea` from `StudioFooter` ahead of moving it into
	the nav
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants