Commit graph

20114 commits

Author SHA1 Message Date
Michael Telatynski
01a71dab8c Fix m.id.phone spec compliance 2020-06-12 22:36:50 +01:00
Travis Ralston
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 Stinnett
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 Ralston
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 Schellekens
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 Ralston
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 Ralston
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 Ralston
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 Ralston
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 Schellekens
9787b4d640
Even more lines 2020-06-10 13:50:09 +01:00
Jorik Schellekens
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