Move all game scene game map properties listeners
This commit is contained in:
@@ -1,22 +1,11 @@
|
||||
import CancelablePromise from "cancelable-promise";
|
||||
import { gameManager } from "../../Phaser/Game/GameManager";
|
||||
import { coWebsiteManager } from "../CoWebsiteManager";
|
||||
import { jitsiFactory } from "../JitsiFactory";
|
||||
import { SimpleCoWebsite } from "./SimpleCoWebsite";
|
||||
|
||||
export class JitsiCoWebsite extends SimpleCoWebsite {
|
||||
private jitsiLoadPromise?: () => CancelablePromise<HTMLIFrameElement>;
|
||||
|
||||
constructor(url: URL, allowApi?: boolean, allowPolicy?: string, widthPercent?: number, closable?: boolean) {
|
||||
const coWebsite = coWebsiteManager.searchJitsi();
|
||||
|
||||
if (coWebsite) {
|
||||
coWebsiteManager.closeCoWebsite(coWebsite);
|
||||
}
|
||||
|
||||
super(url, allowApi, allowPolicy, widthPercent, closable);
|
||||
}
|
||||
|
||||
setJitsiLoadPromise(promise: () => CancelablePromise<HTMLIFrameElement>): void {
|
||||
this.jitsiLoadPromise = promise;
|
||||
}
|
||||
@@ -26,7 +15,6 @@ export class JitsiCoWebsite extends SimpleCoWebsite {
|
||||
this.state.set("loading");
|
||||
|
||||
gameManager.getCurrentGameScene().disableMediaBehaviors();
|
||||
jitsiFactory.restart();
|
||||
|
||||
if (!this.jitsiLoadPromise) {
|
||||
return reject("Undefined Jitsi start callback");
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { HtmlUtils } from "./HtmlUtils";
|
||||
import { Subject } from "rxjs";
|
||||
import { waScaleManager } from "../Phaser/Services/WaScaleManager";
|
||||
import { coWebsites, coWebsitesNotAsleep, jitsiCoWebsite, mainCoWebsite } from "../Stores/CoWebsiteStore";
|
||||
import { coWebsites, coWebsitesNotAsleep, mainCoWebsite } from "../Stores/CoWebsiteStore";
|
||||
import { get } from "svelte/store";
|
||||
import { embedScreenLayout, highlightedEmbedScreen } from "../Stores/EmbedScreensStore";
|
||||
import { isMediaBreakpointDown } from "../Utils/BreakpointsUtils";
|
||||
@@ -565,10 +565,6 @@ class CoWebsiteManager {
|
||||
this.resizeAllIframes();
|
||||
}
|
||||
|
||||
public searchJitsi(): CoWebsite | undefined {
|
||||
return get(jitsiCoWebsite);
|
||||
}
|
||||
|
||||
public addCoWebsiteToStore(coWebsite: CoWebsite, position: number | undefined) {
|
||||
const coWebsitePosition = position === undefined ? get(coWebsites).length : position;
|
||||
coWebsites.add(coWebsite, coWebsitePosition);
|
||||
|
||||
@@ -2,7 +2,6 @@ import { JITSI_URL } from "../Enum/EnvironmentVariable";
|
||||
import { coWebsiteManager } from "./CoWebsiteManager";
|
||||
import { requestedCameraState, requestedMicrophoneState } from "../Stores/MediaStore";
|
||||
import { get } from "svelte/store";
|
||||
import type { CoWebsite } from "./CoWebsite/CoWesbite";
|
||||
import CancelablePromise from "cancelable-promise";
|
||||
|
||||
interface jitsiConfigInterface {
|
||||
@@ -180,13 +179,14 @@ class JitsiFactory {
|
||||
const iframe = coWebsiteManager
|
||||
.getCoWebsiteBuffer()
|
||||
.querySelector<HTMLIFrameElement>('[id*="jitsi" i]');
|
||||
|
||||
if (iframe && this.jitsiApi) {
|
||||
this.jitsiApi.addListener("videoConferenceLeft", () => {
|
||||
this.closeOrUnload();
|
||||
this.closeOrUnload(iframe);
|
||||
});
|
||||
|
||||
this.jitsiApi.addListener("readyToClose", () => {
|
||||
this.closeOrUnload();
|
||||
this.closeOrUnload(iframe);
|
||||
});
|
||||
|
||||
return resolve(iframe);
|
||||
@@ -209,8 +209,9 @@ class JitsiFactory {
|
||||
});
|
||||
}
|
||||
|
||||
private closeOrUnload = function () {
|
||||
const coWebsite = coWebsiteManager.searchJitsi();
|
||||
private closeOrUnload = function (iframe: HTMLIFrameElement) {
|
||||
const coWebsite = coWebsiteManager.getCoWebsites().find((coWebsite) => coWebsite.getIframe() === iframe);
|
||||
|
||||
if (!coWebsite) {
|
||||
return;
|
||||
}
|
||||
@@ -224,30 +225,6 @@ class JitsiFactory {
|
||||
}
|
||||
};
|
||||
|
||||
public restart() {
|
||||
if (!this.jitsiApi) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.jitsiApi.addListener("audioMuteStatusChanged", this.audioCallback);
|
||||
this.jitsiApi.addListener("videoMuteStatusChanged", this.videoCallback);
|
||||
|
||||
const coWebsite = coWebsiteManager.searchJitsi();
|
||||
|
||||
if (!coWebsite) {
|
||||
this.destroy();
|
||||
return;
|
||||
}
|
||||
|
||||
this.jitsiApi.addListener("videoConferenceLeft", () => {
|
||||
this.closeOrUnload();
|
||||
});
|
||||
|
||||
this.jitsiApi.addListener("readyToClose", () => {
|
||||
this.closeOrUnload();
|
||||
});
|
||||
}
|
||||
|
||||
public stop() {
|
||||
if (!this.jitsiApi) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user