Fix clicking on already-loaded thread scrolling to the top of the thread (#27338)
This commit is contained in:
		
							parent
							
								
									6dcccd325f
								
							
						
					
					
						commit
						bcfc3b3f65
					
				
					 1 changed files with 13 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -220,6 +220,8 @@ class Status extends ImmutablePureComponent {
 | 
			
		|||
 | 
			
		||||
  componentDidMount () {
 | 
			
		||||
    attachFullscreenListener(this.onFullScreenChange);
 | 
			
		||||
 | 
			
		||||
    this._scrollStatusIntoView();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  UNSAFE_componentWillReceiveProps (nextProps) {
 | 
			
		||||
| 
						 | 
				
			
			@ -579,10 +581,10 @@ class Status extends ImmutablePureComponent {
 | 
			
		|||
    this.node = c;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  componentDidUpdate (prevProps) {
 | 
			
		||||
    const { status, ancestorsIds, multiColumn } = this.props;
 | 
			
		||||
  _scrollStatusIntoView () {
 | 
			
		||||
    const { status, multiColumn } = this.props;
 | 
			
		||||
 | 
			
		||||
    if (status && (ancestorsIds.size > prevProps.ancestorsIds.size || prevProps.status?.get('id') !== status.get('id'))) {
 | 
			
		||||
    if (status) {
 | 
			
		||||
      window.requestAnimationFrame(() => {
 | 
			
		||||
        this.node?.querySelector('.detailed-status__wrapper')?.scrollIntoView(true);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -599,6 +601,14 @@ class Status extends ImmutablePureComponent {
 | 
			
		|||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  componentDidUpdate (prevProps) {
 | 
			
		||||
    const { status, ancestorsIds } = this.props;
 | 
			
		||||
 | 
			
		||||
    if (status && (ancestorsIds.size > prevProps.ancestorsIds.size || prevProps.status?.get('id') !== status.get('id'))) {
 | 
			
		||||
      this._scrollStatusIntoView();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  componentWillUnmount () {
 | 
			
		||||
    detachFullscreenListener(this.onFullScreenChange);
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue