Fix issue with thread panel not updating when it loads on first render (#8382)

pull/28217/head
Michael Telatynski 2022-04-22 08:37:23 +01:00 committed by GitHub
parent 495a69532d
commit 763edb7ab9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 10 deletions

View File

@ -198,9 +198,10 @@ const ThreadPanel: React.FC<IProps> = ({
useEffect(() => {
const room = mxClient.getRoom(roomId);
room.createThreadsTimelineSets().then(() => {
setRoom(room);
return room.fetchRoomThreads();
}).then(() => {
setFilterOption(ThreadFilterType.All);
room.fetchRoomThreads();
setRoom(room);
});
}, [mxClient, roomId]);
@ -286,8 +287,8 @@ const ThreadPanel: React.FC<IProps> = ({
sensor={card.current}
onMeasurement={setNarrow}
/>
{ timelineSet && (
<TimelinePanel
{ timelineSet
? <TimelinePanel
key={timelineSet.getFilter()?.filterId ?? (roomId + ":" + filterOption)}
ref={timelinePanel}
showReadReceipts={false} // No RR support in thread's MVP
@ -311,7 +312,8 @@ const ThreadPanel: React.FC<IProps> = ({
permalinkCreator={permalinkCreator}
disableGrouping={true}
/>
) }
: <div className="mx_AutoHideScrollbar" />
}
</BaseCard>
</RoomContext.Provider>
);

View File

@ -1188,11 +1188,8 @@ class TimelinePanel extends React.Component<IProps, IState> {
const onLoaded = () => {
if (this.unmounted) return;
// clear the timeline min-height when
// (re)loading the timeline
if (this.messagePanel.current) {
this.messagePanel.current.onTimelineReset();
}
// clear the timeline min-height when (re)loading the timeline
this.messagePanel.current?.onTimelineReset();
this.reloadEvents();
// If we switched away from the room while there were pending