Commit graph

599 commits

Author SHA1 Message Date
Jorik Schellekens
ecc109c45d
Merge pull request #4933 from matrix-org/joriks/room-list-noop-first-breadcrumb
Noop first breadcrumb
2020-07-09 13:47:38 +01:00
Jorik Schellekens
2baa78d26b Move no-op to breadcrumb store 2020-07-09 01:31:44 +01:00
Travis Ralston
9b48130f4f Protect rooms from getting lost due to complex transitions
Fixes https://github.com/vector-im/riot-web/issues/14378

Rooms transitioning between multiple states are often at risk of going missing due to the sticky room handling. We now protect that transition by bluntly ensuring the room can't go missing, and by always ensuring we have an updated reference to the room.
2020-07-08 11:48:34 -06:00
Travis Ralston
3912f2d21c Merge remote-tracking branch 'origin/develop' into travis/room-list/resizable 2020-07-08 07:55:10 -06:00
Travis Ralston
b4f3b8ab11 Use the right variables when detecting max height 2020-07-08 07:53:55 -06:00
Michael Telatynski
5ef93686d9
Merge pull request #4925 from matrix-org/t3chguy/room-list/14352
Use html innerText for org.matrix.custom.html m.room.message room list previews
2020-07-08 13:23:58 +01:00
Michael Telatynski
8d5d3b1c92 Use html innerText for org.matrix.custom.html m.room.message room list previews
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-08 08:50:25 +01:00
Travis Ralston
15b6a273c9 Swap out the resizer lib for something more stable
react-resizer appears to be okay at tracking state, but it often desyncs from reality. re-resizer is more maintained and more broadly used (160k downloads vs 110k), and appears to generally do a better job of tracking the cursor.

The new library has some oddities though, such as deltas, touch support (hence the polyfill), and calling handles "Enable".

For https://github.com/vector-im/riot-web/issues/14022
2020-07-07 22:21:00 -06:00
Travis Ralston
774e32ecf0 Fix DM handling in new room list 2020-07-07 16:16:46 -06:00
Travis Ralston
85e018111b
Merge pull request #4918 from matrix-org/travis/room-list/respect-old-settings
Respect and fix understanding of legacy options in new room list
2020-07-07 15:19:56 -06:00
Travis Ralston
3dfb9711ed
Merge pull request #4916 from matrix-org/travis/room-list/dm-handle
Ensure DMs are not lost in the new room list, and clean up tag logging
2020-07-07 15:14:27 -06:00
Travis Ralston
a4ef5909f9 Respect and fix understanding of legacy options
Fixes https://github.com/vector-im/riot-web/issues/14372

We read/use the options in multiple places, and those places were not in sync. Now when algorithms change and on initial load, both will come to the same conclusions about how to order & sort the rooms.
2020-07-07 14:45:08 -06:00
Travis Ralston
34ea8342fb Remove comment claiming encrypted rooms are handled incorrectly
Fixes https://github.com/vector-im/riot-web/issues/14238

The encrypted rooms are loaded on startup (eventually), so we don't need to worry about the problem described.
2020-07-07 13:49:36 -06:00
Travis Ralston
2488520263 Clean up tag logging in setKnownRooms
We don't need this anymore
2020-07-07 13:46:29 -06:00
Travis Ralston
be1b2fddaf Ensure DMs are not lost in the new room list
Fixes https://github.com/vector-im/riot-web/issues/14236
2020-07-07 13:46:10 -06:00
Michael Telatynski
8ba2be0be5
Merge pull request #4900 from matrix-org/t3chguy/room-list/1234
New Room List implement view_room_delta for keyboard shortcuts
2020-07-07 15:36:30 +01:00
Travis Ralston
7173ea71a5
Merge pull request #4905 from matrix-org/travis/room-list/room-safety
Improve room safety in the new room list
2020-07-07 06:59:59 -06:00
Travis Ralston
b3b404f121
Merge pull request #4906 from matrix-org/travis/room-list/invites-list
Fix a number of issues with the new room list's invites
2020-07-07 06:55:30 -06:00
Travis Ralston
2c502ed2fe Decrease default visible rooms down to 5 2020-07-06 20:48:49 -06:00
Travis Ralston
56333ae017 Ensure the recents algorithm is aware of invites 2020-07-06 20:42:43 -06:00
Travis Ralston
8739e2f781 Fix room duplication when the sticky room reference changes 2020-07-06 20:12:25 -06:00
Travis Ralston
34bd59c151 Remove the lock around the algorithm
This isn't needed
2020-07-06 19:38:13 -06:00
Travis Ralston
70e5da677b Clean up debug logging 2020-07-06 19:38:13 -06:00
Travis Ralston
dd833f4f2f Ensure the sticky room changes if the tag changes
This fixes a case where a user accepts an invite, which causes a tag change, but the room stays stuck in the invites list. The tag change additionally gets swallowed when the user moves away, causing the room to get lost. 

By moving it when we see it, potentially during a sticky room change itself (though extremely rare), we avoid having the room get lost in the wrong lists. A side effect of this is that accepting an invite puts it at the top of the tag it's going to (usually untagged), however this feels like the best option for the user.

A rare case of a tag change happening during a sticky room change is when a leave event comes in for the sticky room, but because it's come through as a tag change it can get swallowed. If it does get swallowed and the user clicks away, the tag change will happen when the room is re-introduced to the list (fake NewRoom event).
2020-07-06 19:38:13 -06:00
Travis Ralston
4345f972e0 Handle sticky room to avoid accidental removal
Plus a bunch of logging.

This fixes a case where switching rooms would cause the last room you were on to disappear due to an optimization where known NewRoom fires would be translated to tag change fires, which wouldn't re-add the room to the underlying tag algorithm.

By tracking the last sticky room, we can identify when we're about to do this and avoid it. 

This commit also adds a check to ensure that we have the latest reference of a room stored as rooms changing from invite -> join change references.

This commit additionally updates the PossibleTagChange handling to be faster and smarter, leading to a more stable generation of the room list. We convert the update cause to a Timeline update in order to indicate it is a change within the same tag rather than having to jump tags. This also means that PossibleTagChange should no longer make it as far as the underlying algorithm.

New logging has also been added to aid debugging.
2020-07-06 19:38:13 -06:00
Travis Ralston
18df29b627 Flag & add some debugging 2020-07-06 19:38:13 -06:00
Travis Ralston
0b6f744a58 Wrap handleRoomUpdate in a lock
Dev note: this is removed in a later commit
2020-07-06 19:38:13 -06:00
Michael Telatynski
1849ed90d2 Implement ViewRoomDelta for the new Room List
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 17:58:29 +01:00
Travis Ralston
9c1efe728c
Revert "Remove a bunch of noisy logging from the room list" 2020-07-03 08:54:54 -06:00
Travis Ralston
98ce1dafee Remove a bunch of noisy logging from the room list
None of these logs are actually needed for troubleshooting anymore.
2020-07-02 16:39:36 -06:00
Travis Ralston
ae076a7439 Add a null guard for message event previews 2020-07-02 16:23:38 -06:00
Travis Ralston
a6e0799b57 Handle push rule changes in the RoomNotificationState 2020-07-02 15:05:01 -06:00
Travis Ralston
a5001e50aa Disable all unread decorations on muted rooms 2020-07-02 13:33:24 -06:00
Travis Ralston
b54635863f Merge branch 'develop' into travis/room-list/notification-state 2020-07-02 13:26:16 -06:00
Travis Ralston
b65972d44f Fix indentation 2020-07-02 13:23:20 -06:00
Travis Ralston
43db4b98df Merge branch 'develop' into joriks/room-list-breadcrumbs 2020-07-02 13:22:51 -06:00
Travis Ralston
b7aa8203b6 Wedge community invites into the new room list
Fixes https://github.com/vector-im/riot-web/issues/14179

Disclaimer: this is all of the horrible because it's not meant to be here. Invites in general are likely to move out of the room list, which means this is temporary. Additionally, the communities rework will take care of this more correctly. For now, we support the absolute bare minimum to have them shown.
2020-07-02 09:04:38 -06:00
Jorik Schellekens
1c0d46b6e1 Make breadcrumbs respsect setting 2020-07-02 15:26:51 +01:00
Travis Ralston
51ce80f333 Merge branch 'develop' into travis/room-list/notification-state 2020-07-01 12:01:07 -06:00
Travis Ralston
2cd6fae2ce
Merge pull request #4865 from matrix-org/travis/room-list/default-vis
Improve resizing interactions in the new room list
2020-07-01 11:59:54 -06:00
Jorik Schellekens
d203943b7f lint semis 2020-07-01 16:07:27 +01:00
Jorik Schellekens
2162517a37 Display breadcrumbs only after 20 rooms have been joined 2020-07-01 16:05:27 +01:00
Travis Ralston
fed0c327d5
Merge pull request #4866 from matrix-org/travis/room-list/rm-ordering-options
Disable use of account-level ordering options in new room list
2020-07-01 07:25:04 -06:00
Travis Ralston
5a43acd42a Fix reaction event crashes in message previews
Fixes https://github.com/vector-im/riot-web/issues/14224
2020-06-30 19:51:28 -06:00
Travis Ralston
d402808101 Disable use of account-level ordering options in new room list
Fixes https://github.com/vector-im/riot-web/issues/14069

We can't drop them completely for compatibility with the old room list.
2020-06-30 19:31:59 -06:00
Travis Ralston
8cfbfd4221 Increase RESIZER_BOX_FACTOR to account for overlap from handle
Fixes https://github.com/vector-im/riot-web/issues/14136

The resizer handle wasn't being considered in this. 78% is both verified through mathematics and playing with it manually.
2020-06-30 19:20:11 -06:00
Travis Ralston
7674030c6e Show 'show more' when there are less tiles than the default
For example, if you only have 3/10 rooms required for the default then resize smaller, we should have a 'show more' button.

This works by changing the rendering to be slightly more efficient and only looping over what is seen (renderVisibleTiles(), using this.numTiles in place of tiles.length) and using a new setVisibleTilesWithin() function on the layout. Previously resizing the 3/10 case would be setting visibleTiles to ~8 instead of ~1 like it should (because the getter returns a default).
2020-06-30 19:14:36 -06:00
Travis Ralston
8cfe12b817 Add a layout reset function
For https://github.com/vector-im/riot-web/issues/14265

Intended to be accessed via `mx_RoomListStore2.resetLayout()`
2020-06-30 18:52:44 -06:00
Travis Ralston
f935303eeb Change default number of rooms visible to 10
Fixes https://github.com/vector-im/riot-web/issues/14266
2020-06-30 18:51:59 -06:00
Jorik Schellekens
0904ae8c7a Bug fixes 2020-06-30 23:35:59 +01:00