[GH-ISSUE #290] virtual list for song views #210

Closed
opened 2026-02-26 02:32:26 +03:00 by kerem · 14 comments
Owner

Originally created by @Spunge on GitHub (Mar 30, 2016).
Original GitHub issue: https://github.com/koel/koel/issues/290

Hey Phanan,

One of the issues with Koel i'm having so far is that the song list is not easily scrollable. This hinders me from easily discovering random artists that i haven't listened to in a while.

After some searching for a possible solution i stumbled upon virtual lists, a react implementation can be seen here: http://developerdizzle.github.io/react-virtual-list/

Is there some way we could use something like this to make the song lists easily scrollable?

Originally created by @Spunge on GitHub (Mar 30, 2016). Original GitHub issue: https://github.com/koel/koel/issues/290 Hey Phanan, One of the issues with Koel i'm having so far is that the song list is not easily scrollable. This hinders me from easily discovering random artists that i haven't listened to in a while. After some searching for a possible solution i stumbled upon virtual lists, a react implementation can be seen here: http://developerdizzle.github.io/react-virtual-list/ Is there some way we could use something like this to make the song lists easily scrollable?
kerem closed this issue 2026-02-26 02:32:26 +03:00
Author
Owner

@phanan commented on GitHub (Mar 31, 2016):

This is a nice idea, though I'm not very sure if such a concept (virtual list) is applicable for our case, as the song lists in Koel can be filtered and sorted as well, thus are more dynamic in terms of both content and item length. Will explore more.

<!-- gh-comment-id:203692097 --> @phanan commented on GitHub (Mar 31, 2016): This is a nice idea, though I'm not very sure if such a concept (virtual list) is applicable for our case, as the song lists in Koel can be filtered and sorted as well, thus are more dynamic in terms of both content and item length. Will explore more.
Author
Owner

@Spunge commented on GitHub (Mar 31, 2016):

Thanks, i'm very interested in hearing your thoughts on this.

<!-- gh-comment-id:203693378 --> @Spunge commented on GitHub (Mar 31, 2016): Thanks, i'm very interested in hearing your thoughts on this.
Author
Owner

@BernardGoldberger commented on GitHub (Mar 31, 2016):

Maybe something like this would work

image

This should be implemented for "Artists" and "Album" and the jumpTo should be based on sortBy selected by the user.

On Mobile devices it should be a drop-down box.

<!-- gh-comment-id:203999511 --> @BernardGoldberger commented on GitHub (Mar 31, 2016): Maybe something like this would work ![image](https://cloud.githubusercontent.com/assets/10334679/14181854/d52daa38-f736-11e5-87c8-2a7b415a6f2d.png) This should be implemented for "Artists" and "Album" and the jumpTo should be based on sortBy selected by the user. On Mobile devices it should be a drop-down box.
Author
Owner

@Spunge commented on GitHub (Apr 7, 2016):

That would probably work great on mobile, but not solve my issue.

I would really much just like the "all songs" view be scrollable, without it interrupting when loading new results.

Virtual lists seem to solve exactly this problem,

<!-- gh-comment-id:207098735 --> @Spunge commented on GitHub (Apr 7, 2016): That would probably work great on mobile, but not solve my issue. I would really much just like the "all songs" view be scrollable, without it interrupting when loading new results. Virtual lists seem to solve exactly this problem,
Author
Owner

@phanan commented on GitHub (Apr 8, 2016):

Virtual list is a great idea. However, there are at least two factors that
I'd need to cater for: filter and selection. These features will need to be
modified or rewritten completely, if possible at all (especially selection).

On Fri, Apr 8, 2016 at 5:40 AM, Johan Schuijt notifications@github.com
wrote:

That would probably work great on mobile, but not solve my issue.

I would really much just like the "all songs" view be scrollable, without
it interrupting when loading new results.

Virtual lists seem to solve exactly this problem,


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/phanan/koel/issues/290#issuecomment-207098735

<!-- gh-comment-id:207153198 --> @phanan commented on GitHub (Apr 8, 2016): Virtual list is a great idea. However, there are at least two factors that I'd need to cater for: filter and selection. These features will need to be modified or rewritten completely, if possible at all (especially selection). On Fri, Apr 8, 2016 at 5:40 AM, Johan Schuijt notifications@github.com wrote: > That would probably work great on mobile, but not solve my issue. > > I would really much just like the "all songs" view be scrollable, without > it interrupting when loading new results. > > Virtual lists seem to solve exactly this problem, > > — > You are receiving this because you commented. > Reply to this email directly or view it on GitHub > https://github.com/phanan/koel/issues/290#issuecomment-207098735
Author
Owner

@Spunge commented on GitHub (Apr 21, 2016):

I see, a nice example of an implementation is: https://clusterize.js.org/

They have an example concerning filtering: http://codepen.io/NeXTs/pen/zvBveE
Would this be usable in our case?

Selection seems to be harder indeed, i'm still searching for a good example.

I will post an example here as soon as i find one.

<!-- gh-comment-id:212864687 --> @Spunge commented on GitHub (Apr 21, 2016): I see, a nice example of an implementation is: https://clusterize.js.org/ They have an example concerning filtering: http://codepen.io/NeXTs/pen/zvBveE Would this be usable in our case? Selection seems to be harder indeed, i'm still searching for a good example. I will post an example here as soon as i find one.
Author
Owner

@phanan commented on GitHub (Apr 21, 2016):

Selection can actually be managed by an array of selected row's ID, so it's
not that hard. Just that I'm kind of busy nowadays…

On Thu, Apr 21, 2016 at 7:17 PM, Johan Schuijt notifications@github.com
wrote:

I see, a nice example of an implementation is: https://clusterize.js.org/

They have an example concerning filtering:
http://codepen.io/NeXTs/pen/zvBveE
Would this be usable in our case?

Selection seems to be harder indeed, i'm still searching for a good
example.

I will post an example here as soon as i find one.


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/phanan/koel/issues/290#issuecomment-212864687

<!-- gh-comment-id:212898467 --> @phanan commented on GitHub (Apr 21, 2016): Selection can actually be managed by an array of selected row's ID, so it's not that hard. Just that I'm kind of busy nowadays… On Thu, Apr 21, 2016 at 7:17 PM, Johan Schuijt notifications@github.com wrote: > I see, a nice example of an implementation is: https://clusterize.js.org/ > > They have an example concerning filtering: > http://codepen.io/NeXTs/pen/zvBveE > Would this be usable in our case? > > Selection seems to be harder indeed, i'm still searching for a good > example. > > I will post an example here as soon as i find one. > > — > You are receiving this because you commented. > Reply to this email directly or view it on GitHub > https://github.com/phanan/koel/issues/290#issuecomment-212864687
Author
Owner

@Spunge commented on GitHub (Apr 21, 2016):

I've edited the example from clusterize, would something like this work?

http://codepen.io/anon/pen/QNBWxN

I will try to free up some time, i'm in the same boat though.

<!-- gh-comment-id:212918251 --> @Spunge commented on GitHub (Apr 21, 2016): I've edited the example from clusterize, would something like this work? http://codepen.io/anon/pen/QNBWxN I will try to free up some time, i'm in the same boat though.
Author
Owner

@phanan commented on GitHub (Apr 21, 2016):

Sure, it works beautifully!

On Thu, Apr 21, 2016 at 9:25 PM, Johan Schuijt notifications@github.com
wrote:

I've edited the example from clusterize, would something like this work?

http://codepen.io/anon/pen/QNBWxN

I will try to free up some time, i'm in the same boat though.


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/phanan/koel/issues/290#issuecomment-212918251

<!-- gh-comment-id:212934098 --> @phanan commented on GitHub (Apr 21, 2016): Sure, it works beautifully! On Thu, Apr 21, 2016 at 9:25 PM, Johan Schuijt notifications@github.com wrote: > I've edited the example from clusterize, would something like this work? > > http://codepen.io/anon/pen/QNBWxN > > I will try to free up some time, i'm in the same boat though. > > — > You are receiving this because you commented. > Reply to this email directly or view it on GitHub > https://github.com/phanan/koel/issues/290#issuecomment-212918251
Author
Owner

@phanan commented on GitHub (Jan 14, 2017):

Implemented on master branch, and should be available in next release.

<!-- gh-comment-id:272627532 --> @phanan commented on GitHub (Jan 14, 2017): Implemented on `master` branch, and should be available in next release.
Author
Owner

@Spunge commented on GitHub (Jan 17, 2017):

@phanan Very nice, thanks!

<!-- gh-comment-id:273054271 --> @Spunge commented on GitHub (Jan 17, 2017): @phanan Very nice, thanks!
Author
Owner

@smcvb commented on GitHub (Jan 17, 2017):

Awesome, looking forward to this!

<!-- gh-comment-id:273058427 --> @smcvb commented on GitHub (Jan 17, 2017): Awesome, looking forward to this!
Author
Owner

@phanan commented on GitHub (Jan 17, 2017):

Actually it's already out :)

<!-- gh-comment-id:273058571 --> @phanan commented on GitHub (Jan 17, 2017): Actually it's already out :)
Author
Owner

@smcvb commented on GitHub (Jan 17, 2017):

Works like a charm!

<!-- gh-comment-id:273061953 --> @smcvb commented on GitHub (Jan 17, 2017): Works like a charm!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/koel-koel#210
No description provided.