It is possible for your read marker to be set to an event without a tile (like a
reaction). We would still render the read marker at the position of those events
in the timeline, even though there's no matching tile, which breaks a core
assumption of jump to read marker path: it assumes that if the read marker node
is present in the DOM, then there must also be an event tile with a scroll token
matching the event ID.
This fixes the situation by setting a scroll token on the read marker so it can
always be scrolled to, no matter what kind of event it might represent.
Fixesvector-im/riot-web#10975
- removed superfluous position and classes
- fixed compact view
- fixed event list summary avatar and text overlap
- fixed a problem where the mention list refuses to load.
The recent "groupers" which extracted out timeline grouping logic forgot to
pass through the last event state for read marker computation. This causes the
read marker to become visible when e.g. returning to room if it was last placed
inside a grouped set of events (currently room creation and membership events).
Regressed by https://github.com/matrix-org/matrix-react-sdk/pull/4059
Related to https://github.com/vector-im/riot-web/issues/12338
We already drop noop membership changes when they don't make it into a MELS, so we just need to make the MELS aware enough to drop messages early that are noops.
Fixes https://github.com/vector-im/riot-web/issues/12575
Fixes https://github.com/vector-im/riot-web/issues/12423
When events are redacted they fail to make it into the Grouper because the `shouldAddEvent` check blocks them from entering. However, the grouper expects that when `getTiles()` is called that there's events to group and dutifully grabs some context from the array. Because JavaScript is the least helpful language, `myArray[-1]` returns `undefined` or `null` and thus you get `cannot read 'sender' of undefined`.
Regressed in https://github.com/matrix-org/matrix-react-sdk/pull/4059