~cytrogen/masto-fe

c310374a2f83a890520ace50e41c1e3d046e15e1 — Claire 2 years ago 89b4868
Fix clicking on already-opened thread post scrolling to the top of the thread (#27331)

1 files changed, 17 insertions(+), 1 deletions(-)

M app/javascript/mastodon/features/status/index.jsx
M app/javascript/mastodon/features/status/index.jsx => app/javascript/mastodon/features/status/index.jsx +17 -1
@@ 607,6 607,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, ancestorsIds, descendantsIds, intl, domain, multiColumn, pictureInPicture } = this.props;


@@ 660,7 676,7 @@ class Status extends ImmutablePureComponent {
          )}
        />

        <ScrollContainer scrollKey='thread'>
        <ScrollContainer scrollKey='thread' shouldUpdateScroll={this.shouldUpdateScroll}>
          <div className={classNames('scrollable', { fullscreen })} ref={this.setRef}>
            {ancestors}