Skip to content

Conversation

Xunzhuo
Copy link
Member

@Xunzhuo Xunzhuo commented Oct 12, 2025

  • Flatten navigation structure by removing Configuration parent level
  • Move all configuration sections to same level as Playground and Monitoring
  • Add clickable brand logo linking to homepage
  • Add GitHub and documentation links in sidebar footer
  • Move URL configuration controls to bottom of Playground and Monitoring pages
  • Convert threshold inputs from decimal (0-1) to percentage (0-100) format
  • Limit tools grid to maximum 3 columns per row
  • Auto-load Playground page on mount
  • Remove embedded mode option from Playground
  • Improve navigation consistency across all pages

…ptimizations

- Flatten navigation structure by removing Configuration parent level
- Move all configuration sections to same level as Playground and Monitoring
- Add clickable brand logo linking to homepage
- Add GitHub and documentation links in sidebar footer
- Move URL configuration controls to bottom of Playground and Monitoring pages
- Convert threshold inputs from decimal (0-1) to percentage (0-100) format
- Limit tools grid to maximum 3 columns per row
- Auto-load Playground page on mount
- Remove embedded mode option from Playground
- Improve navigation consistency across all pages

These changes provide a cleaner, more intuitive user interface with better
navigation flow and improved user experience.

Signed-off-by: bitliu <[email protected]>
@Xunzhuo Xunzhuo requested a review from rootfs as a code owner October 12, 2025 17:12
Copy link

netlify bot commented Oct 12, 2025

Deploy Preview for vllm-semantic-router ready!

Name Link
🔨 Latest commit c462f2f
🔍 Latest deploy log https://app.netlify.com/projects/vllm-semantic-router/deploys/68ebe16fdb8cc30008b84c35
😎 Deploy Preview https://deploy-preview-405--vllm-semantic-router.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link

👥 vLLM Semantic Team Notification

The following members have been identified for the changed files in this PR and have been automatically assigned:

📁 Root Directory

Owners: @rootfs, @Xunzhuo
Files changed:

  • dashboard/frontend/src/App.tsx
  • dashboard/frontend/src/components/EditModal.tsx
  • dashboard/frontend/src/components/Layout.module.css
  • dashboard/frontend/src/components/Layout.tsx
  • dashboard/frontend/src/pages/ConfigPage.module.css
  • dashboard/frontend/src/pages/ConfigPage.tsx
  • dashboard/frontend/src/pages/MonitoringPage.tsx
  • dashboard/frontend/src/pages/PlaygroundPage.tsx

vLLM

🎉 Thanks for your contributions!

This comment was automatically generated based on the OWNER files in the repository.

@rootfs
Copy link
Collaborator

rootfs commented Oct 12, 2025

@JaredforReal can you check this out? thanks

@Xunzhuo
Copy link
Member Author

Xunzhuo commented Oct 12, 2025

i have a recording but it is too big to upload

Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR implements comprehensive UI improvements for the dashboard, primarily focusing on flattening the navigation structure and enhancing user experience. The changes remove the hierarchical Configuration parent navigation and move all configuration sections to the same level as other main navigation items.

Key Changes

  • Flattened navigation structure by moving all configuration sections to top-level navigation
  • Added percentage input type for threshold configurations across the application
  • Moved URL configuration controls to the bottom of Playground and Monitoring pages for better UX
  • Added auto-loading functionality to the Playground page

Reviewed Changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
dashboard/frontend/src/components/Layout.tsx Implements flattened navigation structure with configuration sections as top-level items and adds clickable brand logo and footer links
dashboard/frontend/src/components/Layout.module.css Adds styles for new navigation structure and footer icon buttons
dashboard/frontend/src/pages/ConfigPage.tsx Removes ConfigNav component and adds percentage formatting for threshold display
dashboard/frontend/src/pages/ConfigPage.module.css Updates layout styles and adds responsive grid for tools with maximum 3 columns
dashboard/frontend/src/components/EditModal.tsx Adds new percentage input type with automatic conversion between 0-1 and 0-100% formats
dashboard/frontend/src/pages/PlaygroundPage.tsx Removes embedded mode option, adds auto-load functionality, and moves controls to bottom
dashboard/frontend/src/pages/MonitoringPage.tsx Moves URL configuration controls from top to bottom of page
dashboard/frontend/src/App.tsx Adds configuration section state management and passes props to Layout component

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment on lines +9 to +12
useEffect(() => {
// Default to loading the configured URL on mount
setCurrentUrl(openWebUIUrl)
}, []) // Empty dependency array means this runs once on mount
Copy link

Copilot AI Oct 12, 2025

Choose a reason for hiding this comment

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

The useEffect dependency array should include 'openWebUIUrl' since it's used inside the effect. With an empty dependency array, the effect won't update if openWebUIUrl changes after the initial render.

Copilot uses AI. Check for mistakes.

Comment on lines 18 to 20
const handleApply = () => {
if (isEmbedMode) {
setCurrentUrl(`/embedded/openwebui/`)
} else {
setCurrentUrl(openWebUIUrl)
}
}

const handleToggleMode = () => {
setIsEmbedMode(!isEmbedMode)
setCurrentUrl('')
setCurrentUrl(openWebUIUrl)
}
Copy link

Copilot AI Oct 12, 2025

Choose a reason for hiding this comment

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

The handleApply function is missing error handling logic that was present in the removed embedded mode condition. Consider adding validation or error handling for the URL before setting it.

Copilot uses AI. Check for mistakes.

Comment on lines +146 to +149
onChange={(e) => {
const val = e.target.value
handleChange(field.name, val === '' ? '' : parseFloat(val))
}}
Copy link

Copilot AI Oct 12, 2025

Choose a reason for hiding this comment

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

The parseFloat conversion could result in NaN for invalid input, which should be handled. Consider adding validation to ensure the parsed value is a valid number before calling handleChange.

Copilot uses AI. Check for mistakes.

@rootfs
Copy link
Collaborator

rootfs commented Oct 12, 2025

i have a recording but it is too big to upload

maybe you can upload to youtube or similar?

@JaredforReal
Copy link
Collaborator

PixPin_2025-10-13_01-39-29
@Xunzhuo @rootfs no worry.LGTM

@Xunzhuo Xunzhuo merged commit 8b1d14e into main Oct 12, 2025
9 checks passed
joyful-ii-V-I pushed a commit to joyful-ii-V-I/semantic-router that referenced this pull request Oct 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants