Pass room to ThreadView over roomId

This commit is contained in:
Germain Souquet 2021-08-23 17:31:23 +01:00
parent ef51a46d24
commit 34da07f1f9
4 changed files with 16 additions and 8 deletions

View file

@ -315,7 +315,7 @@ export default class RightPanel extends React.Component<IProps, IState> {
case RightPanelPhases.ThreadView:
panel = <ThreadView
roomId={roomId}
room={this.props.room}
resizeNotifier={this.props.resizeNotifier}
onClose={this.onClose}
mxEvent={this.state.event}

View file

@ -17,6 +17,7 @@ limitations under the License.
import React from 'react';
import { MatrixEvent, Room } from 'matrix-js-sdk/src';
import { Thread } from 'matrix-js-sdk/src/models/thread';
import BaseCard from "../views/right_panel/BaseCard";
import { RightPanelPhases } from "../../stores/RightPanelStorePhases";
@ -25,7 +26,6 @@ import { MatrixClientPeg } from '../../MatrixClientPeg';
import ResizeNotifier from '../../utils/ResizeNotifier';
import EventTile from '../views/rooms/EventTile';
import { Thread } from '../../../../matrix-js-sdk/src/models/thread';
interface IProps {
roomId: string;

View file

@ -16,7 +16,8 @@ limitations under the License.
*/
import React from 'react';
import { MatrixEvent } from 'matrix-js-sdk/src';
import { MatrixEvent, Room } from 'matrix-js-sdk/src';
import { Thread } from 'matrix-js-sdk/src/models/thread';
import BaseCard from "../views/right_panel/BaseCard";
import { RightPanelPhases } from "../../stores/RightPanelStorePhases";
@ -29,12 +30,13 @@ import MessageComposer from '../views/rooms/MessageComposer';
import { RoomPermalinkCreator } from '../../utils/permalinks/Permalinks';
import { Layout } from '../../settings/Layout';
import TimelinePanel from './TimelinePanel';
import { Thread } from '../../../../matrix-js-sdk/src/models/thread';
import dis from "../../dispatcher/dispatcher";
import { ActionPayload } from '../../dispatcher/payloads';
import { SetRightPanelPhasePayload } from '../../dispatcher/payloads/SetRightPanelPhasePayload';
import { Action } from '../../dispatcher/actions';
interface IProps {
roomId: string;
room: Room;
onClose: () => void;
resizeNotifier: ResizeNotifier;
mxEvent: MatrixEvent;
@ -73,6 +75,13 @@ class ThreadView extends React.Component<IProps, IState> {
this.teardownThread();
this.setupThread(this.props.mxEvent);
}
if (prevProps.room !== this.props.room) {
dis.dispatch<SetRightPanelPhasePayload>({
action: Action.SetRightPanelPhase,
phase: RightPanelPhases.RoomSummary,
});
}
}
private onAction = (payload: ActionPayload): void => {
@ -120,7 +129,6 @@ class ThreadView extends React.Component<IProps, IState> {
}
public render() {
const room = MatrixClientPeg.get().getRoom(this.props.roomId);
return (
<BaseCard
className="mx_ThreadView"
@ -142,7 +150,7 @@ class ThreadView extends React.Component<IProps, IState> {
/>
) }
<MessageComposer
room={room}
room={this.props.room}
resizeNotifier={this.props.resizeNotifier}
replyToEvent={this.state?.thread?.replyToEvent}
showReplyPreview={false}

View file

@ -21,6 +21,7 @@ import { EventType } from "matrix-js-sdk/src/@types/event";
import { EventStatus, MatrixEvent } from "matrix-js-sdk/src/models/event";
import { Relations } from "matrix-js-sdk/src/models/relations";
import { RoomMember } from "matrix-js-sdk/src/models/room-member";
import { Thread } from 'matrix-js-sdk/src/models/thread';
import ReplyThread from "../elements/ReplyThread";
import { _t } from '../../../languageHandler';
@ -56,7 +57,6 @@ import MessageActionBar from "../messages/MessageActionBar";
import ReactionsRow from '../messages/ReactionsRow';
import { getEventDisplayInfo } from '../../../utils/EventUtils';
import { RightPanelPhases } from "../../../stores/RightPanelStorePhases";
import { Thread } from '../../../../../matrix-js-sdk/src/models/thread';
import SettingsStore from "../../../settings/SettingsStore";
const eventTileTypes = {