Listen to new thread to render info on timeline

This commit is contained in:
Germain Souquet 2021-10-15 11:08:33 +01:00
parent 17c4cc91af
commit 6baa6c8f65
2 changed files with 26 additions and 3 deletions

View file

@ -475,6 +475,9 @@ export default class EventTile extends React.Component<IProps, IState> {
this.props.mxEvent.once(ThreadEvent.Ready, this.updateThread);
this.props.mxEvent.on(ThreadEvent.Update, this.updateThread);
}
const room = this.context.getRoom(this.props.mxEvent.getRoomId());
room.on(ThreadEvent.New, this.onNewThread);
}
private updateThread = (thread) => {
@ -516,6 +519,9 @@ export default class EventTile extends React.Component<IProps, IState> {
this.props.mxEvent.off(ThreadEvent.Ready, this.updateThread);
this.props.mxEvent.off(ThreadEvent.Update, this.updateThread);
}
const room = this.context.getRoom(this.props.mxEvent.getRoomId());
room.off(ThreadEvent.New, this.onNewThread);
}
componentDidUpdate(prevProps, prevState, snapshot) {
@ -526,6 +532,14 @@ export default class EventTile extends React.Component<IProps, IState> {
}
}
private onNewThread = (thread: Thread) => {
if (thread.id === this.props.mxEvent.getId()) {
this.updateThread(thread);
const room = this.context.getRoom(this.props.mxEvent.getRoomId());
room.off(ThreadEvent.New, this.onNewThread);
}
};
private renderThreadInfo(): React.ReactNode {
if (!SettingsStore.getValue("feature_thread")) {
return null;