Commit Graph
471 Commits
Author SHA1 Message Date
Travis Ralston eff97e6c20 Fix the tests 2020-06-08 18:18:34 -06:00
Travis Ralston 0354bf9b6d Reimplement breadcrumbs for new room list
This all-new component handles breadcrumbs a bit more smoothly for the app by always listening to changes even if the component isn't present. This allows the breadcrumbs to remain up to date for when the user re-enables breadcrumbs.

The new behaviour is that we turn breadcrumbs on once the user has a room, and we don't turn it back off for them.

This also introduces a new animation which is more stable and not laggy, though instead of sliding the breadcrumbs pop. This might be undesirable - to be reviewed.
2020-06-08 17:11:58 -06:00
Travis Ralston 000c92a53f Merge branch 'develop' into travis/room-list/css-layout 2020-06-08 09:40:21 -06:00
Travis Ralston 760333a0ae Move function to a private function 2020-06-07 13:08:25 -06:00
Travis Ralston a7fe7cb28d Merge remote-tracking branch 'origin/develop' into travis/room-list/sticky 2020-06-07 13:06:30 -06:00
Travis Ralston 9b928b5a5d Handle remaining cases for room updates in new room list
For https://github.com/vector-im/riot-web/issues/13635

This adds support for:
* Tag changes
* DM changes
* Marking our own rooms as read
* Our own membership changes

The remaining branch we didn't need was the alternate 'new room' branch, so it was removed.

This is not optimized - optimization is deferred.
2020-06-05 20:12:32 -06:00
Travis Ralston 0bb1eefdea Remove view_room listener as it isn't needed
We use the RoomViewStore
2020-06-05 19:47:15 -06:00
Travis Ralston 6548748d7c Introduce sticky rooms to the new room list
Originally this was intended to be done only in the importance algorithm, however it is clear that all algorithms will need to deal with this. As such, it has been put into the base class to deal with as we may override it in the future. 

This commit should be self-documenting enough to describe what is going on, though the major highlight is that the handling of the sticky room is done by lying to the underlying algorithm.

This has not been optimized for performance yet.

For https://github.com/vector-im/riot-web/issues/13635
2020-06-05 18:44:38 -06:00
Travis Ralston ea6b0a60ab Merge branch 'develop' into travis/room-list/css-layout 2020-06-05 13:19:00 -06:00
Travis Ralston e93a41c5fb Minor clarity 2020-06-05 13:14:44 -06:00
Travis Ralston 0c15b2bdb6 Simple structuring of the room list itself
This covers the larger parts of the design, but doesn't deal with the nuances of hover states, badge sizing, etc.
2020-06-04 21:21:04 -06:00
Travis Ralston 83df79aab9 Try variable resizing 2020-06-04 09:19:03 -06:00
Travis Ralston dbf996439b Wedge t3chguy's resizer prototype into the sublist 2020-06-03 21:17:51 -06:00
Travis Ralston c07b5ebe9a Initial experiments with resizing of room lists 2020-06-03 21:17:18 -06:00
Travis Ralston bc2fbefb5c Remove iteratorToArray 2020-06-03 11:29:06 -06:00
Travis Ralston 73a8e77d32 Add initial filtering support to new room list
For https://github.com/vector-im/riot-web/issues/13635

This is an incomplete implementation and is mostly dumped in this state for review purposes. The remainder of the features/bugs are expected to be in more bite-sized chunks.

This exposes the RoomListStore on the window for easy access to things like the new filter functions (used in debugging).

This also adds initial handling of "new rooms" to the client, though the support is poor.

Known bugs:
* [ ] Regenerates the entire room list when a new room is seen.
* [ ] Doesn't handle 2+ filters at the same time very well (see gif. will need a priority/ordering of some sort).
* [ ] Doesn't handle room order changes within a tag yet, despite the docs implying it does.
2020-06-01 16:49:22 -06:00
Michael TelatynskiandGitHub 0242b6f3f3 Merge pull request #4624 from matrix-org/t3chguy/toasts3_2
Migrate Banners to Toasts
2020-05-28 18:21:28 +01:00
Michael TelatynskiandGitHub 0fd5714e21 Merge pull request #4606 from matrix-org/t3chguy/peeking-races
Fix room alias lookup vs peeking race condition
2020-05-27 17:07:12 +01:00
Michael Telatynski efa47f1a8e Change out debug
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-27 12:02:51 +01:00
Michael Telatynski 3dade4e759 tweak
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-27 11:48:48 +01:00
Michael Telatynski 254ed4b1b6 Add debug lined to figure out e2e test failure
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-27 11:33:42 +01:00
Travis Ralston a9c54153ee Update badge counts in new room list as needed 2020-05-26 14:16:33 -06:00
Bruno Windels cfe5173235 use connection error to detect network problem 2020-05-26 15:23:12 +02:00
Bruno WindelsandGitHub d45a597528 Merge pull request #4645 from matrix-org/bwindels/addloggingforfailtojoinroom
Add logging when room join fails
2020-05-26 13:22:22 +00:00
Bruno Windels f1282179fb add logging when we fail to join a room 2020-05-26 14:58:09 +02:00
Michael Telatynski 22dba5f794 Merge branches 't3chguy/toasts3' and 't3chguy/toasts3_1' of github.com:matrix-org/matrix-react-sdk into t3chguy/toasts3_1 2020-05-23 11:22:19 +01:00
Michael Telatynski d29ba5b597 fix priority sorting to highest first
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-23 09:02:35 +01:00
Michael Telatynski 49c0748990 delint and i18n
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-22 14:32:41 +01:00
Michael Telatynski c464abaa49 Iterate toast count indicator more logically
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-22 14:28:01 +01:00
Michael Telatynski dc37469808 Convert ToastContainer and ToastStore to Typescript
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-22 12:47:40 +01:00
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