prose-im / prose-app-web

Prose Web application. XMPP client for team messaging.
https://prose.org/downloads
Mozilla Public License 2.0
19 stars 2 forks source link

Truncate very long participant lists? #48

Open nesium opened 4 months ago

nesium commented 4 months ago
Screenshot 2024-02-19 at 15 21 11

In some extreme cases you have to scroll a lot to reach the controls surrounding the participant list.

A solution which could play into 4. here would be to show a truncated list of participants, say 10 with a "Show more" button. In the core we'd then only look up the names of the 10 visible (sorting TBD) participants. If you click "Show more" you could see all participants in a popup. The core could then resolve the remaining names and fire update events incrementally.

valeriansaliou commented 4 months ago

Sounds like a good idea. Agreed, what do you have in mind in terms of protocol? Given an API to load participants in a paged way (eg. 10 at a time), I could come up w/ an implementation in the app of a popup to show more pretty quick.

nesium commented 4 months ago

Perfect. Although in the full list I was thinking to hand over all of the participants - with missing data - since they're already known, then gradually augmenting the participants with the additional data and firing events when that happened. But from a UI perspective the more familiar experience would surely be pagination as you've suggested.

Maybe there is an opportunity here to build a generic observable structure for lists which could be reused for the sidebar, contacts and so on as mentioned in #44. I could give this a try.

But I'd like to push this back for now if you don't mind, to deal with a few other things first.

valeriansaliou commented 4 months ago

Sure! No problem doing this later.