feat: real-time SPEAK permission enforcement in voice channels
Permission changes now take effect immediately without requiring disconnect/reconnect. Modeled as "permission mute" parallel to server mute — server recomputes SPEAK for all voice participants on role/override changes and broadcasts state via WebSocket. Includes amber UI indicators and mic toggle blocking.
This commit is contained in:
@@ -55,6 +55,8 @@ interface UIState {
|
||||
toggleVoiceFullscreen: () => void;
|
||||
setVoiceFullscreen: (fullscreen: boolean) => void;
|
||||
setPipCollapsed: (collapsed: boolean) => void;
|
||||
floatingPanelHeight: number;
|
||||
setFloatingPanelHeight: (height: number) => void;
|
||||
}
|
||||
|
||||
export const useUIStore = create<UIState>()(
|
||||
@@ -124,6 +126,8 @@ export const useUIStore = create<UIState>()(
|
||||
toggleVoiceFullscreen: () => set((state) => ({ voiceFullscreen: !state.voiceFullscreen })),
|
||||
setVoiceFullscreen: (fullscreen) => set({ voiceFullscreen: fullscreen }),
|
||||
setPipCollapsed: (collapsed) => set({ pipCollapsed: collapsed }),
|
||||
floatingPanelHeight: 140,
|
||||
setFloatingPanelHeight: (height) => set({ floatingPanelHeight: height }),
|
||||
}),
|
||||
{
|
||||
name: 'backspace-ui-settings',
|
||||
|
||||
Reference in New Issue
Block a user