Luke Barnard
8672b97f9a
Improve room list performance when receiving messages
...
In summary this makes RoomTiles (and RoomAvatars) do more for
themselves in terms of reacting individually to state changes in
the js-sdk.
Instead of force updating the entire room list for avatar changes
and room name changes, do this in the RoomTile and RoomAvatar
instead. This increases the number of listeners listening to the
matrix client, but allows us to properly implement a
shouldComponentUpdate for RoomTile (because the avatar, name and
notification count are now in component state)
2018-03-14 14:29:55 +00:00
Matthew Hodgson
3552800d19
Merge pull request #1753 from matrix-org/luke/fix-room-list-drop-target-bg
...
Give emptySubListTip a container for correct bg colour
2018-02-23 16:36:10 +00:00
David Baker
fd90a8b23c
Merge pull request #1756 from matrix-org/luke/fix-recent-ordering
...
Make RoomListStore aware of Room.timeline events
2018-02-20 10:17:16 +00:00
Travis Ralston
cbeee72062
Don't show empty custom tags when filtering tags
...
Signed-off-by: Travis Ralston <travpc@gmail.com>
2018-02-16 10:11:04 -07:00
Luke Barnard
94a0a90457
Make RoomListStore aware of Room.timeline events
...
so that we can do reorderings of lists ordered by most recent event.
No optimisations here; we only update for timeline events
on live timelines that could update the "unread count".
2018-02-16 14:16:50 +00:00
Luke Barnard
57419a7f8d
Give emptySubListTip a container for correct bg colour
2018-02-15 14:11:45 +00:00
David Baker
ceec405519
Remove RoomListStore listener
...
This caused the the RoomList component to leak (although in practice
only accross logins because that's the only time it's unmounted)
2018-02-15 11:23:00 +00:00
Luke Barnard
7a4c1994c3
Use Boolean() instead of assuming filter is based on truthiness
2018-02-12 18:35:13 +00:00
lukebarnard
feca1707f1
Remove a factor n complexity during room visibility calc
2018-02-06 09:55:58 +00:00
lukebarnard
701abb6a21
Move management of room lists to RoomListStore
...
this is part maintenance to make RoomList clearer and part
allowing room list state to be modified via a dispatch.
2018-01-25 22:16:03 +01:00
lukebarnard
d0e3319bd9
Remove DragDropContext from TagPanel and RoomList
...
So that we can have one context that can handle DND between
the TagPanel and RoomList.
2018-01-25 22:05:20 +01:00
lukebarnard
6106b3ce44
newOrder defaults null
, allows check for newOrder
on line 357
2018-01-19 14:12:27 +00:00
lukebarnard
54f6d305d7
Null-guard for newTag
2018-01-19 14:11:05 +00:00
lukebarnard
6f0d799912
Fix indentation
2018-01-18 18:15:34 +00:00
lukebarnard
59f4661bfd
Add comment
2018-01-18 18:01:31 +00:00
lukebarnard
dfecad181a
Swap RoomList to react-beautiful-dnd
2018-01-18 17:59:29 +00:00
lukebarnard
408f13f68c
Only set selected tags state when updating rooms
...
instead of every time we get an update from a GroupStore/otherwise.
This was leading to many setStates and renders at startup when we
receive many group /members /rooms etc. responses.
Also, use the rate limited version of refreshRoomList.
2018-01-15 14:42:41 +00:00
David Baker
587a6f8e2b
Merge pull request #1687 from matrix-org/luke/perf-tag-panel-selected
...
Improve performance of tag panel selection (when tags are selected)
2018-01-05 15:55:24 +00:00
lukebarnard
8ade357349
Handle newly added rooms and removed rooms.
2018-01-05 12:33:26 +00:00
David Baker
5aed77c752
Merge pull request #1677 from aidalgol/PropTypes
...
Remove use of deprecated React.PropTypes
2018-01-05 11:53:55 +00:00
lukebarnard
7606e60188
Merge branch 'develop' into luke/perf-tag-panel-selected
2018-01-05 10:26:03 +00:00
lukebarnard
f1b60287fb
Merge branch 'develop' into luke/fix-get-users-rooms-for-joined-groups
2018-01-04 17:56:34 +00:00
David Baker
b34f360f96
Merge pull request #1690 from matrix-org/luke/remove-selected-room-prop
...
Remove unused selectedRoom prop
2018-01-04 17:33:36 +00:00
lukebarnard
2282f5c26f
Remove unused selectedRoom prop
2018-01-04 14:19:10 +00:00
lukebarnard
cdd1a57569
Calculate visible rooms when tags change
...
instead of every time we getRoomLists
2018-01-04 11:50:33 +00:00
lukebarnard
5c5307c665
Improve performance of tag panel selection (when tags are selected)
...
Deselecting all tags is now slightly less performant than selecting a tag
but mostly due to the number of RoomTiles being rendered.
Swapping between different tags (a supposed common use-case) feels much
more spritely!
2018-01-03 17:12:31 +00:00
lukebarnard
2baacfa562
Handle case where ordering is not yet known
2018-01-03 14:12:28 +00:00
lukebarnard
a2bb240dcb
Fetch group data for all tags instead of those selected
...
so that tag switching is not delayed by fetching group data, i.e group members and rooms.
2018-01-03 14:07:29 +00:00
lukebarnard
85cdd888e8
Combine TagOrderStore and FilterStore
...
so that shift-click semantics can work. The store that computes the shift-click
rules has to be aware of the actual order of tags displayed, so they must be done
in the same store.
2018-01-03 11:33:59 +00:00
lukebarnard
57fb09dfb7
Fix dodgy merge done in 874a7bf
...
where develop branch should have been used for a chunk of code
2018-01-02 19:26:56 +00:00
lukebarnard
874a7bf1de
Merge branch 'develop' into luke/fix-room-list-group-store-leak
2018-01-02 16:19:37 +00:00
Aidan Gauland
35780f5ae0
Remove use of deprecated React.PropTypes
...
Replace all uses of React.PropTypes with PropTypes and importing PropTypes from
'prop-types'.
2017-12-26 14:03:18 +13:00
Luke Barnard
d292dab9c6
More doc
2017-12-15 17:30:21 +00:00
Luke Barnard
56affd3d42
Rename for clarity
2017-12-15 17:29:06 +00:00
Luke Barnard
653137f6ec
Update comment
2017-12-15 17:21:20 +00:00
Luke Barnard
961d5e1868
Split updatedSelectedTagsRooms
...
because we don't need to get the rooms for all groups when
the filtered tags change.
2017-12-15 14:23:35 +00:00
Luke Barnard
34e455c6fc
Fix leaking of GroupStore listeners in RoomList
2017-12-15 14:12:21 +00:00
Luke Barnard
df1134f092
Use "shared" DMRoomMap
2017-12-14 16:34:49 +00:00
Luke Barnard
3732fd29d5
Comments for instance variables
2017-12-14 16:17:06 +00:00
Luke Barnard
aac5bcfe80
Attempt to improve TagPanel performance
...
by only recalculating rooms to show (for a given group) when a group updates.
2017-12-05 11:25:30 +00:00
Luke Barnard
45bcb6f2ed
Implement TagPanel (or LeftLeftPanel) for group filtering
...
This allows for filtering of the RoomList by group. When a group is selected, the room list will show:
- Rooms in the group
- Direct messages with members in the group
A button at the bottom of the TagPanel allows for creating new groups, which will appear in the panel following creation.
2017-11-29 16:53:43 +00:00
Stefan Parviainen
df6d5cc2b4
Pass plain components, rather than functions returning them
2017-11-14 20:09:52 +01:00
Stefan Parviainen
3afbaf61e7
Refactor i18n stuff a bit
2017-11-13 20:19:33 +01:00
Luke Barnard
151f9917b1
Fix group invites such that they look similar to room invites
...
- Change GroupInviteTile to use RoomTile CSS
- Give group invites their own sub list, with heading "Community Invites"
2017-11-03 12:19:37 +00:00
Stefan Parviainen
15d1dc1f3b
Fix indentation
...
Signed-off-by: Stefan Parviainen <pafcu@iki.fi>
2017-10-15 16:57:22 +02:00
Stefan Parviainen
1f44233e05
Better translations in RoomList.js
...
Signed-off-by: Stefan Parviainen <pafcu@iki.fi>
2017-10-12 21:24:45 +02:00
Luke Barnard
d3f9a3aeb5
Run eslint --fix
...
Fixing 1000s of lint issues. Some rules cannot be `--fix`ed but this goes some way to linting the entire codebase.
2017-10-11 17:56:17 +01:00
David Baker
add91f9a7d
Update when a group arrives
2017-09-21 16:28:49 +01:00
David Baker
3c3328c5f1
Merge remote-tracking branch 'origin/develop' into dbkr/group_userlist
2017-09-13 16:34:39 +01:00
David Baker
757bc9fe32
Update roomlist when an event is decrypted
...
Events are now decrypted asynchronously, so are not decrypted
at the time of the Room.timeline which is when our RoomList
got the chance to update. It needs to update once the event has
been decrypted.
Ideally we would not update the whole room list order, but this is
how all the room list re-ordering happens right now, so staying
consistent with this.
Fixes https://github.com/vector-im/riot-web/issues/5020
2017-09-12 14:47:26 +01:00