From a2054aa435a94f79b347c8d4fc985fbc2493ecda Mon Sep 17 00:00:00 2001 From: Bill Date: Thu, 22 Apr 2021 00:24:40 -0400 Subject: [PATCH] Update events --- src/hooks/events/event-dispatcher.base.tsx | 2 +- src/hooks/messages/message-event.tsx | 7 +------ src/views/room-host/RoomHostView.tsx | 16 ++++++++++++++-- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/hooks/events/event-dispatcher.base.tsx b/src/hooks/events/event-dispatcher.base.tsx index 26802485..d0053f15 100644 --- a/src/hooks/events/event-dispatcher.base.tsx +++ b/src/hooks/events/event-dispatcher.base.tsx @@ -18,7 +18,7 @@ export function CreateEventDispatcherHook(type: string, eventDispatcher: IEventD { eventDispatcher.removeEventListener(type, handlerRef.current); } - }, [ type, eventDispatcher, handler ]); + }, [ type, eventDispatcher ]); } export function DispatchEventHook(eventDispatcher: IEventDispatcher, event: NitroEvent): void diff --git a/src/hooks/messages/message-event.tsx b/src/hooks/messages/message-event.tsx index 350238bd..d81ab22d 100644 --- a/src/hooks/messages/message-event.tsx +++ b/src/hooks/messages/message-event.tsx @@ -9,14 +9,9 @@ export function CreateMessageHook(eventType: typeof MessageEvent, handler: (even //@ts-ignore const event = new eventType(handler); - console.log('register', eventType.name); Nitro.instance.communication.registerMessageEvent(event); - return () => - { - console.log('unregister', eventType.name); - Nitro.instance.communication.removeMessageEvent(event); - } + return () => Nitro.instance.communication.removeMessageEvent(event); }, [ eventType, handler ]); } diff --git a/src/views/room-host/RoomHostView.tsx b/src/views/room-host/RoomHostView.tsx index 1eea1cb1..badf9df1 100644 --- a/src/views/room-host/RoomHostView.tsx +++ b/src/views/room-host/RoomHostView.tsx @@ -40,6 +40,8 @@ export function RoomHostView(props: RoomHostViewProps): JSX.Element const onRoomEngineObjectEvent = useCallback((event: RoomEngineObjectEvent) => { + if(!eventDispatcher) return; + const objectId = event.objectId; const category = event.category; @@ -116,12 +118,22 @@ export function RoomHostView(props: RoomHostViewProps): JSX.Element switch(event.type) { case RoomSessionEvent.CREATED: - setEventDispatcher(new EventDispatcher()); + setEventDispatcher(prevValue => + { + if(prevValue) prevValue.removeAllListeners(); + + return new EventDispatcher(); + }); StartRoomSession(event.session); return; case RoomSessionEvent.ENDED: setRoomSession(null); - setEventDispatcher(null); + setEventDispatcher(prevValue => + { + if(prevValue) prevValue.removeAllListeners(); + + return null; + }); return; } }, []);