diff --git a/src/vector/jitsi/index.ts b/src/vector/jitsi/index.ts index 6e697fee2f..ca32ea7540 100644 --- a/src/vector/jitsi/index.ts +++ b/src/vector/jitsi/index.ts @@ -40,6 +40,7 @@ let jitsiAuth: string; let roomId: string; let widgetApi: WidgetApi; +let meetApi: any; // JitsiMeetExternalAPI (async function() { try { @@ -88,7 +89,12 @@ let widgetApi: WidgetApi; } else { enableJoinButton(); } + // TODO: register widgetApi listeners for PTT controls (https://github.com/vector-im/riot-web/issues/12795) + + widgetApi.on('hangup', () => { + if (meetApi) meetApi.executeCommand('hangup'); + }); } else { enableJoinButton(); } @@ -199,7 +205,7 @@ function joinConference() { // event handler bound in HTML jwt: jwt, }; - const meetApi = new JitsiMeetExternalAPI(jitsiDomain, options); + meetApi = new JitsiMeetExternalAPI(jitsiDomain, options); if (displayName) meetApi.executeCommand("displayName", displayName); if (avatarUrl) meetApi.executeCommand("avatarUrl", avatarUrl); if (userId) meetApi.executeCommand("email", userId); @@ -214,5 +220,6 @@ function joinConference() { // event handler bound in HTML } document.getElementById("jitsiContainer").innerHTML = ""; + meetApi = null; }); }