Commit graph

11451 commits

Author SHA1 Message Date
Michael Telatynski
e7ec34e61e Fix TextWithTooltip "leaking" tooltip wrappers
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-28 10:13:13 +01:00
Travis Ralston
2a8881f753 Fix typing error 2020-07-27 17:41:23 -06: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
517c93a7d5 Move expand-on-filter into the sublist
It's a bit more complicated this way, but helps reduce some of the latency involved in remounting the entire room list.
2020-07-27 16:35:48 -06:00
Travis Ralston
c6033b9410 Move search out of RoomList and LeftPanel, into RoomSearch
This prevents the entire left panel from having to re-mount whenever the search query changes.
2020-07-27 16:35:48 -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
Michael Telatynski
992d7215c7 Remove poorly contrasted "dark style" heading in Room Preview Bar
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-27 14:59:00 +01:00
Michael Telatynski
a74470aff0 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/room-list/desync
 Conflicts:
	src/components/views/rooms/RoomTile.tsx
2020-07-27 14:42:26 +01:00
Michael Telatynski
368d1bf699 delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-27 14:40:41 +01:00
Michael Telatynski
1085d89e11 RoomList listen to notificationState updates for bolding
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-27 14:39:30 +01:00
Travis Ralston
8e7b60b11e Remove useless if statement 2020-07-24 14:07:37 -06:00
Travis Ralston
593b472e50 Ensure notification badges stop listening when they unmount 2020-07-24 14:02:43 -06:00
Travis Ralston
46f9d44e64 Use PureComponent instead
It ranges wildly between 10 and 50ms while ours is stable at 30-40ms, but the effort doesn't need to be duplicated.
2020-07-24 13:58:21 -06:00
Travis Ralston
e3800dba0e Remove debug logging 2020-07-24 13:23:51 -06:00
Travis Ralston
c3623f439c Rip hover support out of the RoomTile component
It's all handled by CSS and this literally does nothing but spam renders.
2020-07-24 13:10:39 -06:00
Travis Ralston
37035f945b Move message previews into RoomTile's state
Now that it doesn't re-render without state updates, we should just wedge it into state.
2020-07-24 13:09:26 -06:00
Travis Ralston
09808fa7be Only update RoomTiles when they change significantly 2020-07-24 12:58:10 -06:00
Travis Ralston
d26fcb7f16
Update src/components/views/rooms/RoomList.tsx
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2020-07-24 11:16:40 -06:00
Travis Ralston
4d7980eb07 Ensure references to the room list store are broken for diffing
See commit diff for details.
2020-07-24 10:38:04 -06:00
Travis Ralston
0a31bd169c Skip updates in collapsed lists too 2020-07-24 10:20:00 -06:00
Travis Ralston
82f90c4734 Do the faster length change check first
... because it's faster. Also we don't need to diff the array here.
2020-07-23 22:31:52 -06:00
Travis Ralston
fd15fc3984 Ensure message previews update when needed
In 9969b01c5f we stopped updating the sublist whenever we felt like it, which indirectly froze message previews for room tiles (badges, unread state, etc were unaffected because that is managed by a different store). To fix this, we simply have to listen for changes and perform an update.
2020-07-23 22:24:07 -06:00
Travis Ralston
7e50464eeb Fix filtering causing sticky header artifacts
In 7b97c3032b we reduced the RoomList updates to just added/removed sublists, but didn't consider that we might also have to handle lengths of those sublists changing enough for us to fix the sticky headers.
2020-07-23 22:19:16 -06:00
Travis Ralston
9969b01c5f Only render sublists when they change significantly
We can ignore off-screen updates, so do that. See diff for more details on what we're doing.
2020-07-23 22:13:32 -06:00
Travis Ralston
ad92e6ba00 Don't constantly re-mount the sublists with a new addRoomFn
Any time we though that the room list had to re-render we were dynamically creating a new addRoomFn, which would signal to the sublist that it needed to re-render. 

The only reason we wrap the function from the aesthetics is to provide theoretical tiling/multiaccount support through use of different dispatchers, however considering that's not a reality yet we can just use a default dispatcher when none is supplied.
2020-07-23 22:12:10 -06:00
Travis Ralston
7b97c3032b Make the sublists aware of their own list changes
This cuts the render time in half (from ~448ms to ~200ms on my account) per received event, as we're no longer re-mounting the entire room list and instead just the section(s) we care about.
2020-07-23 21:36:43 -06:00
Michael Telatynski
c1d2e27f9c Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into SuppressSpeechWhenSending 2020-07-24 00:03:55 +01:00
Michael Telatynski
862856d3be Also add aria-atomic=true
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-24 00:03:42 +01:00
Michael Telatynski
60a6b13f4b
Merge pull request #5026 from matrix-org/t3chguy/room-list/14440
Put low priority xor toggle back in the room list context menu
2020-07-24 00:02:50 +01:00
Travis Ralston
2abec8b100 Disable lint in InviteDialog 2020-07-23 15:58:06 -06:00
Michael Telatynski
253d4abb49 Mass redact ignore room creation events
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-23 21:30:49 +01:00
Michael Telatynski
ff8f1af01e
Merge pull request #5037 from matrix-org/t3chguy/room-list/14705
Fix BaseAvatar wrongly using Buttons when it needs not
2020-07-23 09:27:20 +01:00
Michael Telatynski
6546f98e18 Fix BaseAvatar wrongly using Buttons when it needs not
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-22 20:01:14 +01:00
Swapnil Raj
5ea7be5d53 Cleanup comments 2020-07-22 21:17:58 +05:30
Travis Ralston
67fd6e6122
Merge pull request #5034 from matrix-org/travis/fix-perf
Mixed bag of performance improvements: ScrollPanel and notifications
2020-07-22 08:24:04 -06:00
Michael Telatynski
7c1935a44e Key EventTile's using txnId if it is set to prevent a remount
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-22 11:10:55 +01:00
Swapnil Raj
d7728881a3 lint 2020-07-22 15:22:16 +05:30
Swapnil Raj
8ae11ce886 Fix shadow-variable errors in EncryptionPanel 2020-07-22 15:14:50 +05:30
Swapnil Raj
0f0b4035b7 Fix shadow variable errors 2020-07-22 15:14:50 +05:30
Swapnil Raj
5ddae04fb0 lint 2020-07-22 15:14:50 +05:30
Swapnil Raj
8fac7a8167 Convert VerificationPanel to TS 2020-07-22 15:14:50 +05:30
Swapnil Raj
3e64ec11c0 lint 2020-07-22 15:14:50 +05:30
Swapnil Raj
36974c4231 Convert EncryptionPanel to TS 2020-07-22 15:14:50 +05:30
Swapnil Raj
dac19cffce Convert EncryptionInfo to TS 2020-07-22 15:14:50 +05:30
Swapnil Raj
a4959f43d2 Convert GroupHeaderButtons to TS
Fix typo in SetRightPanelPhasePayload
2020-07-22 15:14:50 +05:30
Swapnil Raj
887d507772 Fix key to match SetRightPanelPhasePayload's key
member -> members
2020-07-22 15:14:50 +05:30
Swapnil Raj
23e4b67a69 Convert HeaderButton to TS 2020-07-22 15:14:50 +05:30
Swapnil Raj
0f59e34a3a Nest groupId in refireParams to match types 2020-07-22 15:14:50 +05:30
Swapnil Raj
1c913b85e2 Replace strings action with correspoding type 2020-07-22 15:14:50 +05:30
Swapnil Raj
2c8b5b49ed lint 2020-07-22 15:14:50 +05:30
Swapnil Raj
1d3635e1c8 Replaced string actions with their corresponding types 2020-07-22 15:14:50 +05:30
Swapnil Raj
344185a375 Translate right panel stuff to ts
Add actions for right panel
2020-07-22 15:14:50 +05:30
Robin Townsend
83ab151d96 Translate create room buttons
Signed-off-by: Robin Townsend <robintown@tcakoi.dev>
2020-07-22 03:54:15 +00:00
Travis Ralston
c9da1e1874 Remove even more tags from the notification state fetching for a room 2020-07-21 20:58:59 -06:00
Travis Ralston
97739c9a73 Add more statements to avoid layout changes 2020-07-21 20:56:07 -06:00
Travis Ralston
507fa01ade Remove missed area for notification state fetching 2020-07-21 20:51:40 -06:00
Travis Ralston
dd16ec070c Replace countRoomsWithNotif with a dedicated NotificationState
Fixes https://github.com/vector-im/riot-web/issues/14694

Instead of spending 10-1000ms in a function iterating over a whole lot of room events, we can use our cached state from the Notification State Store. 

This commit sets up a structure that could be applied to communities in the TagPanel too, as that could probably use a similar optimization.

This reduces the updateStatusIndicator() time to just 4ms on average.
2020-07-21 20:24:44 -06:00
Travis Ralston
928acbdc11 Wrap ScrollPanel layout changes in if statements
These conditions are rarely true, but when they are it saves ~28ms of forced layout changes.
2020-07-21 19:52:50 -06:00
Robin Townsend
951570a97f Escape single quotes in composer placeholder
Signed-off-by: Robin Townsend <robintown@tcakoi.dev>
2020-07-22 00:47:48 +00:00
Travis Ralston
0a846cb1b5 Don't hammer on the layout engine with avatar updates for the background
Changing the property on every render of the left panel (which is basically all the time) is super bad on the GPU and for our CPU. We should only do that when something changes.
2020-07-21 15:02:59 -06:00
Hubert Chathi
cbe4f04cd7
Merge pull request #5029 from uhoreg/sanitize_language
don't syntax highlight languages that begin with "_"
2020-07-21 13:12:51 -04:00
Hubert Chathi
2ce493307e don't syntax highlight languages that begin with "_" 2020-07-21 12:47:40 -04:00
Jorik Schellekens
501e0c29ca Merge remote-tracking branch 'origin' into joriks/eslint-config 2020-07-21 15:32:50 +01:00
Travis Ralston
37aed54d12
Merge pull request #5024 from matrix-org/travis/room-list/custom-tags
Support custom tags in the room list again
2020-07-21 06:46:50 -06:00
Michael Telatynski
29c984455e tidy up
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-21 13:43:42 +01:00
Michael Telatynski
ae069576f6 Fix the tag panel context menu
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-21 10:33:30 +01:00
Michael Telatynski
fe0c660fac Put low priority xor toggle back in the room list context menu
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-21 09:50:20 +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
c0ce6e8161 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into joriks/eslint-config 2020-07-20 20:44:52 +01:00
Michael Telatynski
9fca422de7 Merge branches 'develop' and 't3chguy/ts/2' of github.com:matrix-org/matrix-react-sdk into t3chguy/ts/2 2020-07-20 17:07:18 +01:00
Michael Telatynski
06cc76f7d8 mark some things as public
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-20 16:34:52 +01:00
Jorik Schellekens
b3fa855bd8 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into joriks/eslint-config 2020-07-20 16:22:32 +01:00
Michael Telatynski
446e8de39e
Merge pull request #5017 from matrix-org/t3chguy/fix/14596
Fix Breadcrumbs2 ending up with 2 tabIndexes on Firefox
2020-07-20 15:35:07 +01:00
Michael Telatynski
0de6cada57
Merge pull request #5023 from matrix-org/t3chguy/room-list/14644
Add min-width to floating Jitsi
2020-07-20 15:24:26 +01:00
Michael Telatynski
f02115f2a9 Merge branches 'develop' and 't3chguy/fix/14596' of github.com:matrix-org/matrix-react-sdk into t3chguy/fix/14596 2020-07-20 15:20:08 +01:00
Michael Telatynski
9e6532e46e
Merge pull request #5016 from matrix-org/t3chguy/tooltips2
Use mouseleave instead of mouseout for hover events. Fix tooltip flicker
2020-07-20 15:19:32 +01:00
Michael Telatynski
476c3eb7c8
Merge pull request #5014 from matrix-org/t3chguy/tooltips
Fix field tooltips
2020-07-20 15:18:53 +01:00
Michael Telatynski
828cfb7138 Add min-width to floating Jitsi
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-20 15:15:21 +01:00
Michael Telatynski
8063263665 delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-20 14:56:47 +01:00
Michael Telatynski
8aceb11992 Fix community right panel button regression
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-20 14:47:06 +01:00
Travis Ralston
7996013cd5
Merge pull request #5013 from matrix-org/travis/room-list/rm-old
[BREAKING] Remove the old room list
2020-07-20 06:46:05 -06:00
Michael Telatynski
fabed26b09 Fix Breadcrumbs2 ending up with 2 tabIndexes on Firefox due to explicit css overflow scroll
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-18 12:19:03 +01:00
Michael Telatynski
e9633b2e3b Use mouseleave instead of mouseout for hover events. Fix tooltip flicker
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-18 12:01:51 +01:00
Michael Telatynski
c980b58c69 Fix field tooltips
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-18 11:36:23 +01:00
Travis Ralston
7fc5ba50c8 Update references to issues 2020-07-17 16:22:33 -06:00
Travis Ralston
c5d732a631 IncomingCallBox2 -> IncomingCallBox 2020-07-17 15:56:58 -06:00
Travis Ralston
76902a752f CallPreview2 -> CallPreview 2020-07-17 15:56:07 -06:00
Travis Ralston
7f5c501b2b CallView2 -> CallView 2020-07-17 15:55:30 -06:00
Travis Ralston
cbf967ea69 Remove legacy call components 2020-07-17 15:53:13 -06:00
Travis Ralston
d7ada5f7c5 Remove TODO flags 2020-07-17 15:47:37 -06:00
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
8dfe7b6cc7 RoomBreadcrumbs2 -> RoomBreadcrumbs 2020-07-17 15:32:06 -06:00
Travis Ralston
a7c18bfbfa RoomList2 -> RoomList 2020-07-17 15:27:49 -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
Jorik Schellekens
58532f2ac4
Merge pull request #4990 from matrix-org/joriks/irc-layout-truncate-upload-name
ellipse senders for images and videos
2020-07-17 22:04:19 +01:00
Travis Ralston
1810711380 Dismantle usage of the proxy store class 2020-07-17 14:25:09 -06:00
Travis Ralston
3c047cecfd Remove core structures for the old room list 2020-07-17 14:17:11 -06:00
Travis Ralston
06336a88b3 Remove setting for old room list 2020-07-17 14:06:30 -06:00