/* Copyright 2024 New Vector Ltd. Copyright 2015-2023 The Matrix.org Foundation C.I.C. 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, { ReactNode } from "react"; import { Room } from "matrix-js-sdk/src/matrix"; import AppsDrawer from "./AppsDrawer"; import SettingsStore from "../../../settings/SettingsStore"; import AutoHideScrollbar from "../../structures/AutoHideScrollbar"; import { UIFeature } from "../../../settings/UIFeature"; import ResizeNotifier from "../../../utils/ResizeNotifier"; import LegacyCallViewForRoom from "../voip/LegacyCallViewForRoom"; import { objectHasDiff } from "../../../utils/objects"; interface IProps { // js-sdk room object room: Room; userId: string; showApps: boolean; // Render apps resizeNotifier: ResizeNotifier; children?: ReactNode; } export default class AuxPanel extends React.Component { public static defaultProps = { showApps: true, }; public shouldComponentUpdate(nextProps: IProps): boolean { return objectHasDiff(this.props, nextProps); } public render(): React.ReactNode { const callView = ( ); let appsDrawer; if (SettingsStore.getValue(UIFeature.Widgets)) { appsDrawer = ( ); } return ( {this.props.children} {appsDrawer} {callView} ); } }