Esri / calcite-design-system

A monorepo containing the packages for Esri's Calcite Design System
https://developers.arcgis.com/calcite-design-system/
Other
274 stars 75 forks source link

[Combobox] Improve lag time when large numbers of Combobox Items are present #6392

Open geospatialem opened 1 year ago

geospatialem commented 1 year ago

Actual Behavior

combobox has significant lag in response time when 3,200 combobox-items are added and nested.

Also, displays with more lag when it prevents the containing parent panel from opening. The panels themselves load in slowly when they contain the combobox with many combobox-items. Occurs whether or not the icon property of calcite-combobox-item is populated, for instance:

https://user-images.githubusercontent.com/5023024/215655569-cb71cc00-6897-45fd-bd43-08ab38c75432.mov

Expected Behavior

Improved performance and response time when large amounts of combobox-items are present, in particular where over 100, or hundreds/thousands of elements are present.

Reproduction Sample

https://codesandbox.io/s/lotsa-items-combobox-wzlj6c?file=/src/App.js

Reproduction Steps

Open the sample Observe the lag in load time

Reproduction Version

1.0.3

Relevant Info

No response

Regression?

No response

Impact

No response

Esri team

Calcite (dev)

Anastasiia-Boleiko commented 1 year ago

Hi there! We are really interested in this improvement😊. In our case, the list may contain up to 9,000 items, and the combobox interactions are quite slow. Idea: Apply a concept of infinite scrolling, but still maintain filtering functionality (very important for large lists).

geospatialem commented 6 months ago

Related to the virtualization effort in https://github.com/Esri/calcite-design-system/issues/7384