/* Copyright 2024 New Vector Ltd. Copyright 2019-2022 The Matrix.org Foundation C.I.C. Copyright 2018 New Vector Ltd SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ import React, { ContextType, CSSProperties, MutableRefObject, ReactNode } from "react"; import { Room } from "matrix-js-sdk/src/matrix"; import WidgetUtils from "../../../utils/WidgetUtils"; import AppTile from "./AppTile"; import WidgetStore from "../../../stores/WidgetStore"; import MatrixClientContext from "../../../contexts/MatrixClientContext"; interface IProps { persistentWidgetId: string; persistentRoomId: string; pointerEvents?: CSSProperties["pointerEvents"]; movePersistedElement: MutableRefObject<(() => void) | undefined>; children?: ReactNode; } export default class PersistentApp extends React.Component { public static contextType = MatrixClientContext; public declare context: ContextType; private room: Room; public constructor(props: IProps, context: ContextType) { super(props, context); this.room = context.getRoom(this.props.persistentRoomId)!; } public render(): JSX.Element | null { const app = WidgetStore.instance.get(this.props.persistentWidgetId, this.props.persistentRoomId); if (!app) return null; return ( ); } }