matrix-react-sdk
Version:
SDK for matrix.org using React
82 lines (81 loc) • 2.64 kB
TypeScript
import * as React from "react";
import { ReactComponentElement } from "react";
import { Room } from "matrix-js-sdk/src/models/room";
import { TagID } from "../../../stores/room-list/models";
import { ResizeNotifier } from "../../../utils/ResizeNotifier";
import ExtraTile from "./ExtraTile";
export declare const HEADER_HEIGHT = 32;
interface IProps {
forRooms: boolean;
startAsHidden: boolean;
label: string;
onAddRoom?: () => void;
addRoomContextMenu?: (onFinished: () => void) => React.ReactNode;
addRoomLabel: string;
isMinimized: boolean;
tagId: TagID;
onResize: () => void;
showSkeleton?: boolean;
alwaysVisible?: boolean;
resizeNotifier: ResizeNotifier;
extraTiles?: ReactComponentElement<typeof ExtraTile>[];
}
declare type PartialDOMRect = Pick<DOMRect, "left" | "top" | "height">;
interface IState {
contextMenuPosition: PartialDOMRect;
addRoomContextMenuPosition: PartialDOMRect;
isResizing: boolean;
isExpanded: boolean;
height: number;
rooms: Room[];
filteredExtraTiles?: ReactComponentElement<typeof ExtraTile>[];
}
export default class RoomSublist extends React.Component<IProps, IState> {
private headerButton;
private sublistRef;
private dispatcherRef;
private layout;
private heightAtStart;
private isBeingFiltered;
private notificationState;
constructor(props: IProps);
private calculateInitialHeight;
private get padding();
private get extraTiles();
private get numTiles();
private static calcNumTiles;
private get numVisibleTiles();
componentDidUpdate(prevProps: Readonly<IProps>, prevState: Readonly<IState>): void;
shouldComponentUpdate(nextProps: Readonly<IProps>, nextState: Readonly<IState>): boolean;
componentDidMount(): void;
componentWillUnmount(): void;
private onListsUpdated;
private onAction;
private onAddRoom;
private applyHeightChange;
private onResize;
private onResizeStart;
private onResizeStop;
private onShowAllClick;
private onShowLessClick;
private focusRoomTile;
private onOpenMenuClick;
private onContextMenu;
private onAddRoomContextMenu;
private onCloseMenu;
private onCloseAddRoomMenu;
private onUnreadFirstChanged;
private onTagSortChanged;
private onMessagePreviewChanged;
private onBadgeClick;
private onHeaderClick;
private toggleCollapsed;
private onHeaderKeyDown;
private onKeyDown;
private renderVisibleTiles;
private renderMenu;
private renderHeader;
private onScrollPrevent;
render(): React.ReactElement;
}
export {};