Fix timeline jumps (#10001)
* Avoid two-step rendering of statuses as much as possible Cache width shared by Video player, MediaGallery and Cards at the ScrollableList level, pass it down through StatusList and Notifications. * Adjust scroll when new preview cards appear * Adjust scroll when statuses above the current scroll position are deleted
This commit is contained in:
		@@ -35,6 +35,10 @@ class Notification extends ImmutablePureComponent {
 | 
			
		||||
    onToggleHidden: PropTypes.func.isRequired,
 | 
			
		||||
    status: PropTypes.option,
 | 
			
		||||
    intl: PropTypes.object.isRequired,
 | 
			
		||||
    getScrollPosition: PropTypes.func,
 | 
			
		||||
    updateScrollBottom: PropTypes.func,
 | 
			
		||||
    cacheMediaWidth: PropTypes.func,
 | 
			
		||||
    cachedMediaWidth: PropTypes.number,
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  handleMoveUp = () => {
 | 
			
		||||
@@ -129,6 +133,10 @@ class Notification extends ImmutablePureComponent {
 | 
			
		||||
        onMoveDown={this.handleMoveDown}
 | 
			
		||||
        onMoveUp={this.handleMoveUp}
 | 
			
		||||
        contextType='notifications'
 | 
			
		||||
        getScrollPosition={this.props.getScrollPosition}
 | 
			
		||||
        updateScrollBottom={this.props.updateScrollBottom}
 | 
			
		||||
        cachedMediaWidth={this.props.cachedMediaWidth}
 | 
			
		||||
        cacheMediaWidth={this.props.cacheMediaWidth}
 | 
			
		||||
      />
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
@@ -149,7 +157,17 @@ class Notification extends ImmutablePureComponent {
 | 
			
		||||
            </span>
 | 
			
		||||
          </div>
 | 
			
		||||
 | 
			
		||||
          <StatusContainer id={notification.get('status')} account={notification.get('account')} muted withDismiss hidden={!!this.props.hidden} />
 | 
			
		||||
          <StatusContainer
 | 
			
		||||
            id={notification.get('status')}
 | 
			
		||||
            account={notification.get('account')}
 | 
			
		||||
            muted
 | 
			
		||||
            withDismiss
 | 
			
		||||
            hidden={!!this.props.hidden}
 | 
			
		||||
            getScrollPosition={this.props.getScrollPosition}
 | 
			
		||||
            updateScrollBottom={this.props.updateScrollBottom}
 | 
			
		||||
            cachedMediaWidth={this.props.cachedMediaWidth}
 | 
			
		||||
            cacheMediaWidth={this.props.cacheMediaWidth}
 | 
			
		||||
          />
 | 
			
		||||
        </div>
 | 
			
		||||
      </HotKeys>
 | 
			
		||||
    );
 | 
			
		||||
@@ -171,7 +189,17 @@ class Notification extends ImmutablePureComponent {
 | 
			
		||||
            </span>
 | 
			
		||||
          </div>
 | 
			
		||||
 | 
			
		||||
          <StatusContainer id={notification.get('status')} account={notification.get('account')} muted withDismiss hidden={this.props.hidden} />
 | 
			
		||||
          <StatusContainer
 | 
			
		||||
            id={notification.get('status')}
 | 
			
		||||
            account={notification.get('account')}
 | 
			
		||||
            muted
 | 
			
		||||
            withDismiss
 | 
			
		||||
            hidden={this.props.hidden}
 | 
			
		||||
            getScrollPosition={this.props.getScrollPosition}
 | 
			
		||||
            updateScrollBottom={this.props.updateScrollBottom}
 | 
			
		||||
            cachedMediaWidth={this.props.cachedMediaWidth}
 | 
			
		||||
            cacheMediaWidth={this.props.cacheMediaWidth}
 | 
			
		||||
          />
 | 
			
		||||
        </div>
 | 
			
		||||
      </HotKeys>
 | 
			
		||||
    );
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user