mirror of
https://github.com/vector-im/element-call.git
synced 2026-03-19 06:20:25 +00:00
This is a stop gap example how we can obtain the delay id
This commit is contained in:
@@ -100,6 +100,7 @@ import { createHomeserverConnected$ } from "./localMember/HomeserverConnected.ts
|
||||
import {
|
||||
createLocalMembership$,
|
||||
enterRTCSession,
|
||||
MatrixState,
|
||||
RTCBackendState,
|
||||
} from "./localMember/LocalMembership.ts";
|
||||
import { createLocalTransport$ } from "./localMember/LocalTransport.ts";
|
||||
|
||||
@@ -580,6 +580,21 @@ export const createLocalMembership$ = ({
|
||||
};
|
||||
}
|
||||
|
||||
matrixState$.pipe(scope.bind()).subscribe((matrixState) => {
|
||||
if (matrixState.state !== MatrixState.Connected) return;
|
||||
|
||||
// UNSAVE. Arbitrary change some types to read properties we should not have access to (private)
|
||||
// TODO this is bad and we need a proper solution to expose the delayId (or let the js-sdk take care of delegating the delayed event)
|
||||
const sessionWithAccessToPrivateMembers = matrixRTCSession as unknown as {
|
||||
membershipManager: { state: { delayId: string } };
|
||||
};
|
||||
const delayId =
|
||||
sessionWithAccessToPrivateMembers.membershipManager.state.delayId;
|
||||
logger.debug("delayId is available", delayId);
|
||||
// call
|
||||
void passDelayIdToJWT(delayId);
|
||||
});
|
||||
|
||||
return {
|
||||
startTracks,
|
||||
requestConnect,
|
||||
@@ -673,3 +688,14 @@ export async function enterRTCSession(
|
||||
await widget.api.transport.send(ElementWidgetActions.JoinCall, {});
|
||||
}
|
||||
}
|
||||
|
||||
async function passDelayIdToJWT(delayId: string): Promise<void> {
|
||||
// CHANGE ME!
|
||||
// try{
|
||||
// await fetch(sth using delayId)
|
||||
// }catch(error){
|
||||
// // at a minimum log the error (maybe we can do sth smarter)
|
||||
// logger.error(error);
|
||||
// }
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user