UNPKG

matrix-react-sdk

Version:
194 lines (193 loc) 5.92 kB
import React from 'react'; import { Room } from "matrix-js-sdk/src/models/room"; import { MatrixEvent } from "matrix-js-sdk/src/models/event"; import ResizeNotifier from '../../utils/ResizeNotifier'; import { Layout } from "../../settings/Layout"; import { E2EStatus } from '../../utils/ShieldUtils'; import { IMatrixClientCreds } from "../../MatrixClientPeg"; import { XOR } from "../../@types/common"; import { IThreepidInvite } from "../../stores/ThreepidInviteStore"; import { CallState } from "matrix-js-sdk/src/webrtc/call"; import { IOpts } from "../../createRoom"; interface IProps { threepidInvite: IThreepidInvite; oobData?: { name?: string; avatarUrl?: string; inviterName?: string; }; resizeNotifier: ResizeNotifier; justCreatedOpts?: IOpts; onRegistered?(credentials: IMatrixClientCreds): void; } export interface IState { room?: Room; roomId?: string; roomAlias?: string; roomLoading: boolean; peekLoading: boolean; shouldPeek: boolean; membersLoaded: boolean; initialEventId?: string; initialEventPixelOffset?: number; isInitialEventHighlighted?: boolean; replyToEvent?: MatrixEvent; forwardingEvent?: MatrixEvent; numUnreadMessages: number; draggingFile: boolean; searching: boolean; searchTerm?: string; searchScope?: "All" | "Room"; searchResults?: XOR<{}, { count: number; highlights: string[]; results: MatrixEvent[]; next_batch: string; }>; searchHighlights?: string[]; searchInProgress?: boolean; callState?: CallState; guestsCanJoin: boolean; canPeek: boolean; showApps: boolean; isPeeking: boolean; showingPinned: boolean; showReadReceipts: boolean; showRightPanel: boolean; roomLoadError?: Error; joining: boolean; atEndOfLiveTimeline: boolean; atEndOfLiveTimelineInit: boolean; showTopUnreadMessagesBar: boolean; auxPanelMaxHeight?: number; statusBarVisible: boolean; upgradeRecommendation?: { version: string; needsUpgrade: boolean; urgent: boolean; }; canReact: boolean; canReply: boolean; layout: Layout; matrixClientIsReady: boolean; showUrlPreview?: boolean; e2eStatus?: E2EStatus; rejecting?: boolean; rejectError?: Error; hasPinnedWidgets?: boolean; dragCounter: number; wasContextSwitch?: boolean; } export default class RoomView extends React.Component<IProps, IState> { private readonly dispatcherRef; private readonly roomStoreToken; private readonly rightPanelStoreToken; private readonly showReadReceiptsWatchRef; private readonly layoutWatcherRef; private unmounted; private permalinkCreators; private searchId; private roomView; private searchResultsPanel; private messagePanel; static contextType: React.Context<any>; constructor(props: any, context: any); private onWidgetStoreUpdate; private checkWidgets; private onReadReceiptsChange; private onRoomViewStoreUpdate; private getRoomId; private getPermalinkCreatorForRoom; private stopAllPermalinkCreators; private onWidgetEchoStoreUpdate; private onWidgetLayoutChange; private setupRoom; private shouldShowApps; componentDidMount(): void; shouldComponentUpdate(nextProps: any, nextState: any): boolean; componentDidUpdate(): void; componentWillUnmount(): void; private onLayoutChange; private onRightPanelStoreUpdate; private onPageUnload; private onReactKeyDown; private onAction; private onRoomTimeline; private onEventDecrypted; private onEvent; private handleEffects; private onRoomName; private onKeyBackupStatus; canResetTimeline: () => any; private onRoomLoaded; private calculateRecommendedVersion; private loadMembersIfJoined; private calculatePeekRules; private updatePreviewUrlVisibility; private onRoom; private onDeviceVerificationChanged; private onUserVerificationChanged; private onCrossSigningKeysChanged; private updateE2EStatus; private updateTint; private onAccountData; private onRoomAccountData; private onRoomStateEvents; private onRoomStateMember; private onMyMembership; private updatePermissions; private updateRoomMembers; private checkDesktopNotifications; private updateDMState; private onSearchResultsFillRequest; private onInviteButtonClick; private onJoinButtonClicked; private onMessageListScroll; private onDragEnter; private onDragLeave; private onDragOver; private onDrop; private injectSticker; private onSearch; private handleSearchResult; private getSearchResultTiles; private onPinnedClick; private onCallPlaced; private onSettingsClick; private onCancelClick; private onAppsClick; private onLeaveClick; private onForgetClick; private onRejectButtonClicked; private onRejectAndIgnoreClick; private onRejectThreepidInviteButtonClicked; private onSearchClick; private onCancelSearchClick; private jumpToLiveTimeline; private jumpToReadMarker; private forgetReadMarker; private updateTopUnreadMessagesBar; private getScrollState; private onResize; private onFullscreenClick; private onMuteAudioClick; private onMuteVideoClick; private onStatusBarVisible; private onStatusBarHidden; /** * called by the parent component when PageUp/Down/etc is pressed. * * We pass it down to the scroll panel. */ private handleScrollKey; /** * get any current call for this room */ private getCallForRoom; private gatherTimelinePanelRef; private getOldRoom; getHiddenHighlightCount(): any; onHiddenHighlightsClick: () => void; render(): JSX.Element; } export {};