Voice channel list: avatars, mute/deafen icons, speaking ring #293

Closed
opened 2026-10-07 20:43:07 -04:00 by Salastil · 1 comment
Owner
  • All voice channels sit under one non-collapsible "Voice" heading below every text channel (BufferList.tsx:602-603, VoiceChannels.tsx:37); the heading lacks the category heading's weight (app.css:4735 vs 4636).
  • Voice rows are full-width and square with 2px/8px padding (4747) while text rows have a 4px margin, 5px/8px padding and 8px radius (265-275).
  • VoiceMember has avatarUrl, muted, deafened (wire.ts:239-251) but members are drawn as a name-hash coloured dot with no mute/deafen icons and no speaking indicator (VoiceChannels.tsx:68-91).

Fix: member avatars, mute/deafen icons and a green speaking ring; rows styled like text rows; collapsible heading.

Part of the v1.0 UI pass.

- All voice channels sit under one non-collapsible "Voice" heading below every text channel (BufferList.tsx:602-603, VoiceChannels.tsx:37); the heading lacks the category heading's weight (app.css:4735 vs 4636). - Voice rows are full-width and square with 2px/8px padding (4747) while text rows have a 4px margin, 5px/8px padding and 8px radius (265-275). - `VoiceMember` has `avatarUrl`, `muted`, `deafened` (wire.ts:239-251) but members are drawn as a name-hash coloured dot with no mute/deafen icons and no speaking indicator (VoiceChannels.tsx:68-91). **Fix:** member avatars, mute/deafen icons and a green speaking ring; rows styled like text rows; collapsible heading. _Part of the v1.0 UI pass._
Salastil added this to the v1.0 milestone 2026-10-07 20:43:07 -04:00
Salastil added the feature label 2026-10-07 20:43:07 -04:00
Author
Owner

Finished: 843288d.

Before (left) and after (right), a staged call with four people in the channel you are in:

voice list

  • Faces instead of coloured dots - each member's picture (the daemon already sent avatarUrl; it was never drawn) or their initial.
  • Muted and deafened marks (mic-off, headset-off) beside the name, from the muted / deafened fields that were being ignored.
  • A green ring on whoever is speaking, from the daemon's levels, polled five times a second while you are in the call and the window is showing. From outside a call there are no levels to read, so the list says who is here and nothing more.
  • The "Voice" heading is collapsible like a category (remembered, with the channel you are in staying visible when folded), and the channel rows are the same shape as a text channel's (margin, padding, radius).
  • (The disconnect-button nesting bug in this list was #274.)

Checked against staged data and a test-only override for the speaking set; not against a live Discord call (receive-only account), so the ring's threshold (a peak above 0.01) is worth a look on the next real call.

Finished: [843288d](https://git.salastil.com/Salastil/moho/commit/843288d61a9a99920749e66f8206e2c73dce5c8e). Before (left) and after (right), a staged call with four people in the channel you are in: ![voice list](https://git.salastil.com/attachments/b1ea26bf-029c-412a-9ace-821a4ce4e0db) - **Faces instead of coloured dots** - each member's picture (the daemon already sent `avatarUrl`; it was never drawn) or their initial. - **Muted and deafened marks** (mic-off, headset-off) beside the name, from the `muted` / `deafened` fields that were being ignored. - **A green ring on whoever is speaking**, from the daemon's levels, polled five times a second while you are in the call and the window is showing. From outside a call there are no levels to read, so the list says who is here and nothing more. - **The "Voice" heading is collapsible** like a category (remembered, with the channel you are in staying visible when folded), and the channel rows are the same shape as a text channel's (margin, padding, radius). - (The disconnect-button nesting bug in this list was #274.) Checked against staged data and a test-only override for the speaking set; **not against a live Discord call** (receive-only account), so the ring's threshold (a peak above 0.01) is worth a look on the next real call.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Salastil/moho#293