mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-15 20:54:59 +08:00
Fix templating for v1 jitsi widgets
Fixes https://github.com/vector-im/element-web/issues/15427
This commit is contained in:
parent
e92af6cb73
commit
1af8d96db9
@ -19,11 +19,13 @@ import {
|
||||
ClientWidgetApi,
|
||||
IStickerActionRequest,
|
||||
IStickyActionRequest,
|
||||
ITemplateParams,
|
||||
IWidget,
|
||||
IWidgetApiRequest,
|
||||
IWidgetApiRequestEmptyData,
|
||||
IWidgetData,
|
||||
MatrixCapabilities,
|
||||
runTemplate,
|
||||
Widget,
|
||||
WidgetApiFromWidgetAction,
|
||||
} from "matrix-widget-api";
|
||||
@ -76,15 +78,33 @@ class ElementWidget extends Widget {
|
||||
let conferenceId = super.rawData['conferenceId'];
|
||||
if (conferenceId === undefined) {
|
||||
// we'll need to parse the conference ID out of the URL for v1 Jitsi widgets
|
||||
const parsedUrl = new URL(this.templateUrl);
|
||||
const parsedUrl = new URL(super.templateUrl); // use super to get the raw widget URL
|
||||
conferenceId = parsedUrl.searchParams.get("confId");
|
||||
}
|
||||
let domain = super.rawData['domain'];
|
||||
if (domain === undefined) {
|
||||
// v1 widgets default to jitsi.riot.im regardless of user settings
|
||||
domain = "jitsi.riot.im";
|
||||
}
|
||||
return {
|
||||
...super.rawData,
|
||||
theme: SettingsStore.getValue("theme"),
|
||||
conferenceId,
|
||||
domain,
|
||||
};
|
||||
}
|
||||
|
||||
public getCompleteUrl(params: ITemplateParams): string {
|
||||
return runTemplate(this.templateUrl, {
|
||||
// we need to supply a whole widget to the template, but don't have
|
||||
// easy access to the definition the superclass is using, so be sad
|
||||
// and gutwrench it.
|
||||
// This isn't a problem when the widget architecture is fixed and this
|
||||
// subclass gets deleted.
|
||||
...super['definition'], // XXX: Private member access
|
||||
data: this.rawData,
|
||||
}, params);
|
||||
}
|
||||
}
|
||||
|
||||
export class StopGapWidget extends EventEmitter {
|
||||
|
Loading…
Reference in New Issue
Block a user