mirror of
https://github.com/turt2live/matrix-dimension.git
synced 2024-08-31 06:02:09 +00:00
Fix Jitsi widget not staying on screen correctly
The "Join Conference" screen should not be sticky. We also need to make sure we have a widget ID set so that when we say to be stuck on screen or not, the request actually passes.
This commit is contained in:
parent
43473f7d4d
commit
34653eb223
@ -66,6 +66,7 @@ export class ScalarWidgetApi {
|
||||
|
||||
public static sendSetAlwaysOnScreen(alwaysVisible: boolean): void {
|
||||
ScalarWidgetApi.callAction("set_always_on_screen", {
|
||||
// Send the value here and in data due to a Riot bug.
|
||||
data: {
|
||||
value: alwaysVisible,
|
||||
},
|
||||
@ -92,6 +93,7 @@ export class ScalarWidgetApi {
|
||||
request["action"] = action;
|
||||
request["requestId"] = randomString({length: 160});
|
||||
|
||||
console.log("[Dimension] Sending fromWidget: ", request);
|
||||
window.opener.postMessage(request, "*");
|
||||
}
|
||||
|
||||
@ -102,6 +104,8 @@ export class ScalarWidgetApi {
|
||||
|
||||
let requestClone = JSON.parse(JSON.stringify(request));
|
||||
requestClone["response"] = payload;
|
||||
|
||||
console.log("[Dimension] Sending postMessage response: ", request);
|
||||
window.opener.postMessage(requestClone, "*");
|
||||
}
|
||||
}
|
||||
|
@ -31,6 +31,6 @@ export abstract class CapableWidget implements OnInit, OnDestroy {
|
||||
}
|
||||
|
||||
protected onCapabilitiesSent(): void {
|
||||
if (this.supportsAlwaysOnScreen) ScalarWidgetApi.sendSetAlwaysOnScreen(true);
|
||||
// Nothing to do here.
|
||||
}
|
||||
}
|
@ -37,6 +37,9 @@ export class JitsiWidgetWrapperComponent extends CapableWidget implements OnInit
|
||||
this.displayName = params.displayName;
|
||||
this.avatarUrl = params.avatarUrl;
|
||||
this.userId = params.userId || params.email; // Riot uses `email` when placing a conference call
|
||||
|
||||
// Set the widget ID if we have it
|
||||
ScalarWidgetApi.widgetId = params.widgetId;
|
||||
}
|
||||
|
||||
public ngOnInit() {
|
||||
@ -88,6 +91,8 @@ export class JitsiWidgetWrapperComponent extends CapableWidget implements OnInit
|
||||
$(".join-conference-wrapper").hide();
|
||||
$("#jitsiContainer").show();
|
||||
|
||||
ScalarWidgetApi.sendSetAlwaysOnScreen(true);
|
||||
|
||||
this.jitsiApiObj = new JitsiMeetExternalAPI(this.domain, {
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
@ -106,6 +111,7 @@ export class JitsiWidgetWrapperComponent extends CapableWidget implements OnInit
|
||||
|
||||
this.jitsiApiObj.on("readyToClose", () => {
|
||||
this.isJoined = false;
|
||||
ScalarWidgetApi.sendSetAlwaysOnScreen(false);
|
||||
$(".join-conference-wrapper").show();
|
||||
$("#jitsiContainer").hide().html("");
|
||||
});
|
||||
@ -117,4 +123,9 @@ export class JitsiWidgetWrapperComponent extends CapableWidget implements OnInit
|
||||
if (this.jitsiApiSubscription) this.jitsiApiSubscription.unsubscribe();
|
||||
}
|
||||
|
||||
protected onCapabilitiesSent(): void {
|
||||
super.onCapabilitiesSent();
|
||||
ScalarWidgetApi.sendSetAlwaysOnScreen(false);
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user