feat: knock notifications for admins + AFK auto-mute in calls
P4-3 — Knock-to-join Notifications for Admins: - usePendingKnocks() hook reactively tracks knocking members via RoomMemberEvent.Membership; returns empty array if user lacks invite power - Members icon in RoomViewHeader shows a Warning badge with the knock count when there are pending requests; badge updates in real time without needing to open the drawer; aria-label updated to describe pending count P5-11 — AFK Auto-Mute in Voice: - useAfkAutoMute() hook opens a monitoring-only getUserMedia stream, connects it to an AnalyserNode, and polls RMS every 500ms - If mic is on and RMS stays below threshold for the configured timeout, calls callEmbed.control.setMicrophone(false) and shows an in-app toast - Hook is called inside CallControls so monitoring is only active during calls - Settings: afkAutoMute toggle + afkTimeoutMinutes select (1/5/10/20/30 min, default 10) added to Settings → Calls Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -128,6 +128,9 @@ export interface Settings {
|
||||
|
||||
mentionHighlightColor: string;
|
||||
fontFamily: 'system' | 'inter' | 'jetbrains-mono' | 'fira-code';
|
||||
|
||||
afkAutoMute: boolean;
|
||||
afkTimeoutMinutes: number;
|
||||
}
|
||||
|
||||
const defaultSettings: Settings = {
|
||||
@@ -198,6 +201,9 @@ const defaultSettings: Settings = {
|
||||
|
||||
mentionHighlightColor: '',
|
||||
fontFamily: 'inter',
|
||||
|
||||
afkAutoMute: false,
|
||||
afkTimeoutMinutes: 10,
|
||||
};
|
||||
|
||||
export const getSettings = (): Settings => {
|
||||
|
||||
Reference in New Issue
Block a user