Commit Graph
20113 Commits
Author SHA1 Message Date
Travis RalstonandGitHub 9eb965878a Merge pull request #4754 from matrix-org/travis/room-list/per-list-algo
Support per-list options and algorithms on the new room list
2020-06-12 08:40:23 -06:00
Travis Ralston 6de6d94f7c Fix return type 2020-06-12 08:40:08 -06:00
Travis Ralston 6b54c3a492 Throw if the update cause is unsupported 2020-06-12 08:39:59 -06:00
J. Ryan StinnettandGitHub de003bc78f Merge pull request #4755 from matrix-org/jryans/send-read-marker-immed
Send read marker updates immediately after moving visually
2020-06-12 15:38:08 +01:00
J. Ryan Stinnett 39c28e2207 Send read marker updates immediately after moving visually
The `TimelinePanel` uses two timers to coordinate read marker and read receipt
updates. When the read receipt timer fires, we advance the receipt and send the
latest state of both your receipt and marker to the server. When the read marker
timer fires, we advance the marker visually, but do not send anything to the
server: we were relying on the slightly different schedule of the read receipt
to actually send the updated read marker. This means there's a time window where
it's possible to visually advance the read marker without ever sending it to the
server (if you change rooms before the receipt timer fires again).

To simplify the behaviour here and ensure we always commit the updated marker
when we move it, this change sends an update to the server at the same time as
moving the marker.

It's possible this may improve some of the behaviour reported in
https://github.com/vector-im/riot-web/issues/12338.
2020-06-12 14:34:57 +01:00
Travis Ralston 4aa15ee191 Wire up the context menu to the room list store
Updates are passed along magically to the sublist, so we don't need to listen for the room list store's response to our changes.

This just hits the functions introduced in the last commit.
2020-06-11 22:04:10 -06:00
Travis Ralston fd029e8e80 Dumb down list algorithms in favour of smarter tags
This commit is a bit involved, as it factors the tag specific handling out of `/list-ordering` (and moves the `Algorithm` class one higher as a result), leaving it in the `Algorithm`. The algorithms for list ordering now only know how to handle a single tag, and this is managed by the `Algorithm` class - which is also no longer the base class for the list ordering. The list ordering algorithms now inherit from a generic `OrderingAlgorithm` base class which handles some rudimentary things.

Overall the logic hasn't changed much: the tag-specific stuff has been moved into the `Algorithm`, and the list ordering algorithms essentially just removed the iteration on tags. The `RoomListStore2` still shovels a bunch of information over to the `Algorithm`, which can lead to an awkward code flow however this commit is meant to keep the number of surfaces touched to a minimum.

The RoomListStore has also gained the ability to set per-list (tag) ordering and sorting, which is required for the new room list. The assumption that it defaults from the account-level settings is not reviewed by design, yet. This decision is deferred.
2020-06-11 22:02:09 -06:00
Travis Ralston 52b26deb2e Move room list store docs to docs directory
This pulls it away from the code, but the code is sufficiently involved enough where it doesn't need another file near it.
2020-06-11 16:56:12 -06:00
Travis Ralston 966e2cad7e Update documentation for how this refactoring will go 2020-06-11 16:52:47 -06:00
Travis Ralston 2c04a56784 Add a minimized view to the new room list
This covers everything except breadcrumbs, as those are somewhat undecided from a design perspective.
2020-06-11 14:39:28 -06:00
Travis RalstonandGitHub 2e04414331 Merge pull request #4750 from matrix-org/travis/room-list/leak
Add some resource leak protection to new room list badges
2020-06-11 12:33:11 -06:00
Travis Ralston 853ae6d5bf misc code quality improvements 2020-06-10 18:56:21 -06:00
Travis Ralston 6ccb566587 Show message previews on the new room list tiles
They're heavily cached.
2020-06-10 18:37:59 -06:00
Travis Ralston d1c2ecb6cc Add some resource leak protection to new room list badges
Most of the leaks were because we never set `this.rooms` in the notification state, which meant we were constantly triggering the `diff.added` loop.
2020-06-10 16:04:27 -06:00
Travis Ralston 0f16d7f32d Merge branch 'develop' into travis/room-list/layout 2020-06-10 15:53:33 -06:00
Michael Telatynski ed7f4755cc use ButtonEvent instead of MouseEvent | KeyboardEvent for AccessibleButton (make CI happy)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-06-10 22:05:29 +01:00
Travis Ralston be366bdd7f Fix various layout concerns with the new room list
It had ~32px of overflow causing a horizontal scrollbar. Turns out the layout engine gets confused when hidden elements are at the end of a flexbox, so we just move them higher in the DOM (where they logically still make sense).

The remaining changes are all alignment and misc changes in that respect, and probably not obvious.
2020-06-10 15:05:17 -06:00
Michael Telatynski 601e8209d8 Prioritize text on the clipboard over file
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-06-10 21:48:39 +01:00
Jorik SchellekensandGitHub b63d73e3b6 Merge pull request #4729 from matrix-org/joriks/appearance-tab
Move Settings flag to ts
2020-06-10 16:57:18 +01:00
Jorik Schellekens 737fc46b87 Inline kind classnames 2020-06-10 16:48:34 +01:00
Jorik Schellekens 52c7577972 Clean up interfaces and classname 2020-06-10 15:57:28 +01:00
Travis RalstonandGitHub 72bb89d4ee Merge pull request #4743 from matrix-org/travis/room-list/tile-menu
Add a context menu to rooms in the new room list
2020-06-10 07:46:09 -06:00
Travis Ralston b1fdfb51cd Fix i18n 2020-06-10 07:43:13 -06:00
Travis Ralston a3391d9a08 Merge branch 'develop' into travis/room-list/hover-state 2020-06-10 07:42:41 -06:00
Travis RalstonandGitHub 78e1db9d30 Merge pull request #4741 from matrix-org/travis/room-list/resize-handle
Update resize handle for new designs in new room list
2020-06-10 07:40:34 -06:00
Travis RalstonandGitHub a4ea5b5902 Merge pull request #4740 from matrix-org/travis/room-list/stability-1
Improve general stability in the new room list
2020-06-10 07:40:07 -06:00
Travis RalstonandGitHub 95b4abba3b Merge pull request #4735 from matrix-org/travis/room-list/breadcrumbs
Reimplement breadcrumbs for new room list
2020-06-10 07:39:55 -06:00
Jorik Schellekens 04d91ae0af Fix code review issues
- interfaces go to the top
- fix comma conflation
- value no generic
- optionalised props
- line lints
2020-06-10 14:11:36 +01:00
Jorik SchellekensandGitHub 9787b4d640 Even more lines 2020-06-10 13:50:09 +01:00
Jorik SchellekensandGitHub 0ec0bbecda lint more lines 2020-06-10 13:49:52 +01:00
Jorik Schellekens 0fb6846c9d Radio buttons 2020-06-10 13:03:00 +01:00
Damir Jelić 54200519f6 Merge branch 'poljar/eventindex-search-verification-state' into develop 2020-06-10 13:33:10 +02:00
Damir Jelić f70ada4d6d Searching: Delete all the fields that we use to get back event verification. 2020-06-10 12:58:08 +02:00
Travis Ralston 0755b4c148 Add a context menu to rooms in the new room list
The tag options are not implemented out of concern for diff size. 

This splits the context menu classes out to a new "iconized" style which is common across a number of context menus, including the UserMenu.

Some of the badge/sublist styles had to change to better accommodate the menu icon lining up.

This also contains the framework required for https://github.com/vector-im/riot-web/issues/13961
2020-06-09 23:09:15 -06:00
Travis Ralston 2180a56074 Remove irrelevant property 2020-06-09 21:15:38 -06:00
Travis Ralston 111394df6d Add hover states and basic context menu to new room list
The 'sort by' radio buttons are blocked by https://github.com/matrix-org/matrix-react-sdk/pull/4731 as it contains the styles needed.

The 'unread rooms' checkbox is intentionally not hooked up. This is a more complicated refactoring that needs to be done.

The message preview checkbox works, though the previews remain hardcoded in this change. The primary intent of this change is to have a good enough context menu and the hover states.

The hover states are as described in the design.
2020-06-09 21:12:49 -06:00
Travis Ralston 8ec6d4ce76 Appease i18n 2020-06-09 19:53:07 -06:00
Travis Ralston 5f8b7187cf Update resize handle for new designs
The diff should have information on what this does and how it is supposed to work.
2020-06-09 19:48:31 -06:00
Travis Ralston b84af372b9 Bump animation time for breadcrumbs up to 640ms
This matches the design, unlike the 300ms which was too fast.
2020-06-09 15:35:07 -06:00
Travis Ralston 84174cc440 Remove 1 extra line 2020-06-09 15:30:03 -06:00
Travis Ralston c360800631 Add token.remove() handling to room list temp proxy
Fixes https://github.com/vector-im/riot-web/issues/13930
2020-06-09 15:26:13 -06:00
Travis Ralston fed52f274e Fix custom theme use with new room list
Fixes https://github.com/vector-im/riot-web/issues/13968

We were grabbing "custom-" instead of the actual theme name.
2020-06-09 15:23:34 -06:00
Travis Ralston db23aaad83 Destroy old CommunityFilterConditions when they aren't needed
Fixes https://github.com/vector-im/riot-web/issues/13971
2020-06-09 15:22:37 -06:00
Travis Ralston 1467191a5d Update the CSS transition for breadcrumbs
The actual transition length might need adjusting, but this is fairly close to what was requested.
2020-06-09 15:06:54 -06:00
Travis Ralston b5f9c4ba8a Merge branch 'develop' into travis/room-list/breadcrumbs 2020-06-09 08:12:56 -06:00
Travis Ralston 9377fa513f Merge branch 'develop' into travis/room-list/breadcrumbs 2020-06-09 08:11:08 -06:00
Travis Ralston eefc40e0f8 Use IDestroyable instead of IDisposable
For consistency within our project
2020-06-09 08:08:47 -06:00
Travis Ralston 724f545b4a Merge remote-tracking branch 'origin/develop' into travis/room-list/sublist-badges 2020-06-09 08:06:10 -06:00
Travis Ralston 8632d56e97 dispose -> destroy 2020-06-09 08:05:35 -06:00
Travis RalstonandGitHub d9bd3cfc38 Merge pull request #4732 from matrix-org/travis/badge-ts
Convert FormattingUtils to TypeScript and add badge utility function
2020-06-09 08:01:19 -06:00