mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-24 00:34:09 +00:00
## Summary Virtualize the FormDropdownMenu to only render visible items, fixing slow dropdown performance on cloud. ## Changes - Integrate `VirtualGrid` into `FormDropdownMenu` for virtualized rendering - Add computed properties for grid configuration per layout mode (grid/list/list-small) - Extend `VirtualGrid` slot to provide original item index for O(1) lookups - Change container from `max-h-[640px]` to fixed `h-[640px]` for proper virtualization ## Review Focus - VirtualGrid integration within the popover context - Layout mode switching with `:key="layoutMode"` to force re-render - Grid style computed properties match original Tailwind classes ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8476-perf-virtualize-FormDropdownMenu-to-reduce-DOM-nodes-and-image-requests-2f86d73d365081b3a79dd5e0b84df944) by [Unito](https://www.unito.io) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Dropdowns now render with a virtualized grid/list (stable indexes, responsive sizing) and show an empty-state icon when no items exist. * **Bug Fixes** * Reduced layout shift and rendering glitches with improved spacer/scroll calculations and more reliable media measurement. * **Style** * Simplified media rendering (standard img/video), unified item visuals and hover/background behavior. * **Tests** * Added unit and end-to-end tests for virtualization, indexing, layouts, dynamic updates, and empty states. * **Breaking Changes** * Dropdown item/selection shapes and related component props/events were updated (adapter changes may be required). <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: GitHub Action <action@github.com>