Commit graph

147 commits

Author SHA1 Message Date
Travis Ralston
c9b0b3b31d RoomSublist2 -> RoomSublist 2020-07-17 15:46:46 -06:00
Travis Ralston
96065ae982 RoomTile2 -> RoomTile 2020-07-17 15:43:29 -06:00
Travis Ralston
2441cbc9ac LeftPanel2 -> LeftPanel 2020-07-17 15:22:18 -06:00
Travis Ralston
2b15ba21dd Rename RoomListStore file 2020-07-17 15:11:34 -06:00
Michael Telatynski
3639170789 fix types
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-17 19:00:02 +01:00
Michael Telatynski
8ea806b43e Add tooltip to collapsed sublists
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-17 18:54:09 +01:00
Michael Telatynski
23fa952905 Add tooltips to minimized roomlist2 tiles and sublists
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-17 18:16:00 +01:00
Michael Telatynski
f2104b59f0 Simplify room sublist context menu
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-16 14:38:04 +01:00
David Baker
839851c90f Fix bug where 'show more' sometimes did nothing
a3a1e2e01f added the padding
to maxTilesPx which was confusing the calculation of whether we
should be showing the 'show more' button or the 'show less' button.

Hopefully this fixes the issue without undoing fixes from
https://github.com/matrix-org/matrix-react-sdk/pull/4964 or the
above commit by adding the padding in all cased in `get padding()`.
2020-07-14 21:49:51 +01:00
Michael Telatynski
f394190423
Merge pull request #4973 from matrix-org/t3chguy/room-list/14395
Fix show-all keyboard focus regression
2020-07-14 09:56:03 +01:00
Michael Telatynski
03f94779f1 Fix show-all keyboard focus regression
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-14 09:38:31 +01:00
Travis Ralston
bdb136e24e Clean up TODOs, comments, and imports in the new room list
Fixes https://github.com/vector-im/riot-web/issues/14412
2020-07-13 20:25:02 -06:00
Travis Ralston
a3a1e2e01f Fix show less button occluding the last tile
Fixes https://github.com/vector-im/riot-web/issues/14450

People may have to click various combinations of 'show more' and 'show less' until it fixes itself, as their layout could be a bit weird now.
2020-07-13 16:38:13 -06:00
Travis Ralston
8e982f52ff Fix extra room tiles being rendered on smaller sublists
Fixes https://github.com/vector-im/riot-web/issues/14426

The issue only applies to lists which won't have a 'show less' button, as the lists with the button would have the button's height considered when determining visible tiles. For lists that were under that (1-4 rooms), the show more button wasn't being considered and thus leading to the padding being added rather than subtracted, causing an extra tile to render.

By ensuring we include the padding for both show more and show less, we ensure that no extra tiles get rendered and that the cutoff semantics are still present.
2020-07-13 12:59:09 -06:00
Michael Telatynski
fd8f43e245 Fix room sub list header collapse/jump interactions on bottom-most sublist
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-13 17:17:05 +01:00
Michael Telatynski
1ce3ae0cf2
Merge pull request #4952 from matrix-org/t3chguy/room-list/14413
Remove redundant scroll-margins and fix RoomTile wrongly scrolling
2020-07-13 15:57:27 +01:00
Travis Ralston
0908e813fb Merge branch 'develop' into travis/room-list/enable 2020-07-12 22:50:27 -06:00
Michael Telatynski
213e2df9fc Remove redundant scroll-margins and fix RoomTile wrongly scrolling
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-12 08:49:04 +01:00
Travis Ralston
cfc39dc4a9 Remove now-dead code from sublist resizing 2020-07-10 16:10:05 -06:00
Travis Ralston
bdb641279a Merge branch 'develop' into travis/room-list/enable 2020-07-10 11:11:25 -06:00
Travis Ralston
1175eb001f Fix bad merge 2020-07-10 11:01:11 -06:00
Travis Ralston
477472c178 Merge branch 'develop' into travis/room-list/showmore2 2020-07-10 10:57:17 -06:00
Bruno Windels
ae8d6f5523 make tsc happy 2020-07-10 18:48:54 +02:00
Bruno Windels
15ea3a5287 add types 2020-07-10 18:42:51 +02:00
Bruno Windels
85ac256231 cleanup 2020-07-10 18:40:09 +02:00
Bruno Windels
e2aa6ecf6b fix show X more counter 2020-07-10 18:40:09 +02:00
Bruno Windels
86817430c5 update initially shown amount of tiles on component update
as rooms aren't all available at ctor time
2020-07-10 18:40:09 +02:00
Bruno Windels
96f2968854 make all height changes update component state
also set visibleTiles as side-effect
2020-07-10 18:40:09 +02:00
Bruno Windels
652fb9e613 track height in pixels in component state 2020-07-10 18:40:09 +02:00
Bruno Windels
49f7170d95 extract type 2020-07-10 18:31:53 +02:00
Bruno Windels
725b7f8950 make show more button a bit less tall 2020-07-10 18:30:52 +02:00
Bruno Windels
d5a3071518 put show more button inside resizer
this way we have a flexbox layout in the resizer with:
 - the resize handle (fixed)
 - the show more/less button, if any (fixed)
 - the list of tiles (grabbing whatever is left)
2020-07-10 18:29:39 +02:00
Travis Ralston
75dbd5f1d4 Merge branch 'develop' into travis/room-list/enable 2020-07-09 22:28:16 -06:00
Jorik Schellekens
1983591cbf Remove unused actions 2020-07-10 02:22:34 +01:00
Travis Ralston
859f65659c Attempt to support a hard cutoff with the show more button
Known issues:
* Causes scroll jumps when the button gets added to DOM
* Resize handle is invisible when there's a show more button

TODO:
* Clean up comments
* Clean up useless code (all the padding stuff isn't needed)
2020-07-09 13:07:13 -06:00
Bruno Windels
ce68314de9 Revert "Merge pull request #4932 from matrix-org/travis/room-list/invisible-show-more"
This reverts commit f58a0a7538.
2020-07-09 12:13:12 -06:00
Jorik Schellekens
ade89ab4e9 Move sublist auto expand to out from layouts
Co-authored-by: Travis Ralston <travpc@gmail.com>
2020-07-09 18:32:28 +01:00
Bruno Windels
f58a0a7538
Merge pull request #4932 from matrix-org/travis/room-list/invisible-show-more
Potential solution to supporting transparent 'show more' buttons
2020-07-09 14:43:20 +00:00
Travis Ralston
57b2ae9a0d Merge branch 'develop' into travis/room-list/perf/notifications 2020-07-09 07:46:01 -06:00
Travis Ralston
47380306c2 Move and improve notification state handling
Previously we were creating a notification state whenever we needed one, which was leading to hundreds of listeners even on a small account. To ease the burden, and reduce the load of having to wake so many listeners, we now record a single listener for each tag ID and room combination.

This commit also introduces a number of utilities to make future notification work a bit of an easier transition, such as the `isX` and `hasX` getters on the new NotificationState abstract class. Similarly, "snapshots" have been added to reduce code duplication between different kinds of states checking for updates.

The ListNotificationState is now heavily tied into the store which offers it to help reuse the cache of room notification states. 

Fixes https://github.com/vector-im/riot-web/issues/14370
2020-07-08 19:26:25 -06:00
Travis Ralston
c5812d6c27 Move list layout management to its own store
This is more general maintenance than performance as the RoomList doesn't need to be generating layouts for the sublists, and it certainly doesn't need to be creating a bunch of extra ones. 

The sublists are perfectly capable of getting their own layout instance and using it, and we are perfectly able to limit the number of these things we create through the session's lifespan.
2020-07-08 18:28:21 -06:00
Travis Ralston
8972cf9378 Potential solution to supporting transparent 'show more' buttons
In this demonstration, we remove the cutting line (as it collides with the tile in a weird spot) and instead replace the tile with a placeholder when the text is about to collide with the avatar in the tile. We use a `round()` for this because through some amazing coincidence the collision happens at 0.47, which is close enough to 0.5 for people not to notice.
2020-07-08 16:09:45 -06:00
Travis Ralston
3912f2d21c Merge remote-tracking branch 'origin/develop' into travis/room-list/resizable 2020-07-08 07:55:10 -06:00
Travis Ralston
b2abe61fc5 clarify which NumberSize to use 2020-07-08 07:51:48 -06:00
Bruno Windels
989e4a9ceb
Merge pull request #4912 from matrix-org/bwindels/bettersticky
Add wrapper to room list so sticky headers don't need a background
2020-07-08 13:34:01 +00:00
Bruno Windels
a361ac3f83 make collapsing/expanding the first header work again 2020-07-08 15:11:47 +02:00
Michael Telatynski
5d23e4216e
Merge pull request #4908 from matrix-org/t3chguy/room-list/12345
New room list view_room show_room_tile support
2020-07-08 13:34:28 +01:00
Michael Telatynski
d7ad555c12
Merge pull request #4871 from matrix-org/t3chguy/room-list/3
Convert Context Menu to TypeScript
2020-07-08 13:24:10 +01:00
Michael Telatynski
faa9124f2b Merge branches 'develop' and 't3chguy/room-list/12345' of github.com:matrix-org/matrix-react-sdk into t3chguy/room-list/12345
 Conflicts:
	src/components/views/rooms/RoomTile2.tsx
2020-07-08 08:57:01 +01:00
Travis Ralston
15b6a273c9 Swap out the resizer lib for something more stable
react-resizer appears to be okay at tracking state, but it often desyncs from reality. re-resizer is more maintained and more broadly used (160k downloads vs 110k), and appears to generally do a better job of tracking the cursor.

The new library has some oddities though, such as deltas, touch support (hence the polyfill), and calling handles "Enable".

For https://github.com/vector-im/riot-web/issues/14022
2020-07-07 22:21:00 -06:00