matrix-react-sdk
Version:
SDK for matrix.org using React
64 lines (63 loc) • 2.21 kB
TypeScript
import React from "react";
import { Room } from "matrix-js-sdk/src/matrix";
import type { Call } from "../../../models/Call";
import { MenuProps } from "../../structures/ContextMenu";
import { TagID } from "../../../stores/room-list/models";
import { MessagePreview } from "../../../stores/room-list/MessagePreviewStore";
interface Props {
room: Room;
showMessagePreview: boolean;
isMinimized: boolean;
tag: TagID;
}
interface ClassProps extends Props {
hasLiveVoiceBroadcast: boolean;
}
type PartialDOMRect = Pick<DOMRect, "left" | "bottom">;
interface State {
selected: boolean;
notificationsMenuPosition: PartialDOMRect | null;
generalMenuPosition: PartialDOMRect | null;
call: Call | null;
messagePreview: MessagePreview | null;
}
export declare const contextMenuBelow: (elementRect: PartialDOMRect) => MenuProps;
export declare class RoomTile extends React.PureComponent<ClassProps, State> {
private dispatcherRef?;
private roomTileRef;
private notificationState;
private roomProps;
constructor(props: ClassProps);
private onRoomNameUpdate;
private onNotificationUpdate;
private onRoomPropertyUpdate;
private get showContextMenu();
private get showMessagePreview();
componentDidUpdate(prevProps: Readonly<Props>, prevState: Readonly<State>): void;
componentDidMount(): void;
componentWillUnmount(): void;
private onAction;
private onRoomPreviewChanged;
private onCallChanged;
private generatePreview;
private scrollIntoView;
private onTileClick;
private onActiveRoomUpdate;
private onNotificationsMenuOpenClick;
private onCloseNotificationsMenu;
private onGeneralMenuOpenClick;
private onContextMenu;
private onCloseGeneralMenu;
private renderNotificationsMenu;
private renderGeneralMenu;
/**
* RoomTile has a subtile if one of the following applies:
* - there is a call
* - there is a live voice broadcast
* - message previews are enabled and there is a previewable message
*/
private get shouldRenderSubtitle();
render(): React.ReactElement;
}
declare const RoomTileHOC: React.FC<Props>;
export default RoomTileHOC;