mirror of https://github.com/vector-im/riot-web
				
				
				
			Update lastReply to filter out local event ID from thread fallback (#7620)
							parent
							
								
									1d02e61655
								
							
						
					
					
						commit
						ecd5be8a8f
					
				| 
						 | 
				
			
			@ -88,7 +88,7 @@ async function getThreadTimelineSet(
 | 
			
		|||
        const timelineSet = new EventTimelineSet(room, {});
 | 
			
		||||
 | 
			
		||||
        Array.from(room.threads)
 | 
			
		||||
            .sort(([, threadA], [, threadB]) => threadA.lastReply.getTs() - threadB.lastReply.getTs())
 | 
			
		||||
            .sort(([, threadA], [, threadB]) => threadA.lastReply().getTs() - threadB.lastReply().getTs())
 | 
			
		||||
            .forEach(([, thread]) => {
 | 
			
		||||
                const isOwnEvent = thread.rootEvent.getSender() === client.getUserId();
 | 
			
		||||
                if (filterType !== ThreadFilterType.My || isOwnEvent) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -166,7 +166,9 @@ export default class ThreadView extends React.Component<IProps, IState> {
 | 
			
		|||
        if (thread && this.state.thread !== thread) {
 | 
			
		||||
            this.setState({
 | 
			
		||||
                thread,
 | 
			
		||||
                lastThreadReply: thread.lastReply,
 | 
			
		||||
                lastThreadReply: thread.lastReply((ev: MatrixEvent) => {
 | 
			
		||||
                    return !ev.status;
 | 
			
		||||
                }),
 | 
			
		||||
            }, () => {
 | 
			
		||||
                thread.emit(ThreadEvent.ViewThread);
 | 
			
		||||
                this.timelinePanelRef.current?.refreshTimeline();
 | 
			
		||||
| 
						 | 
				
			
			@ -177,7 +179,9 @@ export default class ThreadView extends React.Component<IProps, IState> {
 | 
			
		|||
    private updateLastThreadReply = () => {
 | 
			
		||||
        if (this.state.thread) {
 | 
			
		||||
            this.setState({
 | 
			
		||||
                lastThreadReply: this.state.thread.lastReply,
 | 
			
		||||
                lastThreadReply: this.state.thread.lastReply((ev: MatrixEvent) => {
 | 
			
		||||
                    return !ev.status;
 | 
			
		||||
                }),
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -402,7 +402,7 @@ export default class EventTile extends React.Component<IProps, IState> {
 | 
			
		|||
 | 
			
		||||
            thread,
 | 
			
		||||
            threadReplyCount: thread?.length,
 | 
			
		||||
            threadLastReply: thread?.lastReply,
 | 
			
		||||
            threadLastReply: thread?.lastReply(),
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        // don't do RR animations until we are mounted
 | 
			
		||||
| 
						 | 
				
			
			@ -556,7 +556,7 @@ export default class EventTile extends React.Component<IProps, IState> {
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
        this.setState({
 | 
			
		||||
            threadLastReply: thread?.lastReply,
 | 
			
		||||
            threadLastReply: thread?.lastReply(),
 | 
			
		||||
            threadReplyCount: thread?.length,
 | 
			
		||||
            thread,
 | 
			
		||||
        });
 | 
			
		||||
| 
						 | 
				
			
			@ -1271,7 +1271,7 @@ export default class EventTile extends React.Component<IProps, IState> {
 | 
			
		|||
        // Thread panel shows the timestamp of the last reply in that thread
 | 
			
		||||
        const ts = this.props.tileShape !== TileShape.ThreadPanel
 | 
			
		||||
            ? this.props.mxEvent.getTs()
 | 
			
		||||
            : thread?.lastReply.getTs();
 | 
			
		||||
            : thread?.lastReply().getTs();
 | 
			
		||||
 | 
			
		||||
        const timestamp = showTimestamp && ts ?
 | 
			
		||||
            <MessageTimestamp
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue