eui icon indicating copy to clipboard operation
eui copied to clipboard

[EuiDataGrid] bi-directional infinite scrolling

Open chandlerprall opened this issue 5 years ago • 7 comments

Summarizing a conversation with @weltenwort

  • logs app is the two-sided open-ended timeline and pagination doesn't work very well without a well-known "first" page (siem has an unrelated case where pagination doesn't work well)
  • logs are often interacted with as a stream, chopping up the log stream into arbitrary pages gets in the way of the usual viewing experience; having to pagination between two that would otherwise be right next to each other is cumbersome

Implementation considerations would need to include pinned rows and/or columns.

chandlerprall avatar Mar 04 '20 17:03 chandlerprall

@chandlerprall Is the required implementation needs to be a custom virtualized scrolling component or by using existing external component like react-virtualized

ashikmeerankutty avatar Apr 13 '20 18:04 ashikmeerankutty

react-virtualized doesn't meat our accessibility standards so it's already being ripped out of the existing places that it's in EUI.

react-window is a good 3rd party replacement by the same developer that doesn't make any a11y assumptions at all so it's a much easier canvas to layer our a11y work on top of.

Either way, using a 3rd party renderer will likely cause problems with DOM work, our focus work, and our keyboard shortcuts... So there be lots of dragons here.

myasonik avatar Apr 13 '20 20:04 myasonik

The datagrid's implementation (react-window or otherwise) will need to interact with the pagination in not-yet-determined ways. Most of the React virtualized scrolling libraries assume all of the data is available, and the windowing functionality is simply passing over the items, rendering whichever should be visible. Datagrid will need more thought than just that, as you may start with a "page" worth of data and then additional requests are necessary while scrolling (potentially both up and down).

Imagine a grid of log data, and the default starting point is now. More data is available every 30 seconds so you can scroll down the grid to load newer entries, but you could also scroll up to load historic data. As Michail stated above, this functionality needs to integrate with the existing focus & keyboard navigation, etc.

Any work against this should definitely start with a write-up exploring the problems, options, and a proposed path forward.

chandlerprall avatar Apr 13 '20 20:04 chandlerprall

👋 Hey there. This issue hasn't had any activity for 180 days. We'll automatically close it if that trend continues for another week. If you feel this issue is still valid and needs attention please let us know with a comment.

github-actions[bot] avatar Aug 01 '21 00:08 github-actions[bot]

FWIW, I've had some great luck with ReactDataGrid and came to this issue to upvote this story for a "infinite scroll" capability versus the existing "paging" experience. RDG has done a great job with their component. That said I use EUI for most everything in my app and it'd be splendid to have this capability in the EUI grid component.

qpointsystems avatar Aug 27 '22 04:08 qpointsystems

👋 Hi there - this issue hasn't had any activity in 6 months. If the EUI team has not explicitly expressed that this is something on our roadmap, it's unlikely that we'll pick this issue up. We would sincerely appreciate a PR/community contribution if this is something that matters to you! If not, and there is no further activity on this issue for another 6 months (i.e. it's stale for over a year), the issue will be auto-closed.

github-actions[bot] avatar Apr 19 '23 00:04 github-actions[bot]

👋 Hi there - this issue hasn't had any activity in 6 months. If the EUI team has not explicitly expressed that this is something on our roadmap, it's unlikely that we'll pick this issue up. We would sincerely appreciate a PR/community contribution if this is something that matters to you! If not, and there is no further activity on this issue for another 6 months (i.e. it's stale for over a year), the issue will be auto-closed.

github-actions[bot] avatar Apr 21 '24 16:04 github-actions[bot]