add possibility to set size of coWebsite and Jitsis via map property

This commit is contained in:
¯\_(ツ)_/¯ 2021-08-30 19:32:02 +02:00
parent d2816220eb
commit ae3e2a09d9
3 changed files with 18 additions and 6 deletions

View File

@ -835,7 +835,8 @@ export class GameScene extends DirtyScene {
newValue as string,
this.MapUrlFile,
allProps.get("openWebsiteAllowApi") as boolean | undefined,
allProps.get("openWebsitePolicy") as string | undefined
allProps.get("openWebsitePolicy") as string | undefined,
allProps.get("openWebsiteWidth") as number | undefinded
);
layoutManagerActionStore.removeAction("openWebsite");
};
@ -1839,8 +1840,9 @@ ${escapedMessage}
"jitsiInterfaceConfig"
);
const jitsiUrl = allProps.get("jitsiUrl") as string | undefined;
const jitsiWidth = allProps.get("jitsiWidth") as number | undefined;
jitsiFactory.start(roomName, this.playerName, jwt, jitsiConfig, jitsiInterfaceConfig, jitsiUrl);
jitsiFactory.start(roomName, this.playerName, jwt, jitsiConfig, jitsiInterfaceConfig, jitsiUrl, jitsiWidth);
this.connection?.setSilent(true);
mediaManager.hideGameOverlay();

View File

@ -48,6 +48,10 @@ class CoWebsiteManager {
this.cowebsiteDiv.style.width = width + "px";
}
set widthPercent(width: number) {
this.cowebsiteDiv.style.width = width + "%";
}
get height(): number {
return this.cowebsiteDiv.clientHeight;
}
@ -162,7 +166,7 @@ class CoWebsiteManager {
return iframe;
}
public loadCoWebsite(url: string, base: string, allowApi?: boolean, allowPolicy?: string): void {
public loadCoWebsite(url: string, base: string, allowApi?: boolean, allowPolicy?: string, widthpercent?: number): void {
this.load();
this.cowebsiteMainDom.innerHTML = ``;
@ -186,6 +190,9 @@ class CoWebsiteManager {
.then(() => Promise.race([onloadPromise, onTimeoutPromise]))
.then(() => {
this.open();
if (widthpercent) {
this.widthpercent = widthpercent;
}
setTimeout(() => {
this.fire();
}, animationTime);
@ -199,13 +206,16 @@ class CoWebsiteManager {
/**
* Just like loadCoWebsite but the div can be filled by the user.
*/
public insertCoWebsite(callback: (cowebsite: HTMLDivElement) => Promise<void>): void {
public insertCoWebsite(callback: (cowebsite: HTMLDivElement) => Promise<void>, jitsiWidth?: number): void {
this.load();
this.cowebsiteMainDom.innerHTML = ``;
this.currentOperationPromise = this.currentOperationPromise
.then(() => callback(this.cowebsiteMainDom))
.then(() => {
this.open();
if (jitsiWidth) {
this.widthpercent = jitsiWidth;
}
setTimeout(() => {
this.fire();
}, animationTime);

View File

@ -82,7 +82,7 @@ class JitsiFactory {
return slugify(instance.replace('/', '-') + "-" + roomName);
}
public start(roomName: string, playerName:string, jwt?: string, config?: object, interfaceConfig?: object, jitsiUrl?: string): void {
public start(roomName: string, playerName:string, jwt?: string, config?: object, interfaceConfig?: object, jitsiUrl?: string, jitsiWidth?: number): void {
coWebsiteManager.insertCoWebsite((async cowebsiteDiv => {
// Jitsi meet external API maintains some data in local storage
// which is sent via the appData URL parameter when joining a
@ -120,7 +120,7 @@ class JitsiFactory {
this.jitsiApi.addListener('audioMuteStatusChanged', this.audioCallback);
this.jitsiApi.addListener('videoMuteStatusChanged', this.videoCallback);
});
}));
}), jitsiWidth);
}
public async stop(): Promise<void> {