Commit graph

216 commits

Author SHA1 Message Date
Luke Barnard
28e8ce967f Correctly unregister group store listener when unmounting RoomList 2018-05-01 11:38:57 +01:00
Luke Barnard
023daef4b7 Refactor GroupStores into one global GroupStore
Take a step closer to a flux-like architecture for group data, for
the purposes of providing features that require it.

Now the app has a single GroupStore that can be poked to fetch
updates for a particular group.
2018-05-01 11:24:17 +01:00
Luke Barnard
39e9d52c04 Make sure to proxy special prop ref 2018-03-27 13:04:26 +01:00
Luke Barnard
b80568b1c5 Wrap GeminiScrollbar in a component, enabled forceGemini
Fixes https://github.com/vector-im/riot-web/issues/6294
2018-03-27 13:04:26 +01:00
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