Commit graph

11116 commits

Author SHA1 Message Date
Jorik Schellekens
8a7bebc6bf lint 2020-07-09 18:37:18 +01:00
Jorik Schellekens
ade89ab4e9 Move sublist auto expand to out from layouts
Co-authored-by: Travis Ralston <travpc@gmail.com>
2020-07-09 18:32:28 +01:00
Jorik Schellekens
9b79de7fe7 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into joriks/room-list-auto-expand-on-search 2020-07-09 17:14:52 +01:00
Jorik Schellekens
d94b6e2b36
Merge pull request #4937 from matrix-org/joriks/appearance-tab-irc-setting-in-advanced
Move irc layout option to advanced
2020-07-09 16:20:37 +01:00
Jorik Schellekens
1033eda7fb Move irc layout option to advanced 2020-07-09 15:54:44 +01:00
Bruno Windels
f58a0a7538
Merge pull request #4932 from matrix-org/travis/room-list/invisible-show-more
Potential solution to supporting transparent 'show more' buttons
2020-07-09 14:43:20 +00:00
Travis Ralston
bd8e1f7198
Merge pull request #4931 from matrix-org/travis/room-list/sticky-headers
Improve performance and stability in sticky headers for new room list
2020-07-09 08:00:56 -06:00
Travis Ralston
57b2ae9a0d Merge branch 'develop' into travis/room-list/perf/notifications 2020-07-09 07:46:01 -06:00
Travis Ralston
8aa2ed0c8b
Merge pull request #4934 from matrix-org/travis/room-list/perf/layout
Move list layout management to its own store
2020-07-09 07:44:44 -06:00
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
Travis Ralston
47380306c2 Move and improve notification state handling
Previously we were creating a notification state whenever we needed one, which was leading to hundreds of listeners even on a small account. To ease the burden, and reduce the load of having to wake so many listeners, we now record a single listener for each tag ID and room combination.

This commit also introduces a number of utilities to make future notification work a bit of an easier transition, such as the `isX` and `hasX` getters on the new NotificationState abstract class. Similarly, "snapshots" have been added to reduce code duplication between different kinds of states checking for updates.

The ListNotificationState is now heavily tied into the store which offers it to help reuse the cache of room notification states. 

Fixes https://github.com/vector-im/riot-web/issues/14370
2020-07-08 19:26:25 -06:00
Jorik Schellekens
2baa78d26b Move no-op to breadcrumb store 2020-07-09 01:31:44 +01:00
Travis Ralston
c5812d6c27 Move list layout management to its own store
This is more general maintenance than performance as the RoomList doesn't need to be generating layouts for the sublists, and it certainly doesn't need to be creating a bunch of extra ones. 

The sublists are perfectly capable of getting their own layout instance and using it, and we are perfectly able to limit the number of these things we create through the session's lifespan.
2020-07-08 18:28:21 -06:00
Jorik Schellekens
016710af6a Noop first breadcrumb 2020-07-09 00:44:23 +01:00
Michael Telatynski
ada68c4220
Merge pull request #4892 from jugglinmike/gh-13135-highlight-jump-to-bottom
Highlight "Jump to Bottom" badge when appropriate
2020-07-09 00:20:37 +01:00
Travis Ralston
8972cf9378 Potential solution to supporting transparent 'show more' buttons
In this demonstration, we remove the cutting line (as it collides with the tile in a weird spot) and instead replace the tile with a placeholder when the text is about to collide with the avatar in the tile. We use a `round()` for this because through some amazing coincidence the collision happens at 0.47, which is close enough to 0.5 for people not to notice.
2020-07-08 16:09:45 -06:00
Travis Ralston
74ca0618ac Improve scrolling performance for sticky headers
The layout updates are anecdotal based on devtools flagging the values which are "changing" even if they aren't.  The scrolling feels better with this as well, though this might be placebo.
2020-07-08 14:55:28 -06:00
Travis Ralston
f9aca7c05e Avoid bounding box usage in sticky headers & improve reliability
We now use offsets and scroll information to determine where the headers should be stuck to, still supporting the transparent background.

Some scroll jumps were originally introduced as part of the change in numbering, so they have been fixed here. By proxy, some additional scroll jump/instability should be fixed as well.

This has a lingering problem of still causing a huge number of no-op UI updates though, which will be dealt with in a future commit.
2020-07-08 14:37:35 -06:00
Travis Ralston
6e20850567 Remove sanity check from requestAnimationFrame
It should be in all major browsers as of years ago, and we use it unguarded elsewhere in the app. The performance benefits of it appear to be worthwhile enough to keep it, though it's not a perfect solution.
2020-07-08 12:17:51 -06:00
Michael Telatynski
3abf1586f9
Merge pull request #4930 from matrix-org/t3chguy/room-list/14380
Don't render the context menu within its trigger otherwise unhandled clicks bubble
2020-07-08 19:13:20 +01:00
Michael Telatynski
e2d65222a2 Don't render the context menu within its trigger otherwise unhandled clicks will re-trigger
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-08 18:59:27 +01:00
Jorik Schellekens
bb18e677f9 Lint semis 2020-07-08 18:05:07 +01:00
Jorik Schellekens
fe2bb355ab Hide archive button 2020-07-08 18:02:20 +01:00
Jorik Schellekens
8773d67df7 Auto expand room list on search 2020-07-08 17:28:15 +01:00
Travis Ralston
eb38d80bd5
Merge pull request #4920 from matrix-org/joriks/room-list-priorities
Enable options to favourite and low priority rooms
2020-07-08 10:08:02 -06:00
Travis Ralston
0368bff5b1
Merge pull request #4904 from matrix-org/joriks/room-list-voip
Move voip previews to bottom right corner
2020-07-08 10:07:42 -06:00
Jorik Schellekens
9dd28a9ce0 semi 2020-07-08 17:02:26 +01:00
Jorik Schellekens
4ae64aff9a lint line length 2020-07-08 16:14:04 +01:00
Jorik Schellekens
6ca7150533 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into
joriks/room-list-priorities
2020-07-08 16:08:55 +01:00
Jorik Schellekens
53bdddfcdd Fix discrepancies with style 2020-07-08 16:07:38 +01:00
Jorik Schellekens
fb6791e221
Merge pull request #4923 from matrix-org/joriks/room-list-focus-search
Focus room filter on openSearch
2020-07-08 15:20:08 +01: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
b2abe61fc5 clarify which NumberSize to use 2020-07-08 07:51:48 -06:00
Bruno Windels
989e4a9ceb
Merge pull request #4912 from matrix-org/bwindels/bettersticky
Add wrapper to room list so sticky headers don't need a background
2020-07-08 13:34:01 +00:00
Bruno Windels
a361ac3f83 make collapsing/expanding the first header work again 2020-07-08 15:11:47 +02:00
Bruno Windels
0d94cfa97a put sticky headers in padding of wrapper
this way they don't need a background, as the list is already clipped
2020-07-08 14:49:38 +02:00
Bruno Windels
75751abc60 add wrapper we can then add padding to when sticking headers 2020-07-08 14:49:04 +02:00
Michael Telatynski
5d23e4216e
Merge pull request #4908 from matrix-org/t3chguy/room-list/12345
New room list view_room show_room_tile support
2020-07-08 13:34:28 +01:00
Michael Telatynski
ec54d509e5 remove stale debug log
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-08 13:24:40 +01:00
Michael Telatynski
d7ad555c12
Merge pull request #4871 from matrix-org/t3chguy/room-list/3
Convert Context Menu to TypeScript
2020-07-08 13:24:10 +01:00
Michael Telatynski
64d7580494
Merge pull request #4913 from matrix-org/t3chguy/fix/14363
Fix MELS summary of 3pid invite revocations
2020-07-08 13:23:45 +01:00
Michael Telatynski
7b115056b0 Fix sticky headers being left on display:none if they change too quickly
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-08 09:21:33 +01:00
Michael Telatynski
faa9124f2b Merge branches 'develop' and 't3chguy/room-list/12345' of github.com:matrix-org/matrix-react-sdk into t3chguy/room-list/12345
 Conflicts:
	src/components/views/rooms/RoomTile2.tsx
2020-07-08 08:57:01 +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
Jorik Schellekens
8679d90703 lint semi 2020-07-08 00:27:29 +01:00
Jorik Schellekens
70c1bf3e5c Focus room filter on openSearch 2020-07-08 00:25:43 +01:00
Jorik Schellekens
f4e05142db lint 2020-07-07 23:17:56 +01:00
Jorik Schellekens
b3f50b6e17 Enable options to favourite and low priority rooms 2020-07-07 23:14:04 +01:00
Travis Ralston
baccabeae4 Remove extraneous true 2020-07-07 11:34:52 -06:00
Travis Ralston
e6b20088c0 Try using requestAnimationFrame if available for sticky headers
This might help performance, or it might not. Let's try it!
2020-07-07 11:33:32 -06:00