-
Notifications
You must be signed in to change notification settings - Fork 81
Open
Labels
1 - assignedIssues that are assigned to a sprint and a team member.Issues that are assigned to a sprint and a team member.ArcGIS Field AppsIssues logged by ArcGIS Field Apps team members.Issues logged by ArcGIS Field Apps team members.ArcGIS KnowledgeIssues logged by ArcGIS Knowledge team members.Issues logged by ArcGIS Knowledge team members.ArcGIS Maps SDK for JavaScriptIssues logged by ArcGIS SDK for JavaScript team members.Issues logged by ArcGIS SDK for JavaScript team members.ArcGIS OnlineIssues logged by ArcGIS Online team members.Issues logged by ArcGIS Online team members.ArcGIS ProIssues logged by ArcGIS Pro team members.Issues logged by ArcGIS Pro team members.ArcGIS SolutionsIssues logged by ArcGIS Solutions team members.Issues logged by ArcGIS Solutions team members.estimate - 13Requires planning and input from team, consider smaller steps.Requires planning and input from team, consider smaller steps.p - highIssue should be addressed in the current milestone, impacts component or core functionalityIssue should be addressed in the current milestone, impacts component or core functionalityresearchIssues that require more in-depth research or multiple team members to resolve or make decision.Issues that require more in-depth research or multiple team members to resolve or make decision.spike completeIssues that have a research spike completed and dev work can proceedIssues that have a research spike completed and dev work can proceed
Milestone
Description
Background
Rendering items based on a dataset is a common workflow and adding support for virtualization will greatly help rendering these items in an efficient manner.
Additional considerations
- flexible APIs to support:
- data population, pagination (fetching/updating)
- navigation, search, selection
- state management (e.g., app needs to keep place in a virtualized component when navigating away and back)
- animation/styling hooks to allow devs to provide placeholder content at certain points (e.g., initial loading or while scrolling)
- a skeleton component (related) might be useful, albeit not required if we provide hooks for developers
navigating away and back)
- a skeleton component (related) might be useful, albeit not required if we provide hooks for developers
- provide hooks to refresh on keyboard/scroll events
- guidelines/examples should be provided as well
- New While the effort is underway, are there any workarounds for folks to improve performance? (e.g., delay hydration on components that might reside within a parent component, or until the component(s) is/are needed?)
Priorities
- Utils should be made available first, afterwards we could look into providing a component based on feedback
- List use cases should cover most of our current needs, we can evaluate other types (e.g., tree, grid, carousel) based on feedback (combobox, select might be good candidates to start with)
Useful resources
- https://github.com/bvaughn/react-window
- https://github.com/bvaughn/react-virtualized
- https://tanstack.com/virtual/
- https://www.npmjs.com/package/@lit-labs/virtualizer
Related issues
- Calcite Tree Performance Refactor #4854
- Virtualized Select Component #4112
- New Component / Enhancement: Handle large data lists #1460
- [Combobox] Improve lag time when large numbers of Combobox Items are present #6392
- Optimize loading/creating Table #8265
Desired Outcome
Rich utility/utilities to support virtualization
Anastasiia-Boleiko and nwhittakery-elouri
Metadata
Metadata
Labels
1 - assignedIssues that are assigned to a sprint and a team member.Issues that are assigned to a sprint and a team member.ArcGIS Field AppsIssues logged by ArcGIS Field Apps team members.Issues logged by ArcGIS Field Apps team members.ArcGIS KnowledgeIssues logged by ArcGIS Knowledge team members.Issues logged by ArcGIS Knowledge team members.ArcGIS Maps SDK for JavaScriptIssues logged by ArcGIS SDK for JavaScript team members.Issues logged by ArcGIS SDK for JavaScript team members.ArcGIS OnlineIssues logged by ArcGIS Online team members.Issues logged by ArcGIS Online team members.ArcGIS ProIssues logged by ArcGIS Pro team members.Issues logged by ArcGIS Pro team members.ArcGIS SolutionsIssues logged by ArcGIS Solutions team members.Issues logged by ArcGIS Solutions team members.estimate - 13Requires planning and input from team, consider smaller steps.Requires planning and input from team, consider smaller steps.p - highIssue should be addressed in the current milestone, impacts component or core functionalityIssue should be addressed in the current milestone, impacts component or core functionalityresearchIssues that require more in-depth research or multiple team members to resolve or make decision.Issues that require more in-depth research or multiple team members to resolve or make decision.spike completeIssues that have a research spike completed and dev work can proceedIssues that have a research spike completed and dev work can proceed