forked from github/cinny
Rename file, sprinkle in the magic one line for matrixRTCSession. and remove comment block
This commit is contained in:
28
src/app/hooks/useCallMemberships.ts
Normal file
28
src/app/hooks/useCallMemberships.ts
Normal file
@@ -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<CallMembership[]>([]);
|
||||
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;
|
||||
};
|
||||
Reference in New Issue
Block a user