Commit graph

3441 commits

Author SHA1 Message Date
Travis Ralston
cf154ec9cf Add an option to disable room list logging, and improve logging
For https://github.com/vector-im/riot-web/issues/14035

**This option is not recommended as it completely obliterates all chances of being able to support someone with a broken room list. It is intended for specific testing scenarios only.**
2020-07-09 18:19:38 -06:00
Travis Ralston
859f65659c Attempt to support a hard cutoff with the show more button
Known issues:
* Causes scroll jumps when the button gets added to DOM
* Resize handle is invisible when there's a show more button

TODO:
* Clean up comments
* Clean up useless code (all the padding stuff isn't needed)
2020-07-09 13:07:13 -06:00
Bruno Windels
ce68314de9 Revert "Merge pull request #4932 from matrix-org/travis/room-list/invisible-show-more"
This reverts commit f58a0a7538.
2020-07-09 12:13:12 -06:00
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
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
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
Jorik Schellekens
8773d67df7 Auto expand room list on search 2020-07-08 17:28:15 +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
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
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
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
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
a59a8b76a9 Update TODO comments to point to new issue 2020-07-07 14:51:43 -06:00
Michael Telatynski
28310cb648 remove TODOs
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-07 17:48:39 +01:00
Michael Telatynski
a33717a475 Wire up Room sublist show more/less as roving tabindex button using new helper
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-07 17:47:21 +01:00
Michael Telatynski
f18db23cc4 Remove some TODOs
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-07 17:18:56 +01:00
Michael Telatynski
986d56ffdc 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/RoomSublist2.tsx
	src/components/views/rooms/RoomTile2.tsx
2020-07-07 17:11:04 +01:00
Michael Telatynski
92e86af162 Show more/Show less keep focus in a relevant place
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-07 17:07:51 +01: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
Michael Telatynski
afac330143 Merge branches 'develop' and 't3chguy/room-list/3' of github.com:matrix-org/matrix-react-sdk into t3chguy/room-list/3
 Conflicts:
	src/components/structures/ContextMenu.tsx
	src/components/structures/UserMenu.tsx
	src/components/views/rooms/RoomSublist2.tsx
	src/components/views/rooms/RoomTile2.tsx
2020-07-07 15:01:27 +01:00
Michael Telatynski
69852ecef4 Merge branches 'develop' and 't3chguy/room-list/123' of github.com:matrix-org/matrix-react-sdk into t3chguy/room-list/123
 Conflicts:
	src/components/views/rooms/RoomSublist2.tsx
2020-07-07 14:10:58 +01:00
Michael Telatynski
44ae83f228 Move the Volume union type out to a throwaway
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-07 14:07:35 +01: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
1b48b99f99 Append community invites to bottom instead 2020-07-07 06:53:17 -06:00
Travis Ralston
994d8708f2 Move to a fragment 2020-07-07 06:52:44 -06:00
Bruno Windels
2ca9044171 swap order of context menu buttons so it does not jump when muted 2020-07-07 12:46:33 +02:00
Michael Telatynski
19e1c79796 update comment
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-07 10:35:16 +01:00
Michael Telatynski
63ec793fad Support view_room's show_room_tile in the new room list
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-07 10:34:42 +01:00
Mike Pennisi
d237d02c03 Highlight "Jump to Bottom" badge when appropriate
This resolves https://github.com/vector-im/riot-web/issues/13135

Signed-off-by: Mike Pennisi <mike@mikepennisi.com>
2020-07-06 23:09:54 -04:00
Travis Ralston
3284cc730e Show ordering options on invites
Fixes https://github.com/vector-im/riot-web/issues/14309
2020-07-06 20:42:43 -06:00
Travis Ralston
f103fd1ccf Make community invites appear even if there's no room invites
Fixes https://github.com/vector-im/riot-web/issues/14358
2020-07-06 20:32:37 -06:00
Travis Ralston
b28a267669 Remove old community invite placeholder handling
We ended up shoving it into the invite list, so don't render it here.
2020-07-06 20:32:09 -06:00
Michael Telatynski
6bc39547c7 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/room-list/12345 2020-07-07 00:10:06 +01:00
Michael Telatynski
3094bb32ec
Merge pull request #4901 from matrix-org/t3chguy/room-list/112
Fix some room list sticky header instabilities
2020-07-06 22:21:02 +01:00
Michael Telatynski
abfbcf4090 use uglier style for props but be consistent :'(
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 22:04:30 +01:00
Michael Telatynski
60225154e6 delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 21:58:44 +01:00
Michael Telatynski
f6aa6208ee null-guard against groups with a null name :((
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 21:53:20 +01:00
Michael Telatynski
8233dec72e Fix some room list sticky header instabilities
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 21:05:06 +01:00
Michael Telatynski
18064c19a3 add TODO
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 18:13:11 +01: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
Michael Telatynski
6cb0ac6a50 Fix checkboxes/radios in context menus should only close on ENTER, not SPACE
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 10:18:49 +01:00
Michael Telatynski
87a7a8a02b Add TODOs
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 01:15:53 +01:00
Michael Telatynski
7c29a53ebd aria-hide the notifications badge on room tiles as we have manual labels here
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-05 19:59:29 +01:00
Michael Telatynski
a68e23c9e0 Make message previews accessible via describedby
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-05 19:38:45 +01:00
Michael Telatynski
069cdf3ce0 Fix room list v2 context menus to be aria menus
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-05 18:23:57 +01:00
Michael Telatynski
1620feb55e Sprinkle in some better ARIA props
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-05 01:07:46 +01:00
Michael Telatynski
599cc9c9ed
Merge pull request #4882 from matrix-org/t3chguy/room-list/6
First step towards a11y in the new room list
2020-07-03 20:17:33 +01:00
Travis Ralston
26ce801ef1
Merge pull request #4887 from matrix-org/t3chguy/room-lists/99
fix notifications icons some more
2020-07-02 17:16:45 -06:00
Michael Telatynski
22ac7e6def fix notifications icons some more
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-03 00:14:51 +01:00
Michael Telatynski
9cf162e267 Merge branches 'develop' and 't3chguy/room-list/6' of github.com:matrix-org/matrix-react-sdk into t3chguy/room-list/6
 Conflicts:
	src/components/views/rooms/RoomSublist2.tsx
	src/components/views/rooms/RoomTile2.tsx
2020-07-03 00:02:37 +01:00
Michael Telatynski
404009c8cb Merge branches 'develop' and 't3chguy/room-list/3' of github.com:matrix-org/matrix-react-sdk into t3chguy/room-list/3
 Conflicts:
	src/components/structures/ContextMenu.tsx
	src/components/views/rooms/RoomSublist2.tsx
2020-07-02 23:46:12 +01:00
Michael Telatynski
08392d53f0
Merge pull request #4884 from matrix-org/t3chguy/room-lists/99
Fix bell icon mismatch on room tile between hover and context menu
2020-07-02 23:31:48 +01:00
Michael Telatynski
5c5482a8ae I've got 99 problems and this badge mismatch is no longer one
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-02 23:20:16 +01:00
Travis Ralston
cc23f23f19
Merge pull request #4881 from matrix-org/travis/room-list/enable-default
Enable the new room list by default and trigger an initial render
2020-07-02 15:28:36 -06:00
Michael Telatynski
289f40ce29 First step towards a11y in the new room list
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-02 22:21:10 +01:00
Travis Ralston
df05273225 Merge remote-tracking branch 'origin/joriks/room-list-tooltips' into develop 2020-07-02 15:20:27 -06:00
Travis Ralston
1df092d79b
Merge pull request #4879 from matrix-org/travis/room-list/context-menu-fixes
Fix selection states of room tiles in the new room list
2020-07-02 15:18:19 -06:00
Travis Ralston
ea787ad430
Merge pull request #4876 from matrix-org/travis/room-list/notif-dropdown
Update mute icon behaviour for new room list designs
2020-07-02 15:15:56 -06:00
Travis Ralston
3847dc91c0 Move the stoppage to somewhere more generic 2020-07-02 15:15:33 -06:00
Travis Ralston
547690374e Wrap event stoppage in null checks
Some of the code paths (particularly onFinished) do not have events, but the code paths we care about to prevent the room selection do have events - we can stop those without stopping further menus.
2020-07-02 14:53:21 -06:00
Travis Ralston
0549ef83db
Merge pull request #4878 from matrix-org/travis/room-list/fix-community-invites
Fix alignment of avatars on community invites
2020-07-02 14:39:25 -06:00
Travis Ralston
1b782ce5f2 Enable the new room list by default and trigger an initial render
We have to trigger an initial render because during the login process the user will have started syncing (causing lists to generate) but the RoomList component won't be mounted & listening and therefore won't receive the initial lists. By generating them on mount, we ensure that the lists are present once the user gets through the login process.
2020-07-02 14:27:36 -06:00
Travis Ralston
0d9ce0721f Don't include empty badge container in minimized view
Fixes https://github.com/vector-im/riot-web/issues/14294

It takes up space, and it won't hold anything anyways.
2020-07-02 14:11:31 -06:00
Travis Ralston
e08512020f Fix a couple badge alignment issues with community invites 2020-07-02 14:05:31 -06:00
Travis Ralston
aa702514ce Don't try and show context menus if we don't have one
Fixes https://github.com/vector-im/riot-web/issues/14295
2020-07-02 13:59:28 -06:00
Travis Ralston
e51f9d2492 Fix closing the context menu causing the tile to be selected
Fixes https://github.com/vector-im/riot-web/issues/14293
2020-07-02 13:53:38 -06:00
Travis Ralston
349c3f7090 Only show mute notification icon on rooms, not all notif icons 2020-07-02 13:33:06 -06:00
Travis Ralston
45f4a2a980 Fix imports for NotificationStates 2020-07-02 13:28:06 -06:00
Travis Ralston
b54635863f Merge branch 'develop' into travis/room-list/notification-state 2020-07-02 13:26:16 -06:00
Travis Ralston
43db4b98df Merge branch 'develop' into joriks/room-list-breadcrumbs 2020-07-02 13:22:51 -06:00
Michael Telatynski
4a03b464d6
Merge pull request #4875 from matrix-org/t3chguy/room-list/4
Add click-to-jump on badge in the room sublist header
2020-07-02 20:04:43 +01:00
Michael Telatynski
ae2a6ebc07 improve comments
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-02 19:56:41 +01:00
Michael Telatynski
a658612078 Add click-to-jump on badge in the room sublist header
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-02 19:48:06 +01:00
Michael Telatynski
c4bbdefa8d
Merge pull request #4870 from matrix-org/t3chguy/room-list/2
Room List v2 context menu interactions
2020-07-02 18:02:21 +01:00
Travis Ralston
32642d592c Add a key 2020-07-02 09:27:42 -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
Michael Telatynski
07e0a017e7 fix types
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-01 23:56:57 +01:00
Michael Telatynski
e8702aafa5 delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-01 23:09:02 +01:00
Michael Telatynski
5c2b291510 Support right click context menu interactions on Room List 2
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-01 23:06:26 +01:00
Michael Telatynski
28e430060c
Merge pull request #4858 from matrix-org/t3chguy/room-list/2
Room Tile context menu, notifications, indicator and placement
2020-07-01 19:20:09 +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