-
Notifications
You must be signed in to change notification settings - Fork 29
Closed
Description
Tables with many entries (e.g., annotations or tasks) are currently a bit buggy and have code that is difficult to reason about.
The main problem is that we don't fetch all items for performance reasons and rely on pagination which is controlled by the front-end. From that, multiple problems follow:
- searching/filtering all items reliably is only possible by fetching all pages first (the user has to click on "load next page" until none are there anymore) and then using the front-end search
- tracking which pages were already loaded does not work properly when using the search (since that likely changes the amount of pages)
- the detection whether the front-end has loaded all pages is only a heuristic right now (but could be improved in some way of course)
- this should probably make use of the
includeTotalCount
parameter
- this should probably make use of the
- other bugs can easily arise (see Merge "Shared Annotations" with "My annotations" #6230 (review) as an example)
The above bugs might be fixable while keeping the current architecture, but I think it might be better to go another way. For example: To improve this situation, we could make the integration with the back-end tighter by:
- using server side rendering for the table or
- using something like graphql and/or relay to piggyback on their robustness
- other alternatives?
These options probably require some research and discussion.