matrix-react-sdk
Version:
SDK for matrix.org using React
39 lines (38 loc) • 1.39 kB
TypeScript
import { IWidget } from "matrix-widget-api";
import { ActionPayload } from "../dispatcher/payloads";
import { AsyncStoreWithClient } from "./AsyncStoreWithClient";
interface IState {
}
export interface IApp extends IWidget {
"roomId": string;
"eventId"?: string;
"avatar_url"?: string;
"io.element.managed_hybrid"?: boolean;
}
export declare function isAppWidget(widget: IWidget | IApp): widget is IApp;
export declare function isVirtualWidget(widget: IApp): boolean;
interface IRoomWidgets {
widgets: IApp[];
}
export default class WidgetStore extends AsyncStoreWithClient<IState> {
private static readonly internalInstance;
private widgetMap;
private roomMap;
private constructor();
static get instance(): WidgetStore;
private initRoom;
protected onReady(): Promise<any>;
protected onNotReady(): Promise<any>;
protected onAction(payload: ActionPayload): Promise<void>;
private onWidgetEchoStoreUpdate;
private generateApps;
private loadRoomWidgets;
private onRoom;
private onRoomStateEvents;
get(widgetId: string, roomId: string | undefined): IApp | undefined;
getRoom(roomId: string, initIfNeeded?: boolean): IRoomWidgets;
getApps(roomId: string): IApp[];
addVirtualWidget(widget: IWidget, roomId: string): IApp;
removeVirtualWidget(widgetId: string, roomId: string): void;
}
export {};