Commit Graph

16504 Commits

Author SHA1 Message Date
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
Michael Telatynski 70c81cc377 Merge branches 'develop' and 'travis/download-logs' of github.com:matrix-org/matrix-react-sdk into travis/download-logs
 Conflicts:
	src/i18n/strings/en_EN.json
	src/rageshake/submit-rageshake.ts
2020-07-21 22:22:28 +01: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