feat(devices): sweep stale persisted device ids on mount and devicechange

This commit is contained in:
Jannis Braun
2026-04-27 20:30:54 +02:00
parent 786823946a
commit c9b08cdfd2
@@ -92,6 +92,16 @@ export function AppLayout() {
AudioManager.getInstance().setOutputDevice(outputDeviceId); AudioManager.getInstance().setOutputDevice(outputDeviceId);
}, [outputDeviceId]); }, [outputDeviceId]);
// Sweep stale persisted device IDs (mic/speaker/camera) on mount and whenever
// the device list changes (USB plug/unplug, permission unlock, etc.).
useEffect(() => {
const prune = useVoiceStore.getState().pruneStaleDevices;
prune(); // initial sweep
const handler = () => prune();
navigator.mediaDevices.addEventListener('devicechange', handler);
return () => navigator.mediaDevices.removeEventListener('devicechange', handler);
}, []);
const { user, isLoading } = useAuth(); const { user, isLoading } = useAuth();
const showBootSkeleton = useDelayedLoading(isLoading); const showBootSkeleton = useDelayedLoading(isLoading);
const setCurrentSpace = useSpaceStore((s) => s.setCurrentSpace); const setCurrentSpace = useSpaceStore((s) => s.setCurrentSpace);