Merge branch 'toger5/stop-gap-get-delay-id' into fkwp/matrix_2.0_jwt_token

This commit is contained in:
fkwp
2025-12-04 11:13:17 +01:00
2 changed files with 27 additions and 0 deletions

View File

@@ -100,6 +100,7 @@ import { createHomeserverConnected$ } from "./localMember/HomeserverConnected.ts
import { import {
createLocalMembership$, createLocalMembership$,
enterRTCSession, enterRTCSession,
MatrixState,
RTCBackendState, RTCBackendState,
} from "./localMember/LocalMembership.ts"; } from "./localMember/LocalMembership.ts";
import { createLocalTransport$ } from "./localMember/LocalTransport.ts"; import { createLocalTransport$ } from "./localMember/LocalTransport.ts";

View File

@@ -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 { return {
startTracks, startTracks,
requestConnect, requestConnect,
@@ -673,3 +688,14 @@ export async function enterRTCSession(
await widget.api.transport.send(ElementWidgetActions.JoinCall, {}); 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();
}