OK, I understand. If I would start my development now, I would probably investigate deeper this 2 beads to try to bulld something generic. For now VirtualDataGrid is working almost good.
Probably in a more relax time, I will investigate this beads or for a new project. Gabe Harbs <harbs.li...@gmail.com> escreveu no dia sábado, 6/05/2023 à(s) 18:40: > The job of InfiniteScroller is to tell you when the user scrolled down to > the end of the list. > > What to do when you get to the end of the list is up to you. `the most > common use case is to load paged data. You would need to keep track of > whether you have more paged data to get. > > You’d probably have getMoreData() make an API call to get paged data if > there’s more data pending. > > SmoothDataLoader is complementary in that it’s useful for loading large > amounts of data in a way that doesn’t freeze the UI. > > HTH, > Harbs > > > On May 6, 2023, at 11:27 AM, Hugo Ferreira <hferreira...@gmail.com> > wrote: > > > > I didn't quiet understand what this new head SmoothDataLoader does but I > > see that was created to work together with InfiniteScroller > > > > Harbs <harbs.li...@gmail.com> escreveu no dia quarta, 3/05/2023 à(s) > 10:55: > > > >> I added js:SmoothDataLoader as well. > >> > >> The bead is expecting data as an array. It should be added using either > >> setData() (to replace the data) or appendData() to add more data to the > >> queue of data being added. > >> > >> The strand does not need a dataProvider set, but it does need to be able > >> to handle collections and collection change events. > >> > >> FYI, the SmoothDataLoader might trigger scrollEnd on the > InfiniteScroller > >> while adding data, so if you use the two together, make sure you check > >> whether there’s pending data in the SmoothDataLoader before requesting > more > >> data on the scrollEnd event. > >> > >> The InfiniteScroller also does not handle adding a progress indicator to > >> the end of the list. If desired, that would need to be handled > separately. > >> > >> HTH, > >> Harbs > >> > >>> On May 1, 2023, at 7:14 PM, Harbs <harbs.li...@gmail.com> wrote: > >>> > >>> I added InfiniteScroller. > >>> > >>> You can use it like this: > >>> > >>> <js:List id=“myList”> > >>> <js:beads> > >>> <js:InfiniteScroller scrollEnd=“getMoreData()”/> > >>> </js:beads> > >>> </js:List> > >>> > >>> If the scroll container is not the actual list, you should use it like > >> this: > >>> <js:Group id=“scrollContainer”> > >>> <js:List id=“myList”> > >>> <js:beads> > >>> <js:InfiniteScroller scrollEnd=“getMoreData()” > >> scrollContainer=“{scrollContainer}”/> > >>> </js:beads> > >>> </js:List> > >>> </js:Group> > >>> > >>> I’ll try to add the other bead tomorrow… > >>> > >>> Harbs > >>> > >>>> On Apr 26, 2023, at 12:46 PM, Hugo Ferreira <hferreira...@gmail.com> > >> wrote: > >>>> > >>>> I'm sold :) > >>>> > >>>> When you push that to github, please make a comment here. > >>>> I will test it right a way ;) > >>>> > >>>> Harbs <harbs.li...@gmail.com> escreveu no dia quarta, 26/04/2023 à(s) > >> 10:43: > >>>> > >>>>> If you use IntersectionObservers, the callback is only invoked when > the > >>>>> observed element comes into view. The beauty of the > >> IntersectionObservers > >>>>> is that it doesn’t matter how the element comes into view. It can be > >> by any > >>>>> kind of scrolling, window resize, or even by changing the visibility > >> of it. > >>>>> It’s very elegant and much more performant than listening to scroll > >> events. > >>>>> > >>>>>> On Apr 26, 2023, at 12:32 PM, Hugo Ferreira <hferreira...@gmail.com > > > >>>>> wrote: > >>>>>> > >>>>>> But, don't forget that the user can grab the scroll bar and drop > >>>>> somewhere. > >>>>> > >>>>> > >>> > >> > >> > >> > >