~cytrogen/masto-fe

05159d2f94b141a95afc6401e19d03b3d49e2c37 — Claire 2 years ago 8ef1a95
[Glitch] Fix clicking on already-loaded thread scrolling to the top of the thread

Port 4c2aca777f6ae6942d0cf11aee56a925694ccdef to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
1 files changed, 12 insertions(+), 3 deletions(-)

M app/javascript/flavours/glitch/features/status/index.jsx
M app/javascript/flavours/glitch/features/status/index.jsx => app/javascript/flavours/glitch/features/status/index.jsx +12 -3
@@ 217,6 217,7 @@ class Status extends ImmutablePureComponent {
  componentDidMount () {
    attachFullscreenListener(this.onFullScreenChange);
    this.props.dispatch(fetchStatus(this.props.params.statusId));
    this._scrollStatusIntoView();
  }

  static getDerivedStateFromProps(props, state) {


@@ 614,10 615,10 @@ class Status extends ImmutablePureComponent {
    this.column = 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);



@@ 634,6 635,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);
  }