Space rail: subtle dot when a call is live somewhere in that space (careful) #148

Closed
opened 2026-09-17 16:51:59 -04:00 by jared · 1 comment
Owner

Signal only — no sound, no toast. On the space icon in the rail, a small dot (existing unread-dot styling in a distinct colour) when any child room of the space has an active MatrixRTC call. Derive from the same room-call membership state the sidebar voice rows use; recompute only on membership changes; hidden for the currently selected space (the rooms already show it). Check: nested spaces, rooms in multiple spaces, calls the user is in, performance with many rooms (memoised selector, no per-render scans).

Signal only — no sound, no toast. On the space icon in the rail, a small dot (existing unread-dot styling in a distinct colour) when any child room of the space has an active MatrixRTC call. Derive from the same room-call membership state the sidebar voice rows use; recompute only on membership changes; hidden for the currently selected space (the rooms already show it). Check: nested spaces, rooms in multiple spaces, calls the user is in, performance with many rooms (memoised selector, no per-render scans).
jared added this to the Features 2026-Q4 milestone 2026-09-17 16:51:59 -04:00
jared added the enhancementpriority: lowuxarea: callsarea: navigation labels 2026-09-17 16:51:59 -04:00
jared self-assigned this 2026-09-17 16:51:59 -04:00
Author
Owner

Done in 4fe9c870.

A red dot (bottom-right of the space avatar) appears on a space tab when any room inside that space — recursively — has a live MatrixRTC call. It updates on session start/end and on m.call.member state changes. It is hidden while the space is selected, since the room list's Live badge already covers that.

Headless check (bob joins Voice Lounge, alice viewing a DM):

  • before call: dot 0 → bob joins: dot 1 → alice selects Guild Space: dot 0 → bob leaves, alice back to DMs: dot 0.

dot

Done in 4fe9c870. A red dot (bottom-right of the space avatar) appears on a space tab when any room inside that space — recursively — has a live MatrixRTC call. It updates on session start/end and on `m.call.member` state changes. It is hidden while the space is selected, since the room list's **Live** badge already covers that. Headless check (bob joins Voice Lounge, alice viewing a DM): - before call: dot 0 → bob joins: dot 1 → alice selects Guild Space: dot 0 → bob leaves, alice back to DMs: dot 0. ![dot](https://code.lotusguild.org/attachments/eb24a6ae-ebd3-4163-9428-4afb6f48193b)
jared closed this issue 2026-09-19 23:26:28 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#148