element-hq / element-meta

Shared/meta documentation and project artefacts for Element clients
65 stars 11 forks source link

Hide pre-join UTDs, rather than showing an error #2449

Open richvdh opened 1 week ago

richvdh commented 1 week ago

Our first pass on fixing "pre-join UTDs" (https://github.com/element-hq/element-meta/issues/2317) focussed on identifying such events, and changed the message shown on screen for such error cases.

For example:

image

However, this remains an unsatisfactory user experience. It would be better to hide such events altogether.

richvdh commented 1 week ago

The primary difficulty with this is that, if we just hide the events (or, equivalently, collapse them into a group, EventListSummmary-style), the client will see that we have a bunch of empty space and attempt to backpaginate ... forever, until the start of the room.

It might be that we can apply a heuristic - once we've seen 1000 pre-join UTDs in a row, we stop back-paginating - but we need to be careful not to re-introduce https://github.com/element-hq/element-web/issues/22671.

In particular, the danger is:

ara4n commented 1 week ago

I would have thought this is the same problem as how to handle backpagination in a room with lots of invisible messages (e.g. LLS beacon updates) - so we need to solve it whatever.

My suggestion would be that it tries to backpaginate in N messages (where N=100 or so) and gives up if they're all invisible... but then if the user explicitly overscrolls, it shows a spinner and does another 100. and so the user would have to keep manually overscrolling to get back into visible content.