diamondburned / dissent

Tiny native Discord app
https://flathub.org/apps/details/so.libdb.dissent
GNU General Public License v3.0
1.18k stars 38 forks source link

Feature: Members list #210

Open TriVoxel opened 6 months ago

TriVoxel commented 6 months ago

I'd love to see a members list similar to Discord's. I think if you used an OverlaySplitView with a list, it would work well. You could put a toggle button in the top right corner, and it would toggle this member list. First, I think we'd need something like I describe in issue #206 so that it is useful other than showing online status. This would allow users to direct message members, and see online status of the servers ans view profiles. Would bring it much closer to parity with Discord. I think it would be better if this wasn't a floating view, but actually splits the view and resizes the chat, as Discord does it, so it can be left open. It would also be handy if there were a search box inside the panel to filter the member list.

image

Screencast from 2023-12-26 18-29-05.webm

diamondburned commented 6 months ago

Implementing the UI isn't very hard, gtkcord3 had it. The main issue is the fact that the member list API is very much undocumented and kind of awkward to use.

Initially, when rewriting gtkcord3 to be gtkcord4, I wanted to make sure I never really over-complicate the code, so I skipped over implementing things like the user popup, guild name tooltips, and other miscellaneous features. This is because for gtkcord3, many features ended up being unmaintained either due to API changes or because it's too complicated to maintain. The member list is definitely one of the biggest offenders of that.

Unfortunately, for that reason, this feature might never be added into gtkcord4 itself.

TriVoxel commented 6 months ago

Implementing the UI isn't very hard, gtkcord3 had it. The main issue is the fact that the member list API is very much undocumented and kind of awkward to use.

Initially, when rewriting gtkcord3 to be gtkcord4, I wanted to make sure I never really over-complicate the code, so I skipped over implementing things like the user popup, guild name tooltips, and other miscellaneous features. This is because for gtkcord3, many features ended up being unmaintained either due to API changes or because it's too complicated to maintain. The member list is definitely one of the biggest offenders of that.

Unfortunately, for that reason, this feature might never be added into gtkcord4 itself.

What if you do some error checking, so if it becomes unmaintained and the API change breaks the feature, it just disables itself in the client automatically? Is that sort of thing possible? It's a small feature, but it does really feel like it is missing sometimes.

diamondburned commented 6 months ago

What if you do some error checking, so if it becomes unmaintained and the API change breaks the feature, it just disables itself in the client automatically?

Then I don't really see the point in having it if it'll just spontaneously combust on error. It's still a really fragile API, and at the end, someone will still have to clean it up.