From 4e16c26b2eb7a0fea9669133a662b2cad5991b2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Brandner?= Date: Tue, 8 Aug 2023 15:19:42 +0200 Subject: [PATCH] Fix types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Šimon Brandner --- src/room/InCallView.tsx | 7 ++++++- src/useEvents.ts | 12 ++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/room/InCallView.tsx b/src/room/InCallView.tsx index aa09f99f..d8a9ef17 100644 --- a/src/room/InCallView.tsx +++ b/src/room/InCallView.tsx @@ -34,6 +34,7 @@ import useMeasure from "react-use-measure"; import { OverlayTriggerState } from "@react-stately/overlays"; import { JoinRule } from "matrix-js-sdk/src/@types/partials"; import { logger } from "matrix-js-sdk/src/logger"; +import { RoomEventCallbacks } from "livekit-client/dist/src/room/Room"; import type { IWidgetApiRequest } from "matrix-widget-api"; import { @@ -204,7 +205,11 @@ export function InCallView({ onLeave(); }, [onLeave]); - useEventEmitterThree(livekitRoom, RoomEvent.Disconnected, onDisconnected); + useEventEmitterThree( + livekitRoom, + RoomEvent.Disconnected, + onDisconnected + ); useEffect(() => { widget?.api.transport.send( diff --git a/src/useEvents.ts b/src/useEvents.ts index 669cf863..8e513dac 100644 --- a/src/useEvents.ts +++ b/src/useEvents.ts @@ -15,7 +15,7 @@ limitations under the License. */ import { useEffect } from "react"; -import EventEmitter from "eventemitter3"; +import EventEmitter, { EventMap } from "typed-emitter"; import type { Listener, @@ -63,12 +63,12 @@ export const useTypedEventEmitter = < // Shortcut for registering a listener on an eventemitter3 EventEmitter (ie. what the LiveKit SDK uses) export const useEventEmitterThree = < - EventType extends EventEmitter.ValidEventTypes, - T extends EventEmitter.EventNames + EventType extends keyof T, + T extends EventMap >( - emitter: EventEmitter, - eventType: T, - listener: EventEmitter.EventListener + emitter: EventEmitter, + eventType: EventType, + listener: T[EventType] ) => { useEffect(() => { emitter.on(eventType, listener);