Commit graph

31 commits

Author SHA1 Message Date
Michael Telatynski
efb9b71900 Make the text filter search all spaces instead of just the selected one 2021-04-28 23:18:42 +01:00
Michael Telatynski
60ef657f64 Properly hide spaces from the room list 2021-04-22 12:07:58 +01:00
Travis Ralston
479df8ac5f Clarify docs 2021-04-02 19:35:10 -06:00
Travis Ralston
70db749430 Restabilize room list ordering with prefiltering on spaces/communities
Fixes https://github.com/vector-im/element-web/issues/16799

This change replaces the "relative priority" system for filters with a kind model. The kind is used to differentiate and optimize when/where a filter condition is applied, resulting in a more stable ordering of the room list. The included documentation describes what this means in detail.

This also introduces a way to inhibit updates being emitted from the Algorithm class given what we're doing to the poor thing will cause it to do a bunch of recalculation. Inhibiting the update and implicitly applying it (as part of our updateFn.mark()/trigger steps) results in much better performance.

This has been tested on my own account with both communities and spaces of varying complexity: it feels faster, though the measurements appear to be within an error tolerance of each other (read: there's no performance impact of this).
2021-03-31 23:36:36 -06:00
Travis Ralston
1d43c8b791 Remove forgotten rooms from the room list once forgotten
Fixes https://github.com/vector-im/element-web/issues/15559

This isn't exactly perfect as an implementation: if the user refreshes immediately after forgetting then there is a good chance the room re-appears because of the sync accumulator. At the very least this change makes it so in *most* cases the room goes away, which is probably good enough until https://github.com/vector-im/element-web/issues/14038 can be implemented properly.
2021-03-18 23:28:59 -06:00
J. Ryan Stinnett
0583ea6a25 Ignore to-device decryption in the room list store
This avoids meaningless warnings about "unknown" rooms.
2021-03-10 12:11:48 +00:00
Michael Telatynski
e6370a970b Tweak call handler stuff to not explode the room list on unsupported servers 2021-03-09 14:03:58 +00:00
Michael Telatynski
f21aedc6cf Add Space Panel with Room List filtering 2021-02-26 10:41:26 +00:00
Michael Telatynski
6b3f05a3cd Switch RoomListStore to only including the filtered subset
Without this it'd include notification counts from Community B when Community A is selected and such.
2021-02-19 14:10:36 +00:00
David Baker
6130bdf0d2 Use creation content to signal virtual-ness
This makes things a lot simpler.
2021-02-17 18:51:21 +00:00
David Baker
79455d99b4 Unused import 2021-02-15 19:38:17 +00:00
David Baker
89b2dae035 Send onNewInvitedRoom via VisibilityProvider 2021-02-15 18:13:13 +00:00
David Baker
196507a730 VoIP virtual rooms, mk II
Does a thirdparty protocol lookup to the homeserver to get the
corresponding native/virtual user for a matrix ID. Stores the
mappings in room account data. Involves some slightly nasty workarounds
for that fact that room account data has no local echo.
2021-02-12 20:55:54 +00:00
J. Ryan Stinnett
84b1f2e6c6 Resolve typing errors after TypeScript upgrade 2021-01-27 12:42:37 +00:00
Travis Ralston
ab51404421 Appease the tests? 2021-01-18 21:07:44 -07:00
Travis Ralston
6d770cb4d1 Appease the linter 2 2021-01-18 21:00:47 -07:00
Travis Ralston
6227d3c183 Appease the linters 2021-01-18 20:53:15 -07:00
Travis Ralston
80b93e0843 Mute all updates from rooms that are invisible 2020-11-25 20:03:58 -07:00
Travis Ralston
b9af446c1b Make it possible in-code to hide rooms from the room list
Fixes https://github.com/vector-im/element-web/issues/15745

This was surprisingly easy given the number of errors I remember last time, but here it is. This also includes an over-engineered VisibilityProvider with the intention that it'll get used in the future for things like Spaces and other X as Rooms stuff.
2020-11-25 19:42:57 -07:00
Travis Ralston
96087d61f6 Convert feature setting usages to regular settings 2020-08-17 13:12:18 -06:00
J. Ryan Stinnett
ce226ab534 Replace Riot with Element in docs and comments
This only covers the simple cases of references to issues and repos. More
complex areas, such as deployment scripts, will be handled separately.

Part of https://github.com/vector-im/element-web/issues/14864
2020-08-03 18:33:36 +01:00
Travis Ralston
900c234434 Internalize notification state handling for lists
This reduces the update cost of rooms changing, and fixes a bug where when a sublist became filtered it would change the notification count of the sublist.

This does change the expected usage of the state store to ensuring that only one place updates the rooms on the list states, which is currently the room list store. Ideally the state store could listen to the room list store to update itself, however due to a complicated require() loop it is not possible.
2020-07-27 17:33:27 -06:00
Travis Ralston
42498d32cc Move community filtering into the sublist
This is a step towards the room list not having to concern itself with the search parameters.
2020-07-27 16:35:48 -06:00
Travis Ralston
c22cb6c325 Short-circuit room list store dispatch handling if not ready
We were taking 0.2ms to handle the registration of a timer per event during startup, even before the app is visible to the user. These timers would be short-circuited too, leading to a bunch of wasted time.

0.2ms isn't a lot of time, but multiplied by thousands of events at startup it's pretty significant.

On my account this reduces the full page spinner time from ~50 seconds to just over 20 seconds.
2020-07-22 13:35:41 -06:00
Jorik Schellekens
a06cc77411 Remove unused imports 2020-07-21 15:34:00 +01:00
Jorik Schellekens
501e0c29ca Merge remote-tracking branch 'origin' into joriks/eslint-config 2020-07-21 15:32:50 +01:00
Travis Ralston
a0b2859436 Support custom tags in the room list again
Fixes https://github.com/vector-im/riot-web/issues/14091

Design needs work, however this is behind labs anyways. This re-implements the behaviour of the old room list.

The implementation ended up being a lot easier due to early confusion with what the TagOrderStore and TagPanel take care of. Turns out they don't deal with tags, but groups. As such, we don't need to do anything with filtering (though we keep some sanity checks in place for safety), and just have to wire up the CustomRoomTagPanel and CustomRoomTagStore.
2020-07-20 16:51:16 -06:00
Jorik Schellekens
4ba1f91a2b Fix lint issues in new code 2020-07-20 20:43:55 +01:00
Travis Ralston
7fc5ba50c8 Update references to issues 2020-07-17 16:22:33 -06:00
Travis Ralston
1cce6e2e32 Enable new room list store forever 2020-07-17 15:14:58 -06:00
Travis Ralston
2b15ba21dd Rename RoomListStore file 2020-07-17 15:11:34 -06:00
Renamed from src/stores/room-list/RoomListStore2.ts (Browse further)