Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: jumpToMessage not working sometimes #4510

Merged
merged 1 commit into from
Jan 20, 2025

Conversation

WofWca
Copy link
Collaborator

@WofWca WofWca commented Jan 18, 2025

...when the chatId of the message is different
from the currently open chat.

Closes #4508.
This is probably related to the React upgrade,
which changed the behaviour of useEffect.

The issue was that we called window.__internal_jump_to_message
before MessageListStore has been reinstantiated,
so we'd call it on an old instance.

I think there might still be cases where this bug appears,
but at least this makes it appear less often.

...when the chatId of the message is different
from the currently open chat.

Closes #4508.
This is probably related to the React upgrade
(#3958),
which changed the behaviour of `useEffect`.

The issue was that we called `window.__internal_jump_to_message`
_before_ `MessageListStore` has been reinstantiated
after the change of chatId (in `useMessageList`),
so we'd call it on an old instance.

I think there might still be cases where this bug appears,
but at least this makes it appear less often.
@WofWca
Copy link
Collaborator Author

WofWca commented Jan 18, 2025

Test failure seems unrelated.

Copy link
Member

@nicodh nicodh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review by testing & reading

@WofWca WofWca merged commit 6a656f9 into main Jan 20, 2025
13 of 14 checks passed
@WofWca WofWca deleted the wofwca/fix-jumpToMessage-different-chat branch January 20, 2025 13:51
WofWca added a commit that referenced this pull request Jan 24, 2025
Follow-up to 6a656f9
(#4510).
Partially addresses #4508.
Why partially? Because the bug appears to still happen sometimes.
But this commit should make it more reliable, or at least be a refactor.

This should also improve performance in some cases,
thanks to the removal of `setTimeout()`.
WofWca added a commit that referenced this pull request Jan 24, 2025
Follow-up to 6a656f9
(#4510).
Partially addresses #4508.
Why partially? Because the bug appears to still happen sometimes.
But this commit should make it more reliable, or at least be a refactor.

This should also improve performance in some cases,
thanks to the removal of `setTimeout()`.
WofWca added a commit that referenced this pull request Jan 25, 2025
Follow-up to 6a656f9
(#4510).
Partially addresses #4508.
Why partially? Because the bug appears to still happen sometimes.
But this commit should make it more reliable, or at least be a refactor.

This should also improve performance in some cases,
thanks to the removal of `setTimeout()`.
WofWca added a commit that referenced this pull request Jan 25, 2025
Follow-up to 6a656f9
(#4510).
Partially addresses #4508.
Why partially? Because the bug appears to still happen sometimes.
But this commit should make it more reliable, or at least be a refactor.

This should also improve performance in some cases,
thanks to the removal of `setTimeout()`.
WofWca added a commit that referenced this pull request Jan 25, 2025
Follow-up to 6a656f9
(#4510).
Partially addresses #4508.
Why partially? Because the bug appears to still happen sometimes.
But this commit should make it more reliable, or at least be a refactor.

This should also improve performance in some cases,
thanks to the removal of `setTimeout()`.
WofWca added a commit that referenced this pull request Jan 25, 2025
Follow-up to 6a656f9
(#4510).
Partially addresses #4508.
Why partially? Because the bug appears to still happen sometimes.
But this commit should make it more reliable, or at least be a refactor.

This should also improve performance in some cases,
thanks to the removal of `setTimeout()`.
WofWca added a commit that referenced this pull request Jan 25, 2025
That is, when you jump to a message in a different chat
(e.g. by clicking on a notification, or from message search,
or from a "private reply" quote),
we would momentarily show the new chat scrolled to bottom
prior to jumping to the desired message.

Why this is bad:

- We mark the visible messages as read.
  In this case that would be the last messages in the chat.
  But they weren't actually read, the user did not intend
  to scroll to them.
- Extra layout shifting: not great visually.
- Bad for performance. Let's just load the part of the chat
  that we need right away.

Related:
- #4508
- #4510
- #4554
WofWca added a commit that referenced this pull request Jan 28, 2025
Follow-up to 6a656f9
(#4510).
Partially addresses #4508.
Why partially? Because the bug appears to still happen sometimes.
But this commit should make it more reliable, or at least be a refactor.

This should also improve performance in some cases,
thanks to the removal of `setTimeout()`.
WofWca added a commit that referenced this pull request Jan 29, 2025
Follow-up to 6a656f9
(#4510).
Partially addresses #4508.
Why partially? Because the bug appears to still happen sometimes.
But this commit should make it more reliable, or at least be a refactor.

This should also improve performance in some cases,
thanks to the removal of `setTimeout()`.
WofWca added a commit that referenced this pull request Jan 29, 2025
Follow-up to 6a656f9
(#4510).
Partially addresses #4508.
Why partially? Because the bug appears to still happen sometimes.
But this commit should make it more reliable, or at least be a refactor.

This should also improve performance in some cases,
thanks to the removal of `setTimeout()`.
WofWca added a commit that referenced this pull request Jan 31, 2025
That is, when you jump to a message in a different chat
(e.g. by clicking on a notification, or from message search,
or from a "private reply" quote),
we would momentarily show the new chat scrolled to bottom
prior to jumping to the desired message.

Why this is bad:

- We mark the visible messages as read.
  In this case that would be the last messages in the chat.
  But they weren't actually read, the user did not intend
  to scroll to them.
- Extra layout shifting: not great visually.
- Bad for performance. Let's just load the part of the chat
  that we need right away.

Related:
- #4508
- #4510
- #4554
WofWca added a commit that referenced this pull request Jan 31, 2025
That is, when you jump to a message in a different chat
(e.g. by clicking on a notification, or from message search,
or from a "private reply" quote),
we would momentarily show the new chat scrolled to bottom
prior to jumping to the desired message.

Why this is bad:

- We mark the visible messages as read.
  In this case that would be the last messages in the chat.
  But they weren't actually read, the user did not intend
  to scroll to them.
- Extra layout shifting: not great visually.
- Bad for performance. Let's just load the part of the chat
  that we need right away.

Related:
- #4508
- #4510
- #4554
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

jumpToMessage jumps to bottom instead of to message if message is in different chat
2 participants