Skip to content

Conversation

@AymanAlSuleihi
Copy link

Summary
Fixes UI issue where the WebsiteSelect dropdown in the sidebar would show two scrollbars with a long list on shorter viewports.

Before/After
Screenshot from 2026-01-03 00-47-02 Screenshot from 2026-01-03 00-47-45

Likely fixes #3913 although I was unable to replicate the exact situation seen in the issue's screenshot. (their issue only has one non-scrollable scrollbar)

Cause
The Select dropdown wrapper in @umami/react-zen:/src/components/Select.module.css:25 is scrollable and capped at 42vh.
The inner list is also scrollable, so increasing the inner list height beyond the wrapper cap creates nested scroll containers.

Fix
The maximum height of the dropdown list is now set relative to the viewport.

@vercel
Copy link

vercel bot commented Jan 3, 2026

@AymanAlSuleihi is attempting to deploy a commit to the umami-software Team on Vercel.

A member of the Team first needs to authorize it.

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 3, 2026

Greptile Summary

  • Fixes double scrollbar issue in WebsiteSelect dropdown by replacing fixed 400px max-height with viewport-relative calculation calc(42vh - 65px)
  • Addresses UX problem where nested scroll containers created confusing dual scrollbars on shorter viewports when website list exceeded dropdown height

Important Files Changed

Filename Overview
src/components/input/WebsiteSelect.tsx Modified dropdown style to use viewport-relative max-height calculation to prevent nested scroll containers

Confidence score: 5/5

  • This PR is extremely safe to merge with minimal risk of breaking existing functionality
  • Score reflects a simple, well-understood UI fix that addresses a specific scrollbar conflict without affecting core application logic or data handling
  • No files require special attention as this is a single-line style change with clear purpose and minimal impact

Sequence Diagram

sequenceDiagram
    participant User
    participant WebsiteSelect
    participant Select
    participant UserWebsitesQuery
    participant Database
    
    User->>WebsiteSelect: "Click dropdown"
    WebsiteSelect->>Select: "onOpenChange()"
    WebsiteSelect->>UserWebsitesQuery: "Fetch websites"
    UserWebsitesQuery->>Database: "Query user websites"
    Database->>UserWebsitesQuery: "Return website data"
    UserWebsitesQuery->>WebsiteSelect: "Return listItems"
    WebsiteSelect->>Select: "Render dropdown with items"
    Select->>User: "Display website list"
    
    User->>Select: "Type search term"
    Select->>WebsiteSelect: "onSearch(value)"
    WebsiteSelect->>UserWebsitesQuery: "Fetch filtered websites"
    UserWebsitesQuery->>Database: "Query with search filter"
    Database->>UserWebsitesQuery: "Return filtered results"
    UserWebsitesQuery->>WebsiteSelect: "Return filtered listItems"
    WebsiteSelect->>Select: "Update dropdown items"
    Select->>User: "Display filtered results"
    
    User->>Select: "Select website"
    Select->>WebsiteSelect: "onChange(id)"
    WebsiteSelect->>WebsiteSelect: "setName(selectedName)"
    WebsiteSelect->>User: "Call parent onChange"
Loading

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 3, 2026

Greptile found no issues!

From now on, if a review finishes and we haven't found any issues, we will not post anything, but you can confirm that we reviewed your changes in the status check section.

This feature can be toggled off in your Code Review Settings by deselecting "Create a status check for each PR".

Copy link
Collaborator

@mikecao mikecao left a comment

Choose a reason for hiding this comment

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

👍

@mikecao mikecao merged commit 58880b6 into umami-software:dev Jan 7, 2026
0 of 5 checks passed
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.

2 participants