Clear requiresClient and show pop-out if widget-api fails to ready (#11321)
* Clear requiresClient and show pop-out if widget-api fails to ready * Upgrade matrix-widget-api
This commit is contained in:
parent
755f8d7ab0
commit
44f51fd1cb
4 changed files with 7 additions and 12 deletions
|
@ -346,14 +346,16 @@ export default class AppTile extends React.Component<IProps, IState> {
|
|||
|
||||
private setupSgListeners(): void {
|
||||
this.sgWidget?.on("preparing", this.onWidgetPreparing);
|
||||
this.sgWidget?.on("error:preparing", this.updateRequiresClient);
|
||||
// emits when the capabilities have been set up or changed
|
||||
this.sgWidget?.on("capabilitiesNotified", this.onWidgetCapabilitiesNotified);
|
||||
this.sgWidget?.on("capabilitiesNotified", this.updateRequiresClient);
|
||||
}
|
||||
|
||||
private stopSgListeners(): void {
|
||||
if (!this.sgWidget) return;
|
||||
this.sgWidget.off("preparing", this.onWidgetPreparing);
|
||||
this.sgWidget.off("capabilitiesNotified", this.onWidgetCapabilitiesNotified);
|
||||
this.sgWidget.off("error:preparing", this.updateRequiresClient);
|
||||
this.sgWidget.off("capabilitiesNotified", this.updateRequiresClient);
|
||||
}
|
||||
|
||||
private resetWidget(newProps: IProps): void {
|
||||
|
@ -442,7 +444,7 @@ export default class AppTile extends React.Component<IProps, IState> {
|
|||
this.setState({ loading: false });
|
||||
};
|
||||
|
||||
private onWidgetCapabilitiesNotified = (): void => {
|
||||
private updateRequiresClient = (): void => {
|
||||
this.setState({
|
||||
requiresClient: !!this.sgWidget?.widgetApi?.hasCapability(ElementWidgetCapabilities.RequiresClient),
|
||||
});
|
||||
|
|
|
@ -285,6 +285,7 @@ export class StopGapWidget extends EventEmitter {
|
|||
|
||||
this.messaging = new ClientWidgetApi(this.mockWidget, iframe, driver);
|
||||
this.messaging.on("preparing", () => this.emit("preparing"));
|
||||
this.messaging.on("error:preparing", (err: unknown) => this.emit("error:preparing", err));
|
||||
this.messaging.on("ready", () => {
|
||||
WidgetMessagingStore.instance.storeMessaging(this.mockWidget, this.roomId, this.messaging!);
|
||||
this.emit("ready");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue