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
548b8adb66
Merge pull request #5049 from matrix-org/travis/perf5
...
Ensure notification badges stop listening when they unmount
2020-07-24 14:08:28 -06: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
fbdbbce529
Merge pull request #5048 from matrix-org/travis/perf4
...
Improve RoomTile performance
2020-07-24 14:02:29 -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
57a5b47aa4
Merge pull request #5047 from matrix-org/travis/perf3
...
Reward users for using stable ordering in their room list
2020-07-24 11:16:50 -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
Michael Telatynski
6635a44314
Merge pull request #5030 from matrix-org/t3chguy/fix/13641
...
Fix autocomplete suggesting a different thing mid-composition
2020-07-24 08:37:50 +01:00
Michael Telatynski
c578026474
Merge branches 'develop' and 't3chguy/fix/13641' of github.com:matrix-org/matrix-react-sdk into t3chguy/fix/13641
...
Conflicts:
src/editor/parts.ts
2020-07-24 08:18:20 +01: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
93b0287e11
s/semi-colon/colon/
...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-24 00:04:50 +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
Michael Telatynski
55b9ba23c2
Merge pull request #5040 from matrix-org/t3chguy/community-autocomplete
...
Fix autocompletion of Community IDs
2020-07-24 00:01:48 +01:00
Michael Telatynski
591891631f
Merge pull request #5042 from matrix-org/t3chguy/fix/14686
...
Use OpenType tabular numbers in timestamps
2020-07-24 00:01:13 +01:00
Travis Ralston
71ec76dcef
Merge pull request #5046 from matrix-org/travis/package-updates
...
Update packages to modern versions
2020-07-23 16:03:48 -06:00
Travis Ralston
2abec8b100
Disable lint in InviteDialog
2020-07-23 15:58:06 -06:00
Travis Ralston
66eb069651
Pin flow-parser for i18n
2020-07-23 15:43:53 -06:00
Travis Ralston
9d091e5e02
Update packages to modern versions
2020-07-23 15:27:10 -06:00
David Baker
593ed81c8a
Merge pull request #5044 from matrix-org/dbkr/rebrand_toast_dismiss
...
Add dismiss button to rebrand toast
2020-07-23 18:14:36 +01:00
David Baker
6fb257df7a
Add dismiss button to rebrand toast
...
Fixes https://github.com/vector-im/riot-web/issues/14575
2020-07-23 17:33:14 +01:00
Michael Telatynski
b02175793e
Use OpenType tabular numbers in timestamps
...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-23 14:52:01 +01:00
Michael Telatynski
c8832f5582
Fix autocompletion of Community IDs
...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-23 14:47:42 +01:00
Michael Telatynski
4db0d94fb6
Merge pull request #5039 from matrix-org/t3chguy/fix/14684
...
Fix Firefox composer regression exception
2020-07-23 10:11:02 +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
adba9415b3
Fix Firefox composer regression exception
...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-23 09:25:01 +01:00
Michael Telatynski
38e93469d3
Fix broken test
...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-23 09:01:44 +01:00
Travis Ralston
7f4ae043bd
Merge pull request #5038 from matrix-org/travis/perf2
...
Performance improvements round 2: Maps, freezing, dispatching, and flexbox obliteration
2020-07-22 17:39:14 -06:00
Travis Ralston
80687e358f
Obliterate some flexboxes in the room list
...
We don't need columns of divs to equally size themselves, so use easier layout techniques to make the list fit in the container. We have to take a hit with `height:100%`, but the hit is much more insignificant than confusing the layout engine.
The layout engine has a hard time with dynamically-but-statically-sized stuff like `width: 100%; display: flex;`, particularly when it is nested so badly. Overall this should improve performance for the app by not having to re-paint so often.
Fixes https://github.com/vector-im/riot-web/issues/14639
2020-07-22 16:34:33 -06:00
Travis Ralston
c22cb6c325
Short-circuit room list store dispatch handling if not ready
...
We were taking 0.2ms to handle the registration of a timer per event during startup, even before the app is visible to the user. These timers would be short-circuited too, leading to a bunch of wasted time.
0.2ms isn't a lot of time, but multiplied by thousands of events at startup it's pretty significant.
On my account this reduces the full page spinner time from ~50 seconds to just over 20 seconds.
2020-07-22 13:35:41 -06: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
Travis Ralston
f27afc6ff8
Fix message previews not updating on their own
2020-07-22 12:43:10 -06:00
Travis Ralston
0ef6696c0a
Don't re-freeze AsyncStore's state all the time
2020-07-22 10:52:45 -06:00
Travis Ralston
d593d24aea
Switch to an internal Map for previews
...
This means we're abusing the AsyncStoreWithClient to get access to a lifecycle, but overall that seems like a minor crime compared to the time spend abusing the store's state as a map.
With thousands of rooms shown, we can save on average 743ms per preview. The new preview time is 0.12ms on average.
2020-07-22 10:50:54 -06:00
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
Travis Ralston
61c5b4f9bf
deunderscore
2020-07-22 08:23:47 -06:00
Michael Telatynski
6bb9be56cd
Merge pull request #5025 from matrix-org/t3chguy/room-list/14662
...
Update message previews
2020-07-22 10:03:30 +01:00