matrix-react-sdk
Version:
SDK for matrix.org using React
46 lines (45 loc) • 1.79 kB
TypeScript
import React, { ChangeEvent } from "react";
import { Room } from "matrix-js-sdk/src/matrix";
import { RightPanelPhases } from "../../stores/right-panel/RightPanelStorePhases";
import MatrixClientContext from "../../contexts/MatrixClientContext";
import ResizeNotifier from "../../utils/ResizeNotifier";
import { RoomPermalinkCreator } from "../../utils/permalinks/Permalinks";
import { E2EStatus } from "../../utils/ShieldUtils";
import { IRightPanelCard, IRightPanelCardState } from "../../stores/right-panel/RightPanelStoreIPanelState";
import { XOR } from "../../@types/common";
interface BaseProps {
overwriteCard?: IRightPanelCard;
resizeNotifier: ResizeNotifier;
e2eStatus?: E2EStatus;
}
interface RoomlessProps extends BaseProps {
room?: undefined;
permalinkCreator?: undefined;
}
interface RoomProps extends BaseProps {
room: Room;
permalinkCreator: RoomPermalinkCreator;
onSearchChange?: (e: ChangeEvent) => void;
onSearchCancel?: () => void;
}
type Props = XOR<RoomlessProps, RoomProps>;
interface IState {
phase?: RightPanelPhases;
searchQuery: string;
cardState?: IRightPanelCardState;
}
export default class RightPanel extends React.Component<Props, IState> {
static contextType: React.Context<import("matrix-js-sdk/src/client").MatrixClient>;
context: React.ContextType<typeof MatrixClientContext>;
constructor(props: Props, context: React.ContextType<typeof MatrixClientContext>);
private readonly delayedUpdate;
componentDidMount(): void;
componentWillUnmount(): void;
static getDerivedStateFromProps(props: Props): Partial<IState>;
private onRoomStateMember;
private onRightPanelStoreUpdate;
private onClose;
private onSearchQueryChanged;
render(): React.ReactNode;
}
export {};