mirror of
https://github.com/J3vb/OwnCord.git
synced 2026-09-03 03:50:00 +03:00
The WS-reconnect control freeze (spec item 6) only reached the VoiceWidget's in-call controls. The actual join affordance — clicking a voice-channel row in ChannelSidebar — stayed a plain clickable div with no disabled state, so a click while the socket was reconnecting/disconnected was a silent no-op (only the VoiceCallbacks socketLive() backstop stopped the send). Gate renderVoiceChannelItem on ui.store.connectionStatus using the same disabled-with-reason pattern as VoiceWidget: apply a .disabled class, aria-disabled, and a "Reconnecting…" / "Not connected" title while not connected, and make the click a no-op. Subscribe the sidebar to connectionStatus so the row freezes/unfreezes reactively (mirrors the existing collapsedCategories selector). Docs: README.md §3 callout now notes the sidebar join affordance takes the disabled-with-reason state too; voice-and-e2ee.md lists ChannelSidebar.ts as a source of truth for the freeze. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>