matrix-react-sdk
Version:
SDK for matrix.org using React
84 lines (83 loc) • 2.67 kB
TypeScript
import { Room } from "matrix-js-sdk/src/matrix";
import * as React from "react";
import { ComponentType, ReactComponentElement } from "react";
import { MatrixDispatcher } from "../../../dispatcher/dispatcher";
import { TagID } from "../../../stores/room-list/models";
import ResizeNotifier from "../../../utils/ResizeNotifier";
import ExtraTile from "./ExtraTile";
export declare const HEADER_HEIGHT = 32;
export interface IAuxButtonProps {
tabIndex: number;
dispatcher?: MatrixDispatcher;
}
interface IProps {
forRooms: boolean;
startAsHidden: boolean;
label: string;
AuxButtonComponent?: ComponentType<IAuxButtonProps>;
isMinimized: boolean;
tagId: TagID;
showSkeleton?: boolean;
alwaysVisible?: boolean;
forceExpanded?: boolean;
resizeNotifier: ResizeNotifier;
extraTiles?: ReactComponentElement<typeof ExtraTile>[] | null;
onListCollapse?: (isExpanded: boolean) => void;
}
type PartialDOMRect = Pick<DOMRect, "left" | "top" | "height">;
interface IState {
contextMenuPosition?: PartialDOMRect;
isResizing: boolean;
isExpanded: boolean;
height: number;
rooms: Room[];
roomsLoading: boolean;
}
export default class RoomSublist extends React.Component<IProps, IState> {
private headerButton;
private sublistRef;
private tilesRef;
private dispatcherRef?;
private layout;
private heightAtStart;
private notificationState;
private slidingSyncMode;
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 onListsLoading;
private onListsUpdated;
private onAction;
private applyHeightChange;
private onResize;
private onResizeStart;
private onResizeStop;
private onShowAllClick;
private onShowLessClick;
private focusRoomTile;
private onOpenMenuClick;
private onContextMenu;
private onCloseMenu;
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 {};