|
|
|
@ -642,6 +642,22 @@ class Status extends ImmutablePureComponent { |
|
|
|
|
this.setState({ fullscreen: isFullscreen() }); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
shouldUpdateScroll = (prevRouterProps, { location }) => { |
|
|
|
|
// Do not change scroll when opening a modal |
|
|
|
|
if (location.state?.mastodonModalKey && location.state?.mastodonModalKey !== prevRouterProps?.location?.state?.mastodonModalKey) { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Scroll to focused post if it is loaded |
|
|
|
|
const child = this.node?.querySelector('.detailed-status__wrapper'); |
|
|
|
|
if (child) { |
|
|
|
|
return [0, child.offsetTop]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Do not scroll otherwise, `componentDidUpdate` will take care of that |
|
|
|
|
return false; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
render () { |
|
|
|
|
let ancestors, descendants; |
|
|
|
|
const { isLoading, status, settings, ancestorsIds, descendantsIds, intl, domain, multiColumn, pictureInPicture } = this.props; |
|
|
|
@ -701,7 +717,7 @@ class Status extends ImmutablePureComponent { |
|
|
|
|
)} |
|
|
|
|
/> |
|
|
|
|
|
|
|
|
|
<ScrollContainer scrollKey='thread'> |
|
|
|
|
<ScrollContainer scrollKey='thread' shouldUpdateScroll={this.shouldUpdateScroll}> |
|
|
|
|
<div className={classNames('scrollable', { fullscreen })} ref={this.setRef}> |
|
|
|
|
{ancestors} |
|
|
|
|
|
|
|
|
|