From ca2c868624e343326e2924e5f9b682537c0f5b91 Mon Sep 17 00:00:00 2001 From: Gigiaj Date: Fri, 4 Jul 2025 22:19:19 -0500 Subject: [PATCH] Rename file, sprinkle in the magic one line for matrixRTCSession. and remove comment block --- src/app/hooks/useCallMembers.ts | 81 ----------------------------- src/app/hooks/useCallMemberships.ts | 28 ++++++++++ 2 files changed, 28 insertions(+), 81 deletions(-) delete mode 100644 src/app/hooks/useCallMembers.ts create mode 100644 src/app/hooks/useCallMemberships.ts diff --git a/src/app/hooks/useCallMembers.ts b/src/app/hooks/useCallMembers.ts deleted file mode 100644 index 6e2e184c..00000000 --- a/src/app/hooks/useCallMembers.ts +++ /dev/null @@ -1,81 +0,0 @@ -/*import { MatrixClient } from 'matrix-js-sdk'; -import { - MatrixRTCSession, - MatrixRTCSessionEvent, -} from 'matrix-js-sdk/lib/matrixrtc/MatrixRTCSession'; -import { CallMembership } from 'matrix-js-sdk/lib/matrixrtc/CallMembership'; -import { useEffect, useState } from 'react'; - -export const useCallMembers = ( - mx: MatrixClient, - mxr: MatrixRTCSession, - roomId: string -): CallMembership[] => { - const [memberships, setMemberships] = useState([]); - - useEffect(() => { - const room = mx.getRoom(roomId); - - const updateMemberships = () => { - if (!room?.isCallRoom()) return; - setMemberships(MatrixRTCSession.callMembershipsForRoom(room)); - //setMemberships(mxr.memberships); - //console.log('MEMBERSHIPS:'); - //console.log(memberships); - }; - - updateMemberships(); - - mxr.on(MatrixRTCSessionEvent.MembershipsChanged, updateMemberships); - return () => { - mxr.removeListener(MatrixRTCSessionEvent.MembershipsChanged, updateMemberships); - }; - }, [mx, mxr, roomId]); - - return memberships; -};*/ - -// TEMPORARY -import { MatrixClient, MatrixEvent, RoomStateEvent } from 'matrix-js-sdk'; -import { useEffect, useMemo, useState } from 'react'; -import { getStateEvents } from '../utils/room'; -import { StateEvent } from '../../types/matrix/room'; - -export const useCallMembers = (mx: MatrixClient, roomId: string): string[] => { - const [events, setEvents] = useState([]); - - useEffect(() => { - const room = mx.getRoom(roomId); - - const updateEvents = (event?: MatrixEvent) => { - if (!room?.isCallRoom() || (event && event.getRoomId() !== roomId)) return; - setEvents(getStateEvents(room, StateEvent.GroupCallMemberPrefix)); - }; - - updateEvents(); - - mx.on(RoomStateEvent.Events, updateEvents); - return () => { - mx.removeListener(RoomStateEvent.Events, updateEvents); - }; - }, [mx, roomId]); - - const participants = useMemo( - () => - events - .filter((ev) => { - const content = ev.getContent(); - return ( - content && - ev.getSender() && - content.expires && - ev.getTs() + content.expires > Date.now() - ); - }) - /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */ - .map((ev) => ev.getSender()!), - [events] - ); - - return participants; -}; diff --git a/src/app/hooks/useCallMemberships.ts b/src/app/hooks/useCallMemberships.ts new file mode 100644 index 00000000..36418e0d --- /dev/null +++ b/src/app/hooks/useCallMemberships.ts @@ -0,0 +1,28 @@ +import { MatrixClient } from 'matrix-js-sdk'; +import { + MatrixRTCSession, + MatrixRTCSessionEvent, +} from 'matrix-js-sdk/lib/matrixrtc/MatrixRTCSession'; +import { CallMembership } from 'matrix-js-sdk/lib/matrixrtc/CallMembership'; +import { useEffect, useState } from 'react'; + +export const useCallMembers = (mx: MatrixClient, roomId: string): CallMembership[] => { + const [memberships, setMemberships] = useState([]); + const room = mx.getRoom(roomId); + const mxr = mx.matrixRTC.getRoomSession(room); + useEffect(() => { + const updateMemberships = () => { + if (!room?.isCallRoom()) return; + setMemberships(MatrixRTCSession.callMembershipsForRoom(room)); + }; + + updateMemberships(); + + mxr.on(MatrixRTCSessionEvent.MembershipsChanged, updateMemberships); + return () => { + mxr.removeListener(MatrixRTCSessionEvent.MembershipsChanged, updateMemberships); + }; + }, [mx, mxr, room, roomId]); + + return memberships; +};