You've already forked matrix-react-sdk
							
							
				mirror of
				https://github.com/matrix-org/matrix-react-sdk.git
				synced 2025-11-04 11:51:45 +03:00 
			
		
		
		
	Move hideSender logic into state so it causes re-render (#7413)
* Move hideSender logic into state so it causes re-render * change method signature
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							fb74f9a9b4
						
					
				
				
					commit
					13028d33c2
				
			@@ -186,6 +186,7 @@ interface IProps {
 | 
			
		||||
interface IState {
 | 
			
		||||
    ghostReadMarkers: string[];
 | 
			
		||||
    showTypingNotifications: boolean;
 | 
			
		||||
    hideSender: boolean;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface IReadReceiptForUser {
 | 
			
		||||
@@ -254,8 +255,6 @@ export default class MessagePanel extends React.Component<IProps, IState> {
 | 
			
		||||
    // A map of <callId, CallEventGrouper>
 | 
			
		||||
    private callEventGroupers = new Map<string, CallEventGrouper>();
 | 
			
		||||
 | 
			
		||||
    private membersCount = 0;
 | 
			
		||||
 | 
			
		||||
    constructor(props, context) {
 | 
			
		||||
        super(props, context);
 | 
			
		||||
 | 
			
		||||
@@ -264,6 +263,7 @@ export default class MessagePanel extends React.Component<IProps, IState> {
 | 
			
		||||
            // display 'ghost' read markers that are animating away
 | 
			
		||||
            ghostReadMarkers: [],
 | 
			
		||||
            showTypingNotifications: SettingsStore.getValue("showTypingNotifications"),
 | 
			
		||||
            hideSender: this.shouldHideSender(),
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        // Cache hidden events setting on mount since Settings is expensive to
 | 
			
		||||
@@ -306,8 +306,14 @@ export default class MessagePanel extends React.Component<IProps, IState> {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private shouldHideSender(): boolean {
 | 
			
		||||
        return this.props.room?.getInvitedAndJoinedMemberCount() <= 2 && this.props.layout === Layout.Bubble;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private calculateRoomMembersCount = (): void => {
 | 
			
		||||
        this.membersCount = this.props.room?.getMembers().length || 0;
 | 
			
		||||
        this.setState({
 | 
			
		||||
            hideSender: this.shouldHideSender(),
 | 
			
		||||
        });
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    private onShowTypingNotificationsChange = (): void => {
 | 
			
		||||
@@ -794,7 +800,7 @@ export default class MessagePanel extends React.Component<IProps, IState> {
 | 
			
		||||
                    enableFlair={this.props.enableFlair}
 | 
			
		||||
                    showReadReceipts={this.props.showReadReceipts}
 | 
			
		||||
                    callEventGrouper={callEventGrouper}
 | 
			
		||||
                    hideSender={this.membersCount <= 2 && this.props.layout === Layout.Bubble}
 | 
			
		||||
                    hideSender={this.state.hideSender}
 | 
			
		||||
                    timelineRenderingType={this.context.timelineRenderingType}
 | 
			
		||||
                />
 | 
			
		||||
            </TileErrorBoundary>,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user