From 34724b7a8ce468a5f615beee2c68ed9ad5ed9ee6 Mon Sep 17 00:00:00 2001 From: Timo Date: Thu, 5 Jun 2025 14:39:06 +0200 Subject: [PATCH] revert "custom compare logic" --- src/livekit/MediaDevicesContext.tsx | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/livekit/MediaDevicesContext.tsx b/src/livekit/MediaDevicesContext.tsx index 0de794bc..c836f82b 100644 --- a/src/livekit/MediaDevicesContext.tsx +++ b/src/livekit/MediaDevicesContext.tsx @@ -20,6 +20,7 @@ import { createMediaDeviceObserver } from "@livekit/components-core"; import { combineLatest, distinctUntilChanged, map, startWith } from "rxjs"; import { useObservable, useObservableEagerState } from "observable-hooks"; import { logger } from "matrix-js-sdk/lib/logger"; +import { deepCompare } from "matrix-js-sdk/lib/utils"; import { useSetting, @@ -148,14 +149,7 @@ function useMediaDeviceHandle( // time of writing, we are seeing mobile Safari firing spurious // 'devicechange' events (where no change has actually occurred) when // we call MediaDevices.getUserMedia. So, filter by deep equality. - distinctUntilChanged((prev, current) => { - if (prev.length !== current.length) return true; - if (prev.length === 0) return false; - return !current.every( - (d, i) => - d.deviceId === prev[i].deviceId && d.label === prev[i].label, - ); - }), + distinctUntilChanged(deepCompare), ), [kind, requestPermissions], );