fix(MessagesList) - performance, search fixes and minor refactoring#9897
fix(MessagesList) - performance, search fixes and minor refactoring#9897
Conversation
|
/backport to stable27 |
|
Converted to draft to solve #6046 and backport together, because of related changes (message focus) |
f9f2a85 to
c994ae6
Compare
e96978e to
87f1d23
Compare
87f1d23 to
c9c1fc9
Compare
ShGKme
left a comment
There was a problem hiding this comment.
Changes requested at least to search behavior changes.
This PR of solve-type-errors branch includes:
- 3 (probably 4) different bug fixes (without bugs' descriptions)
- 3 visual changes (although there is "🖼 Screenshots No visual changes" in the description)
- 1 UX change (search behavior)
- 1 performance update (according to the title)
- Refactorings
- And other minor changes
For me, it is hard to review and keep discussions about so many (sometimes not obvious and not small) changes in one PR. I'd prefer to have them in separated PRs in future.
Separating the changes also makes it easier to backport them to different stables when necessary.
|
JFYI: I canceled the backport request to 26. Also I'm very hesitant to backport this at all. |
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
c9c1fc9 to
c8d44a4
Compare
|
Rebased onto master, fixups are squashed into original commits to keep PR clean |
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
c8d44a4 to
7f765cc
Compare
ShGKme
left a comment
There was a problem hiding this comment.
Looks good from the code, but I haven't tested it yet after updates
ShGKme
left a comment
There was a problem hiding this comment.
Tested, looks like it works fine 😃
|
For future. Generate and send 1000 messages with text 1..1000 from the console const START = 1
const MESSAGES_PER_SECOND = 5
const END = 1000
let i = START
const input = document.querySelector('[contenteditable]')
const getSend = () => document.querySelector('[aria-label="Send message"]')
const id = setInterval(async () => {
input.innerHTML = i++;
input.dispatchEvent(new InputEvent('input'));
await Promise.resolve()
getSend().click()
if (i > END) {
clearInterval(id)
}
}, ~~(1000 / MESSAGES_PER_SECOND)) |
|
So, this PR should be backported as well to resolve conflicts (cc @nickvergessen): |
|
/backport to stable27 |
|
follow-up: although groups are now compared and updated softly during fetching, Message components inside are still re-rendered (probably some store mutations are causing it) |
☑️ Resolves
Splitted by commits:
🖼️ Screenshots: see #9897 (comment)
🖼️ Screenshots
🖼️ Screenshots
🚧 Tasks
🏁 Checklist
docs/has been updated or is not required