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
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