Commit graph

21265 commits

Author SHA1 Message Date
J. Ryan Stinnett
063e6e3e9c Fix a few types 2020-07-10 18:23:27 +01:00
J. Ryan Stinnett
353eae44f2 Merge remote-tracking branch 'origin/develop' into element 2020-07-10 18:14:21 +01:00
Travis Ralston
bdb641279a Merge branch 'develop' into travis/room-list/enable 2020-07-10 11:11:25 -06:00
David Baker
503159c1c8 Merge branch 'dbkr/in-app-rebrand-prompt' into 'element'
Add in-app rebranding toasts & prompts

See merge request new-vector/element/element-web/matrix-react-sdk!1
2020-07-10 17:09:17 +00:00
Travis Ralston
9e76a2cebf Handle off-cycle filtering updates in the new room list 2020-07-10 11:07:47 -06:00
Bruno Windels
b7ded18fde Merge branch 'element' of https://gitlab.matrix.org/new-vector/element/element-web/matrix-react-sdk into element 2020-07-10 19:05:46 +02:00
Bruno Windels
952200f031 Merge branch 'develop' into element 2020-07-10 19:04:45 +02:00
Travis Ralston
1175eb001f Fix bad merge 2020-07-10 11:01:11 -06:00
Travis Ralston
477472c178 Merge branch 'develop' into travis/room-list/showmore2 2020-07-10 10:57:17 -06:00
Bruno Windels
ae8d6f5523 make tsc happy 2020-07-10 18:48:54 +02:00
Bruno Windels
15ea3a5287 add types 2020-07-10 18:42:51 +02:00
Bruno Windels
85ac256231 cleanup 2020-07-10 18:40:09 +02:00
Bruno Windels
e2aa6ecf6b fix show X more counter 2020-07-10 18:40:09 +02:00
Bruno Windels
86817430c5 update initially shown amount of tiles on component update
as rooms aren't all available at ctor time
2020-07-10 18:40:09 +02:00
Bruno Windels
96f2968854 make all height changes update component state
also set visibleTiles as side-effect
2020-07-10 18:40:09 +02:00
Bruno Windels
652fb9e613 track height in pixels in component state 2020-07-10 18:40:09 +02:00
Travis Ralston
314250a6e4 Add a test mode flag to the store 2020-07-10 10:38:07 -06:00
Bruno Windels
49f7170d95 extract type 2020-07-10 18:31:53 +02:00
Bruno Windels
725b7f8950 make show more button a bit less tall 2020-07-10 18:30:52 +02:00
Bruno Windels
d5a3071518 put show more button inside resizer
this way we have a flexbox layout in the resizer with:
 - the resize handle (fixed)
 - the show more/less button, if any (fixed)
 - the list of tiles (grabbing whatever is left)
2020-07-10 18:29:39 +02:00
Travis Ralston
f8db0a4637 Resolve complex merge conflicts 2020-07-10 10:21:00 -06:00
Travis Ralston
bf0a503e44 [WITH CONFLICTS] Merge branch 'develop' into travis/room-list/enable 2020-07-10 10:18:12 -06:00
Travis Ralston
3a3bfb39ee Make the theme switcher switch between Element themes 2020-07-10 09:18:53 -06:00
J. Ryan Stinnett
28bbac8574 Merge remote-tracking branch 'origin/develop' into element 2020-07-10 16:03:11 +01:00
David Baker
8701e9293e Add in-app rebranding toasts & prompts
Either shows an informational dialog telling you the name has changed,
or a more naggy one if the user needs to log in on a different URL.
The new URL (if any) is hardcoded based on the current URL, and also
with a bonus config param in case other deployments need to do similar.
2020-07-10 15:32:34 +01:00
Travis Ralston
26427817f2 Fix potential listener conflict with RVS
If the RVS ever emits something that contains `trigger: false`, we're pretty screwed, so avoid that.
2020-07-10 08:18:40 -06:00
Travis Ralston
46d53e5c8c Reset before trigger just in case the function triggers too 2020-07-10 08:14:33 -06:00
Travis Ralston
a5ba0cad1f Rename to trigger and add docs 2020-07-10 08:13:23 -06:00
Travis Ralston
ef18cd5ca1 Merge branch 'develop' into travis/room-list/perf/dedupe-recalc 2020-07-10 07:18:12 -06:00
Travis Ralston
840a4127db
Merge pull request #4944 from matrix-org/travis/room-list/perf/log-disable
Add an option to disable room list logging, and improve logging
2020-07-10 07:16:56 -06:00
Bruno Windels
7880c10b21 Merge branch 'element' of https://gitlab.matrix.org/new-vector/element/element-web/matrix-react-sdk into element 2020-07-10 12:28:47 +02:00
Bruno Windels
6dc7a5631b make tag panel less wide 2020-07-10 12:27:48 +02:00
J. Ryan Stinnett
ab51dd28dc Merge remote-tracking branch 'origin/develop' into element 2020-07-10 11:08:33 +01:00
Bruno Windels
f2f813c43c make tag panel context menu icons follow text color 2020-07-10 10:20:26 +02:00
Travis Ralston
75dbd5f1d4 Merge branch 'develop' into travis/room-list/enable 2020-07-09 22:28:16 -06:00
Jorik Schellekens
60695838d6
Merge pull request #4927 from matrix-org/joriks/room-list-auto-expand-on-search
Auto expand room list on search
2020-07-10 02:45:13 +01:00
Jorik Schellekens
ceff68476d Remove useless dispatches 2020-07-10 02:25:47 +01:00
Jorik Schellekens
1983591cbf Remove unused actions 2020-07-10 02:22:34 +01:00
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
8624e8beeb Break up the event loop tasks for the room list
The room list does a hefty amount of work, so instead of blocking the event loop with a `/sync` request and a bunch of room updates (as we can get multiple per sync) we can instead run it over several smaller tasks. The smaller tasks help the event loop do other things between our tasks, ensuring we don't inadvertently block the UI from rendering too slowly.

On my account and machine, this cuts the time to render in half (~30ms, down from ~60ms) .
2020-07-09 15:11:21 -06:00
Travis Ralston
1315f34662 Dedupe room list store updates by marking for updates
The core of this is in the MarkedExecution class, with the remainder of the commit ensuring that the right marks and triggers are in place to do the firing.

Because everything is async/await and run through the RoomListStore, we don't have to worry about self-fed updates in the algorithm classes. This also means we have to trigger pretty much all the time. 

Changes to tag ordering / list sorting get hit through two paths, so we mark before we do a bulk update and otherwise assume the call is coming in from outside.
2020-07-09 14:53:14 -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
Travis Ralston
f8e1996e2f Handle NewRoom and PossibleTagChange updates correctly
For new rooms, we need to append to our list of known rooms. For tag changes, we need to be sure to update our cache when the tag can reasonably be assumed to have changed.

Fixes https://github.com/vector-im/riot-web/issues/14389
2020-07-09 12:08:40 -06:00
Travis Ralston
00fc34924c Fix rooms disappearing that were created by the user
Fixes https://github.com/vector-im/riot-web/issues/14388

We were receiving a read receipt before a room object, leading to the algorithm to assume the room is archived (no membership), which was causing later index issues when the room tried to get moved from archived to untagged.

To prevent this, we just ignore nonsensical updates.
2020-07-09 11:39:40 -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
096cd482f1 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into joriks/room-list-auto-expand-on-search 2020-07-09 18:22:26 +01:00
Bruno Windels
c2d4e45495 theme name translation 2020-07-09 19:19:19 +02:00
Travis Ralston
ae09bfb8fd Don't destroy room notification states when replacing them
The "should never happen" now happens a lot by design. We shouldn't destroy the state as it'll stop badge counts for everything.

Fixes https://github.com/vector-im/riot-web/issues/14391
2020-07-09 10:22:04 -06: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
d90fc57469 Merge branch 'develop' into element 2020-07-09 17:59:56 +02: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
Bruno Windels
0d53521e83 dark theme WIP 2020-07-09 14:48:15 +02: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
545f11d742 Convert devtools dialog to use new room state format 2020-07-08 22:23:51 -06: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
Travis Ralston
62b4596c04 Be consistent with other stores 2020-07-08 18:36:56 -06:00
Travis Ralston
c8f90be81d Ensure the map gets cleared upon logout 2020-07-08 18:32:12 -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
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
Jorik Schellekens
23754ae2bd i18n 2020-07-08 18:07:01 +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
Bruno Windels
7390baf451 Merge branch 'develop' into element 2020-07-08 18:09:38 +02: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
Bruno Windels
d5747ad6c0 Merge branch 'develop' into element 2020-07-08 18:07:45 +02: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
5ba64aa4e1 Back to defaul orientation 2020-07-08 17:03:08 +01:00
Bruno Windels
571bd30898 update call icons 2020-07-08 18:02:30 +02: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
b4f3b8ab11 Use the right variables when detecting max height 2020-07-08 07:53:55 -06:00
Travis Ralston
b2abe61fc5 clarify which NumberSize to use 2020-07-08 07:51:48 -06:00
Travis Ralston
9b0eeae2eb Clarify who is meant to use the polyfill 2020-07-08 07:51:04 -06:00
Bruno Windels
7dad56ca86 Merge branch 'develop' into element 2020-07-08 15:50:17 +02:00
Bruno Windels
269c30f8e8 Revert "also blur the sticky headers"
This reverts commit 82e0816d86.
2020-07-08 15:47:01 +02: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
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
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
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
Michael Telatynski
c5e8a0b5af Convert HtmlUtils to TypeScript
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-08 08:40:58 +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
Travis Ralston
8357461c9b Merge branch 'develop' into travis/room-list/enable 2020-07-07 16:20:38 -06:00
Jorik Schellekens
f4e05142db lint 2020-07-07 23:17:56 +01:00
Travis Ralston
774e32ecf0 Fix DM handling in new room list 2020-07-07 16:16:46 -06:00
Jorik Schellekens
b3f50b6e17 Enable options to favourite and low priority rooms 2020-07-07 23:14:04 +01:00
Travis Ralston
0b83926201 Merge branch 'develop' into travis/room-list/enable 2020-07-07 15:46:05 -06:00
Travis Ralston
f89fcd1fe9 Fix tests and add general safety
We don't need the fake clock anymore, but we do have to wait for async actions to complete before moving forward.

This also exposes a number of functions for the store to be puppetted with.
2020-07-07 15:45:59 -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
3e2ae2b30d
Merge pull request #4915 from matrix-org/travis/fix-setting-spam
Mute "Unknown room caused setting update" spam
2020-07-07 15:13:39 -06:00
Travis Ralston
a59a8b76a9 Update TODO comments to point to new issue 2020-07-07 14:51:43 -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
8ef4b1b2e7 Replace labs flag with a real setting 2020-07-07 13:56:46 -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
Travis Ralston
7963ed6d04 Mute "Unknown room caused setting update" spam
See comment enclosed within.

Fixes https://github.com/vector-im/riot-web/issues/14254
2020-07-07 13:42:15 -06: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
Michael Telatynski
853b280673 Fix MELS summary of 3pid invite revocations
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-07 18:30:57 +01: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
4edd3dfc6c Convert RovingTabIndex to Typescript
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-07 17:46:33 +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
Jorik Schellekens
e3dbda2abf Fix tests 2020-07-07 16:44:15 +01:00
Jorik Schellekens
dad3dce364
Merge branch 'develop' into joriks/room-list-voip 2020-07-07 15:45:45 +01:00
Jorik Schellekens
bc4167180c Lint whitespaces and semis 2020-07-07 15:40:05 +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
eb05c86e50 clean-up
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-07 15:32:20 +01:00
Michael Telatynski
8c2286a044 Move all the ContextMenu semantic helper (ARIA) components out to separate modules
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-07 15:24:46 +01:00
Jorik Schellekens
8458572032 lint 2020-07-07 15:18:10 +01:00
Jorik Schellekens
0d6e7759d0 Fix review details
- spelling mistake
- unwatch watched setting
- lint (indentation)
- use more performant component
2020-07-07 15:11:08 +01:00
Jorik Schellekens
527fe24cd6 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into joriks/room-list-voip 2020-07-07 15:04:22 +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
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
d04bcdfa15
Merge pull request #4907 from matrix-org/travis/room-list/raise
Decrease default visible rooms down to 5
2020-07-07 06:54:49 -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
7115c07c65 Merge branch 'develop' into element 2020-07-07 13:21:49 +02: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
Bruno Windels
1ef73958f3 change hide community icon in context menu 2020-07-07 12:16:31 +02:00
Bruno Windels
38ff58f8dd remove upload icon 2020-07-07 12:16:16 +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
Michael Telatynski
1259a8e1af Merge branch 'travis/room-list/room-safety' of github.com:matrix-org/matrix-react-sdk into t3chguy/room-list/12345 2020-07-07 10:27:09 +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
2c502ed2fe Decrease default visible rooms down to 5 2020-07-06 20:48:49 -06:00
Travis Ralston
29aeea2974 Fix i18n 2020-07-06 20:45:36 -06:00
Travis Ralston
56333ae017 Ensure the recents algorithm is aware of invites 2020-07-06 20:42:43 -06: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
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
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
Jorik Schellekens
5176685d20 Implement incoming call box 2020-07-06 23:05:00 +01:00
Travis Ralston
d14dd777b7 Revert "don't need to set width with javascript?"
This reverts commit a2cf641c0e.
2020-07-06 15:23:20 -06: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
f038dd52e6
Merge pull request #4903 from matrix-org/t3chguy/room-list/14353
null-guard against groups with a null name in new Room List
2020-07-06 22:01:41 +01:00
Michael Telatynski
60225154e6 delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 21:58:44 +01:00
Michael Telatynski
97d4295bf5
Merge pull request #4902 from matrix-org/t3chguy/room-list/14306
Allow vertical scrolling on the new room list breadcrumbs
2020-07-06 21:53:54 +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
Bruno Windels
7647072b05 remove prop instead of assigning unset 2020-07-06 14:36:07 -06:00
Bruno Windels
201f6ebe83 make stick headers jump in a bit later so the transition is less jumpy 2020-07-06 14:36:01 -06:00
Bruno Windels
a2cf641c0e don't need to set width with javascript? 2020-07-06 14:35:53 -06:00
Bruno Windels
61a5807fd1 only show topmost top sticky header 2020-07-06 14:35:46 -06:00
Michael Telatynski
c9bc318ca7 Allow vertical scrolling on the new room list breadcrumbs
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 21:32:46 +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
2c1eb07768
Merge pull request #4883 from matrix-org/t3chguy/ts123
Convert things to Typescript, including languageHandler
2020-07-06 18:54:19 +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
8acec1f417 delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 17:58:39 +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
2da1320d99 Type view_room_delta as ViewRoomDelta
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 17:57:40 +01:00
Michael Telatynski
6042e015e0 Remove unused dispatches view_indexed_room and view_prev_room
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 17:49:37 +01:00
Bruno Windels
8fd9dbf1d8 moar icon changes 2020-07-06 18:28:54 +02:00
Jorik Schellekens
1e0ff01d50 De labs font-scaling 2020-07-06 15:43:49 +01:00
David Baker
ac771f6a60 New copy on passphrase cancel dialog 2020-07-06 15:26:40 +01:00
Bruno Windels
3e5664de7b update user menu icons 2020-07-06 16:12:36 +02:00
David Baker
77377821ae Merge remote-tracking branch 'origin/develop' into dbkr/weird_cancel_dialog 2020-07-06 15:07:31 +01:00
Michael Telatynski
66ca095706 Fix double handling of native inputs wrapped for aria menus
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 10:41:35 +01:00
Michael Telatynski
823ada374d delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 10:30:06 +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
Bruno Windels
08c44333cf Update develop 2020-07-06 09:29:23 +02:00
Michael Telatynski
d366ca12a0 i18n
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 01:19:00 +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
b7c23b690c Include more classes for room list keyboard navigation
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 01:14:02 +01:00
Michael Telatynski
2d09ac9f88 Improve UserMenu label
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-06 01:01:40 +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
3cebfc8072 Fix StyledMenuItemCheckbox and StyledMenuItemRadio
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-05 19:31:24 +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
4f1cd82b66 i18n
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-05 01:24:22 +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
4c7014167d Improve a11y of default BaseAvatar
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-05 01:06:36 +01:00
Mike Pennisi
b5391f8ec8 "ignore"/"unignore" commands: validate user ID
Extend the accepted patterns so that users are alerted about invalid
input. These patterns are approximations of the Matrix user ID grammer.

Resolves https://github.com/vector-im/riot-web/issues/12743
2020-07-03 17:25:11 -04:00
Michael Telatynski
ae5ab4c394
Merge pull request #4893 from matrix-org/t3chguy/room-list/101
Radio button outline fixes including for new room list context menu
2020-07-03 20:35:17 +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
Michael Telatynski
c8bb6f5904 Improve radio outlines for message layout to be more consistent
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-03 19:48:22 +01:00
Michael Telatynski
5a542281ed Make Styled Radio Button outlines default-off
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-03 19:27:45 +01:00
Michael Telatynski
a475887c3e
Merge pull request #4891 from matrix-org/t3chguy/room-list/111
Fix theme selector clicks bubbling out and causing context menu to float away
2020-07-03 16:52:32 +01:00
Michael Telatynski
3f62f20a85 Fix theme selector bubbling out its click events and causing context menu to float away
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-03 16:29:48 +01:00
Travis Ralston
9c1efe728c
Revert "Remove a bunch of noisy logging from the room list" 2020-07-03 08:54:54 -06:00
Bruno Windels
52fdf92180 remove prop instead of assigning unset 2020-07-03 16:52:52 +02:00
Bruno Windels
8cd20eedeb make stick headers jump in a bit later so the transition is less jumpy 2020-07-03 16:52:28 +02:00
Bruno Windels
b370e3f078 don't need to set width with javascript? 2020-07-03 16:52:01 +02:00
Bruno Windels
82e0816d86 also blur the sticky headers
added a DOM element so we can set the background on the parent and
the blur on the new element
2020-07-03 16:50:01 +02:00
Michael Telatynski
c8a93e9dd7 clean-up
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-03 14:49:25 +01:00
Michael Telatynski
47ee00ec5d Make explore button at all accessible
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-03 14:43:02 +01:00
Michael Telatynski
9b0c711837 Make the UserMenu more accessible
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-03 14:34:43 +01:00
J. Ryan Stinnett
04142a8723 Remove duplicate compact settings, handle device level updates
This removes the duplicate setting for compact layout from the appearance tab,
and leaves the "advanced" one, matching the intention from Design.

This also adds the relevant handling to ensure the device-level setting triggers
an update immediately when changed.

Fixes https://github.com/vector-im/riot-web/issues/14304
2020-07-03 12:06:00 +01:00
Bruno Windels
eb5f6de25f only show topmost top sticky header 2020-07-03 12:17:54 +02: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
0854924b8d iterate some more
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-02 23:51:02 +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
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
Michael Telatynski
d725cc3389 convert MatrixClientContext to Typescript
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-02 23:39:27 +01:00
Michael Telatynski
96cfd26bd4 fix imports some more
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-02 23:32:21 +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
33612398be fix import
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-02 23:26:39 +01:00
Travis Ralston
ae076a7439 Add a null guard for message event previews 2020-07-02 16:23:38 -06:00
Michael Telatynski
f69a090d3d delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-02 23:22:36 +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
Michael Telatynski
48ce294a49 Transition languageHandler to Typescript
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-02 23:15:08 +01:00
Michael Telatynski
1ab0a1a1de First step towards a11y in the new room list
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-02 23:14:31 +01:00
Michael Telatynski
7322aaf602 Convert PlatformPeg to Typescript
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-02 22:42:28 +01:00
Michael Telatynski
97711032d8 Fix signature of sleep utility
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-02 22:38:21 +01:00