Commit graph

422 commits

Author SHA1 Message Date
Travis Ralston
ecf8090b75 Handle DMs 2020-05-14 12:44:49 -06:00
Travis Ralston
d244eeb5d5 Break up algorithms and use the new layering
Sorting and ordering has now been split apart. The ImportanceAlgorithm also finally makes use of the sorting.

So far metrics look okay at 3ms for a simple account, though this could potentially get worse due to the multiple loops involved (one for tags, one for categories, one for ordering). We might be able to feed a whole list of rooms into the thing and have it regenerate the lists on demand.
2020-05-14 12:44:49 -06:00
Travis Ralston
e7fffee175 Remove the need for a tag manager
Instead putting the tag handling in the Algorithm class
2020-05-14 12:44:49 -06:00
Travis Ralston
9c0422691a Add another thought
Maybe we can speed up the algorithm if we know why we're doing the update.
2020-05-14 12:44:49 -06:00
Travis Ralston
00d400b516 Possible framework for a proof of concept
This is the fruits of about 3 attempts to write code that works. None of those attempts are here, but how edition 4 could work is at least documented now.
2020-05-14 12:44:49 -06:00
Travis Ralston
becaddeb80 Categorize rooms by effective membership 2020-05-14 12:44:49 -06:00
Travis Ralston
861268d39f Invent an AsyncStore and use it for room lists
This is to get around the problem of a slow dispatch loop. Instead of slowing the whole app down to deal with room lists, we'll just raise events to say we're ready.

Based upon the EventEmitter class.
2020-05-14 12:44:29 -06:00
Travis Ralston
08419d195e Initial breakout for room list rewrite
This does a number of things (sorry):
* Estimates the type changes needed to the dispatcher (later to be replaced by https://github.com/matrix-org/matrix-react-sdk/pull/4593)
* Sets up the stack for a whole new room list store, and later components for usage.
* Create a proxy class to ensure the app still functions as expected when the various stores are enabled/disabled
* Demonstrates a possible structure for algorithms
2020-05-14 12:44:29 -06:00
Travis Ralston
82b55ffd77 Add temporary timing functions to old RoomListStore
This is to identify how bad of a state we're in to start with.
2020-05-14 12:41:37 -06:00
Michael Telatynski
fa0f704b56 clear tag panel selection if the community selected is left
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-08 00:05:16 +01:00
David Baker
0b5691c003 Fix right panel hiding when viewing room member
If you clicked on the header button whilst the right panel was
showing a room member, it would NPE because there was no
refireParams.member. It fires the same phase with no refireParams to
toggle the panel visibility (apparently), so detect that case.

Fixes https://github.com/vector-im/riot-web/issues/13571
2020-05-07 09:43:14 +01:00
David Baker
bc6aeef824 Guard against race when waiting for cross-signing to be ready
Check to see if cross-signing is already set up after a verification
is done to make sure it doesn't race and we end up waiting forever.
2020-05-01 10:58:00 +01:00
David Baker
124740a63c Wait for user to be verified in e2e setup
Wait for our user to become verified and cross-signing to be ready
before declaring that we're finsihed, otherwise we could end up
prompting the user to verify again if we just wait for the verification
itself to complete.

Fixes part of https://github.com/vector-im/riot-web/issues/13464
2020-04-30 22:08:00 +01:00
David Baker
325e1f9c4e Add jsdoc explaining ordering behaviour 2020-04-29 15:10:23 +01:00
David Baker
1291a63b98 Make new device toasts appear above review toasts
...but below incoming verification toasts, which means we now need
to actually handle priority insertion correctly. Oh well.

Fixes https://github.com/vector-im/riot-web/issues/13442
2020-04-29 14:49:30 +01:00
Travis Ralston
d8a5ba9b14 Merge branch 'develop' into travis/moar-jitsi 2020-04-20 09:21:48 -06:00
Travis Ralston
972baa881b
Revert "Fix Filepanel scroll position state lost when room is changed" 2020-04-19 19:14:08 -06:00
Travis Ralston
d910eb4d57 Merge branch 'develop' into thobyv/make-filepanel-remember-scroll-position 2020-04-17 15:10:12 -06:00
Michael Telatynski
49e1e6e59f null-guard MatrixClientPeg in RoomViewStore
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-15 17:31:45 +01:00
Travis Ralston
4fe16b1b84
Merge branch 'develop' into travis/moar-jitsi 2020-04-14 12:57:28 -06:00
thobyv-kismat
719165c67f fix file panel scroll position lost on room change 2020-04-11 04:03:32 +01:00
thobyv-kismat
8cf6a8c311 refactor RoomScrollStateStore to accomodate scrollmaps for file/notif panel 2020-04-11 02:59:26 +01:00
Travis Ralston
b4b0c4c6df Add comments to highlight where we'll need m.widget support
For https://github.com/vector-im/riot-web/issues/13111
2020-04-09 15:14:07 -06:00
Travis Ralston
dc92f557fd Support m.jitsi-typed widgets as Jitsi widgets
Fixes https://github.com/vector-im/riot-web/issues/9268
2020-04-09 15:11:57 -06:00
Zoe
0102876e40 Re-request room keys after auth 2020-04-03 11:49:08 +01:00
Michael Telatynski
a2a9dc6cd0 Fix peeking keeping two timeline update mechanisms in play
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-03-31 10:37:56 +01:00
Bruno Windels
abf12a3ddf Show EncryptionPanel straight away when there is an ongoing verification request for a user 2020-03-26 17:31:31 +01:00
Bruno Windels
7d4e498257 fix lint 2020-03-24 17:03:40 +01:00
Bruno Windels
4ff847c8a3 put CompleteSecurity state management in store
and split off a child component (SetupCrossSigningBody) that can
be reused from the "Verify this session" toast.
2020-03-24 16:10:15 +01:00
David Baker
eae690f3ef Always display verification request toasts on top
As they're interactive and time-sensitive.

Fixes https://github.com/vector-im/riot-web/issues/12141
2020-03-23 15:52:59 +00:00
Michael Telatynski
1c2c2cbc7c delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-03-20 00:20:55 +00:00
Michael Telatynski
2b40bb905a Add shortcut CmdOrCtrl+. to toggle right panel. Gets rid of forced-update on right panel changes which may not be the ones we care about.
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-03-20 00:18:24 +00:00
Michael Telatynski
fb46258528 we don't do mx_fadable anymore so get rid of broken RLS disabling
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-03-19 13:57:36 +00:00
Travis Ralston
8e3fea9d0f Use an algorithmic comparator for room list ops
Not all algorithms are timestamp based.
2020-03-04 12:09:05 -07:00
Travis Ralston
80b44f0292 Always calculate the category of a room
All the update triggers for the RoomListStore go through the `setRoomCategory` function, so by returning early we're not actually calculating where a room should be in the list.
2020-03-04 12:05:47 -07:00
Michael Telatynski
8ec83d4a77 Revert to manual sorting for custom tag rooms 2020-03-02 11:20:28 +00:00
Michael Telatynski
48dc671bcb
Merge pull request #4085 from matrix-org/t3chguy/alpha_room_list
Room List sorting algorithms
2020-02-28 12:04:10 +00:00
Michael Telatynski
4480abf09c Clear selected tags when disabling tag panel
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-27 12:52:22 +00:00
Michael Telatynski
3ad8b6e9cc Use RoomList.orderAlphabetically as the inverse of RoomList.orderByRecents for migration
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-26 23:05:08 +00:00
Michael Telatynski
a1908a208e Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/alpha_room_list
 Conflicts:
	src/components/views/rooms/RoomList.js
	src/stores/RoomListStore.js
2020-02-26 23:02:06 +00:00
Travis Ralston
866ed68615 Ensure DMs tagged outside of account data work in the invite dialog
Fixes https://github.com/vector-im/riot-web/issues/12418

Includes a refactor so we don't need to litter the code with the same magic string for DM tags.
2020-02-24 19:43:49 -07:00
Michael Telatynski
f074e85863 tidy up
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-19 16:35:05 +00:00
Michael Telatynski
5a31b308cd remove unused clause
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-19 15:09:05 +00:00
Michael Telatynski
d1503d8a65 fix edge case
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-19 14:55:49 +00:00
Michael Telatynski
a6edc34e97 Iterate things
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-19 14:52:00 +00:00
Michael Telatynski
932c9b3106 First attempt alpha room list sorting
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-18 14:55:12 +00:00
J. Ryan Stinnett
c916ef4534 Only emit in RoomViewStore when state actually changes
This adds a shallow state check to attempt to only emit a store update when
something actually changes.

Fixes https://github.com/vector-im/riot-web/issues/12256
2020-02-06 17:57:17 +00:00
David Baker
b96ad4a4f0 Don't peek until the matrix client is ready
When the client loaded, we'd load the room view which would try to
get a room object from the client, fail because the client wasn't
ready, think it's because the user wasn't joined to the room and
start peeking instead.

Coupled with the bug fixed by https://github.com/matrix-org/matrix-js-sdk/pull/1188
this would have caused https://github.com/vector-im/riot-web/issues/11120
2020-01-29 15:07:43 +00:00
Bruno Windels
716c8ba68f pr feedback 2020-01-17 17:02:31 +01:00
Bruno Windels
5556cb5749 Merge branch 'develop' into bwindels/verification-right-panel 2020-01-17 16:02:51 +01:00