Michael Telatynski
37bd59bf90
Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/peeking-races
2020-05-22 11:18:19 +01:00
Michael Telatynski
67ffe94df4
Fix typo and improve error context
...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-22 11:18:14 +01:00
Travis Ralston
e3c0b47116
Hyphenize algorithm directories
2020-05-21 11:56:04 -06:00
Travis Ralston
a11985f239
Which component? The room list!
2020-05-21 11:54:38 -06:00
Michael Telatynski
af2eed2228
Fix room alias lookup vs peeking race condition
...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-19 13:18:50 +01:00
Travis Ralston
21e471375e
Revert "Add temporary timing functions to old RoomListStore"
...
This reverts commit 82b55ffd77
.
2020-05-14 14:20:43 -06:00
Travis Ralston
5cfe29de66
Update AsyncStore's docs to be slightly more clear
2020-05-14 14:20:01 -06:00
Travis Ralston
b7ba9b3c41
Replace ChaoticAlgorithm with NaturalAlgorithm for list behaviour
2020-05-14 14:16:26 -06:00
Travis Ralston
91a997da14
Replace ChaoticAlgorithm for tag sorting with deterministic behaviour
...
aka: implement the algorithms.
2020-05-14 14:06:48 -06:00
Travis Ralston
6cb1efc1a4
Use the new TS dispatcher
2020-05-14 13:45:17 -06:00
Travis Ralston
2b4c19e9ba
Merge branch 'travis/dispatcher-types' into travis/room-list-2
2020-05-14 13:40:37 -06:00
Travis Ralston
8e047c3731
Update README for room list store
2020-05-14 13:26:17 -06:00
Travis Ralston
aafbd7f208
Update misc documentation and spell indices correctly
2020-05-14 13:01:51 -06:00
Travis Ralston
9f0810240f
Clean up imports and other minor lints
2020-05-14 12:46:16 -06:00
Travis Ralston
e88788f4e9
Handle event decryption too
2020-05-14 12:46:16 -06:00
Travis Ralston
4a0d14e322
Make missing rooms throw instead
...
For now at least. We shouldn't encounter this case until we get around to adding support for newly-joined rooms.
2020-05-14 12:46:16 -06:00
Travis Ralston
e1fab9a5b6
Work out the new category index for each room update
...
See comments within for details on what this means.
2020-05-14 12:46:16 -06:00
Travis Ralston
5dda7f02cf
Early handling of dispatched events
...
A possible approach to handling the various triggers for recategorizing rooms.
2020-05-14 12:46:16 -06:00
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
Travis Ralston
90a898d03f
Move dispatcher into a subdirectory
...
We're expecting to have a whole bunch of types for the dispatched payloads, so pull the thing into a directory we can throw them in.
2020-05-13 21:07:50 -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
David Baker
9e43abaf3a
Toasts for new, unverified sessions
...
Fixes https://github.com/vector-im/riot-web/issues/11218
2020-01-17 11:43:35 +00:00
David Baker
83b1505401
Add a ToastStore
...
To store toast. Rather than them being stored in the state of the
ToastContainer component, they now have a dedicated store. This mostly
fixes problems involving showing toasts when the app loaded because
we would otherwise have a race condition where something tries to
show a toast before the ToastContainer is mounted.
2020-01-16 20:23:47 +00:00
Travis Ralston
d1fcef1211
Merge branch 'develop' into bwindels/verification-right-panel
2020-01-16 13:23:32 -07:00
Travis Ralston
dc914774fb
Delete files that were conflicting in the merge and deleted on develop
2020-01-09 14:19:19 -07:00
Travis Ralston
fde32f13a5
[CONFLICT CHUNKS] Merge branch 'develop' into travis/sourcemaps-develop
2020-01-09 14:15:09 -07:00
Travis Ralston
59f608ffd6
Merge pull request #3761 from matrix-org/travis/babel7-wp-es6-export
...
Convert CommonJS exports to ES6 exports
2020-01-08 09:09:11 -07:00
Michael Telatynski
d31c863563
Remove all usages of slate in favour of CIDER
...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-01-06 00:15:48 +00:00
Bruno Windels
d8a38e6b74
WIP
2020-01-03 13:42:17 +01:00
Travis Ralston
042bd35d79
Fix MatrixClientPeg imports
2019-12-22 21:15:54 -07:00
Travis Ralston
d56f0f2a25
Convert many imports to handle ES6 exports
...
Reliant upon https://github.com/matrix-org/matrix-react-sdk/pull/3761
2019-12-22 21:04:42 -07:00
Travis Ralston
344dac4fb9
Convert CommonJS exports to ES6-compatible exports
...
We use `export default` begrudgingly here. Ideally we'd use just `export`, though this entire SDK expects things to be exported as a default. Instead of breaking everything, we'll sacrifice our export pattern for a smaller diff - a later commit can always do the default export -> regular export conversion.
2019-12-22 21:01:02 -07:00
Michael Telatynski
1c31fd3413
Apply new design to highlighted tags and add toggle mechanic
2019-12-19 16:54:30 +00:00
Travis Ralston
16181ff0ed
Fix right panel for multiple member info viewings
...
Fixes https://github.com/vector-im/riot-web/issues/11663
Member info is special because it has parameters associated with it. What was happening was the RightPanelStore was seeing that it was already on member info and deciding to hide the pane instead. What we do now is consider any phase change with parameters (such as the user to pass to member info) as a proper phase change.
2019-12-17 09:47:06 -07:00
Travis Ralston
b93cadf4d1
Reset the right panel when changing rooms/groups
...
This is to prevent the member info from staying open, which could explode if the user isn't in the room you're switching to.
2019-12-10 09:58:44 -07:00
Travis Ralston
94ae06db4d
Fix cold open of the RightPanel directly to MemberInfo
...
This requires us to track some of the phase's state in the RightPanelStore, which is not great - trying to get it through the app is a bit difficult.
2019-12-06 15:05:02 -07:00
Travis Ralston
814c408e23
Disable the right panel when the app asks us to
...
Currently this is only used in the GroupView and for forwarding messages.
2019-12-06 14:18:18 -07:00
Travis Ralston
75c32a2f02
Fix a bug where the icons need to be clicked twice after reload
...
Clicking on the member icon was fine, but clicking on the file panel wouldn't bring it up - it had to be clicked a second time to actually show the panel.
2019-12-05 23:50:19 -07:00
Travis Ralston
4873b526df
Ensure the right panel stays the same between room changes if possible
...
Fixes https://github.com/vector-im/riot-web/issues/10149
2019-12-05 23:48:05 -07:00
Travis Ralston
ca0c393783
Use new right panel store for header buttons
...
This introduces a new dispatch action (unused, so far) and routes the buttons towards the RightPanelStore for processing.
2019-12-05 23:28:06 -07:00
Travis Ralston
6e882251bd
Break the right panel completely
...
This lays a foundation for redirecting all the traffic through the new store, but for now the core parts of the app need to stop caring if the right panel is open.
2019-12-05 17:47:18 -07:00
Travis Ralston
5253f29928
Build out a store for the right panel state machine
...
This should make it easier to funnel the expected behaviour through a central block of code.
2019-12-05 15:31:01 -07:00
Travis Ralston
f4b1c4f360
Remove useless file
2019-11-29 15:13:46 -07:00
Travis Ralston
24843cf25e
Convert Velociraptor to a class
2019-11-28 19:36:30 -07:00
Michael Telatynski
5c172a383d
Merge branch 't3chguy/remove_bluebird_2' of https://github.com/matrix-org/matrix-react-sdk into t3chguy/remove_bluebird
...
Conflicts:
src/components/views/right_panel/UserInfo.js
2019-11-18 10:36:43 +00:00
Michael Telatynski
d4d51dc61f
Rip out the remainder of Bluebird
2019-11-18 10:03:05 +00:00
Travis Ralston
3dcc92b79d
Add some logging/recovery for lost rooms
...
Zero inserts is not normal, so we apply the same recovery technique from the categorization logic above this block: insert it to be the very first room and hope that someone complains that the room is ordered incorrectly.
There's some additional logging to try and identify what went wrong because it should definitely be inserted. The `!== 1` check is not supposed to be called, ever.
Logging for https://github.com/vector-im/riot-web/issues/11303
2019-11-12 15:39:03 -07:00
Travis Ralston
fa6e02fafb
Revert "Add some logging/recovery for lost rooms"
...
This reverts commit 1aa0ab13e6
.
2019-11-12 15:38:45 -07:00
Travis Ralston
1aa0ab13e6
Add some logging/recovery for lost rooms
...
Zero inserts is not normal, so we apply the same recovery technique from the categorization logic above this block: insert it to be the very first room and hope that someone complains that the room is ordered incorrectly.
There's some additional logging to try and identify what went wrong because it should definitely be inserted. The `!== 1` check is not supposed to be called, ever.
Logging for https://github.com/vector-im/riot-web/issues/11303
2019-11-12 15:38:29 -07:00
J. Ryan Stinnett
3f2b77189e
Simplify dispatch blocks
2019-11-12 13:29:01 +00:00
J. Ryan Stinnett
d72dedb0ce
Cache room alias to room ID mapping in memory
...
This adds very basic cache (literally just a `Map` for now) to store room alias
to room ID mappings. The improves the perceived performance of Riot when
switching rooms via browser navigation (back / forward), as we no longer try to
resolve the room alias every time.
The cache is only in memory, so reloading manually or as part of the clear cache
process will start afresh.
Fixes https://github.com/vector-im/riot-web/issues/10020
2019-11-12 11:54:41 +00:00
Michael Telatynski
3fdaeea3a2
allow rooms we were banned from into Historical also
...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-15 22:24:23 +01:00