Commit graph

272 commits

Author SHA1 Message Date
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
David Baker
be8f0991a6 Avoid re-rendering RoomList on room switch
Introduce a class that consumes updates from the RoomViewStore and
announces to listeners if the active room ID is now or is no longer
the room ID they specified. Naming suggestions welcome: it's
currently called ActiveRoomObserver.

Avoids passing the selectedRoomId down from MatrixChat all the way
through the LeftPanel / RoomList / RoomSubList to the RoomTiles.

Also introduce a CallPreview class that listens directly for
RoomViewStore changes as the call preview in the left panel needs
to know when the room changes, so this allows this component to
update without having to update the entire left panel.
2017-09-11 16:59:09 +01:00
David Baker
9efa604706 Merge remote-tracking branch 'origin/develop' into dbkr/group_userlist 2017-08-30 17:39:47 +01:00
Michael Telatynski
edb449dfe5
we need to pass whether it is an invite RoomSubList explicitly (i18n) 2017-08-27 23:38:25 +01:00
David Baker
55998028b4 Show group invites in 'invites' section 2017-08-18 11:22:50 +01:00
David Baker
b1ca83bb9d Internationalise the drop targets
Unsure how these had got missed (and yet still had the translation
strings in the json)
2017-06-19 17:49:22 +01:00
daniel tygel
13c12811e7 typo 2017-06-19 13:22:23 -03:00
daniel tygel
aebe4fb88f add two strings to translation 2017-06-19 13:21:23 -03:00
daniel tygel
c418076c32 add two strings to translation 2017-06-19 13:20:16 -03:00
Luke Barnard
49b22fb6c6 Use an arrow function to allow this
This was causing `TypeError: Cannot read property '_getEmptyContent' of undefined` for those with custom tags.
2017-06-07 16:13:40 +01:00
David Baker
22df03944c Merge branch 'develop' into new-guest-access 2017-06-06 10:35:28 +01:00
Luke Barnard
cc8078837d Remove DM-guessing code (again)
Seems this got reverted somehow:
>the revert of https://github.com/matrix-org/matrix-react-sdk/pull/807 (ebfafb3639) also included the revert of https://github.com/matrix-org/matrix-react-sdk/pull/829
2017-06-05 16:57:30 +01:00
Luke Barnard
dd48b3f055 Add comment 2017-06-01 10:08:02 +01:00
Luke Barnard
40154df930 Show People/Rooms emptySubListTip even when total rooms !== 0 2017-05-30 16:14:27 +01:00
Luke Barnard
6f8d5b1db3 Remove spurious reference to otherTagNames 2017-05-30 16:10:19 +01:00
Matthew Hodgson
5c885922d9 Merge branch 'develop' into new-guest-access 2017-05-28 22:58:18 +01:00
Luke Barnard
ce17df0883 Unbreak the roomlist 2017-05-25 15:20:02 +01:00
Luke Barnard
7900bf1c7d Don't show "Drop to ..." if total rooms = 0 2017-05-25 13:55:37 +01:00
Luke Barnard
3185d3ed41 Re-add bouncing/callout animation to action buttons 2017-05-25 13:54:59 +01:00
David Baker
548f319816 Remove redundant role elements 2017-05-25 12:09:08 +01:00
David Baker
9337158a47 Separate classes for the different buttons
Also rename RoleButton to ActionButton because it's not being
given a Role any more.

Conflicts:
	src/component-index.js

cherry-picking commit 4a5821e.
2017-05-25 12:08:42 +01:00
David Baker
dc2274df54 Hide empty tips if collapsed 2017-05-25 12:05:06 +01:00
David Baker
3d3d89202e Year 2017-05-25 12:04:36 +01:00
David Baker
bff0577cb6 Add buttons to room sub list headers
Conflicts:
	src/component-index.js
	src/components/views/rooms/RoomList.js

cherry-picking commit ce119a6.
2017-05-25 11:49:45 +01:00
David Baker
d6d9a89453 Other empty sections no longer need to be greyed 2017-05-25 11:47:21 +01:00
David Baker
5c359e63ab Bulk change counterpart imports
to use languageHandler wrapper func
2017-05-25 11:39:08 +01:00
David Baker
5531f27435 Make the left panel more friendly to new users
https://github.com/vector-im/riot-web/issues/3609

Conflicts:
	src/components/views/rooms/RoomList.js

cherry-picking commit f5f35e3.
2017-05-25 11:24:45 +01:00
David Baker
d419c42a4f Squash merge https://github.com/matrix-org/matrix-react-sdk/pull/801 2017-05-23 15:16:31 +01:00
David Baker
3e7a31ac75 Revert "fix scroll behaviour on macs with no gemini"
This reverts commit 1347d9fa65.
2017-05-18 19:03:51 +01:00
David Baker
8fe3fa9178 Remove debug logging 2017-05-18 17:35:22 +01:00
David Baker
01955146e9 Prevent an exception getting scroll node
Don't try to findDOMNode before we're mounted as it makes react
angry.
2017-05-18 17:33:32 +01:00
David Baker
ebfafb3639 Revert "Merge pull request #807 from matrix-org/matthew/quick-search"
This reverts commit 0ad1d8caf3, reversing
changes made to 1189368aab.
2017-05-16 16:11:01 +01:00
David Baker
67c6a8b81d Revert "unbreak stack overflow which fires on tests due to mocked timers"
This reverts commit e69ea68133.
2017-05-16 16:02:13 +01:00
David Baker
eddc2af92d Revert "HOW DID THIS EVER WORK?"
This reverts commit 0d8d3c6710.
2017-05-16 16:01:54 +01:00
David Baker
7a949b6a45 Revert "oops, actually refresh roomlist when its state changes!"
This reverts commit 35a16edccc.
2017-05-16 16:01:32 +01:00
David Baker
b063c605a8 Revert "fix stupid typos in RoomList's shouldComponentUpdate"
This reverts commit b0288ebd89.
2017-05-16 16:01:14 +01:00
David Baker
714cd6a10f Revert "recalculate roomlist when your invites change"
This reverts commit ec6a1c4c75.
2017-05-16 16:00:34 +01:00
David Baker
387529d130 Revert "Merge pull request #859 from matrix-org/dbkr/left_panel_for_newbies_2"
This reverts commit 3366d3bbae, reversing
changes made to ceb71a4ef6.
2017-05-16 14:49:55 +01:00
David Baker
534f9277d4 Fix this/self fail in LeftPanel 2017-05-08 15:37:40 +01:00
David Baker
1a0ea29995 Remove redundant role elements 2017-05-05 17:51:14 +01:00
David Baker
4a5821e199 Separate classes for the different buttons
Also rename RoleButton to ActionButton because it's not being
given a Role any more.
2017-05-05 14:25:18 +01:00
David Baker
f86ca5bc97 Hide empty tips if collapsed 2017-05-04 18:08:04 +01:00
David Baker
72df43d22b Year 2017-05-04 15:46:24 +01:00
David Baker
306ea58578 Merge remote-tracking branch 'origin/develop' into dbkr/left_panel_for_newbies_2 2017-05-04 15:45:05 +01:00
Luke Barnard
d5b49a11d7 Merge pull request #829 from matrix-org/luke/fix-people-section-disappearing
Remove DM-guessing code
2017-05-04 14:15:28 +01:00
David Baker
ce119a6364 Add buttons to room sub list headers 2017-05-04 13:55:52 +01:00
David Baker
083d5bf463 Other empty sections no longer need to be greyed 2017-04-28 11:20:29 +01:00
David Baker
f5f35e3294 Make the left panel more friendly to new users
https://github.com/vector-im/riot-web/issues/3609
2017-04-28 11:10:21 +01:00
Luke Barnard
74e92d6c23 Remove DM-guessing code 2017-04-24 15:44:45 +01:00
Matthew Hodgson
1347d9fa65 fix scroll behaviour on macs with no gemini 2017-04-24 12:53:53 +01:00
Matthew Hodgson
0e5006b041 typo 2017-04-22 17:28:28 +01:00
Matthew Hodgson
1faecfd0f7 fix sticky headers on resize 2017-04-22 01:29:48 +01:00
Matthew Hodgson
ec6a1c4c75 recalculate roomlist when your invites change 2017-04-22 01:16:25 +01:00
Matthew Hodgson
b0288ebd89 fix stupid typos in RoomList's shouldComponentUpdate 2017-04-21 12:40:13 +01:00
Matthew Hodgson
35a16edccc oops, actually refresh roomlist when its state changes! 2017-04-20 15:47:59 +01:00
Matthew Hodgson
0d8d3c6710 HOW DID THIS EVER WORK? 2017-04-20 15:15:20 +01:00
Matthew Hodgson
e69ea68133 unbreak stack overflow which fires on tests due to mocked timers 2017-04-20 13:53:36 +01:00
Matthew Hodgson
5a3b4b6a60 various bug fixes:
don't redraw RoomList when the selectedRoom changes
keep passing selectedRoom through to RoomTiles so they have correct initial state
handle onAccountData at the RoomList, not RoomTile level
Fix some typos
2017-04-20 01:12:57 +01:00
Matthew Hodgson
9f99224a1f fix bugs from PR review 2017-04-19 17:59:06 +01:00
Matthew Hodgson
093b9a0b52 kick the roomtile on RoomState.members 2017-04-18 23:29:28 +01:00
Matthew Hodgson
8389a67c75 we don't need RoomTile specific focus in the end 2017-04-18 22:54:30 +01:00
Matthew Hodgson
015a4480e2 oops, wire up Room.receipt again, and refresh roomtiles on Room.timeline 2017-04-18 22:36:54 +01:00
Matthew Hodgson
c1c3956df4 fix bugs, and handle shortcircuit react when updating roomtile 2017-04-18 19:28:24 +01:00
Matthew Hodgson
062963b32f move focus-via-up/down cursors to LeftPanel 2017-04-18 17:49:28 +01:00
Matthew Hodgson
4fb9635175 nudge focus shortcut code further to working 2017-04-18 17:12:42 +01:00
Matthew Hodgson
9591ad31e6 fix bugs, experiment with focus pulling, make it vaguely work 2017-04-18 02:43:29 +01:00
Matthew Hodgson
da569c2c8d add constantTimeDispatcher and use it for strategic refreshes.
constantTimeDispatcher lets you poke a specific react component to do something
without having to do any O(N) operations.  This is useful if you have thousands
of RoomTiles in a RoomSubList and want to just tell one of them to update,
without either having to do a full comparison of this.props.list or have each
and every RoomTile subscribe to a generic event from flux or node's eventemitter

*UNTESTED*
2017-04-17 21:06:37 +01:00
Matthew Hodgson
691639d1e0 track RoomTile focus in RoomList, and stop the RoomList from updating during mouseOver 2017-04-15 13:25:32 +01:00
Luke Barnard
4a0988f83e Do not send the room with action
By not sending the room with the action, we prevent its state from being updated by registered views listening for on_room_read
2017-03-28 11:26:40 +01:00
Luke Barnard
f4dc7ae8b1 Improve zeroing of RoomList notification badges
Use an action and force an update when zeroing the number of notifications in a room. This is better than waiting for a `render` to happen at some point. This will hopefully fix https://github.com/vector-im/riot-web/issues/3257
2017-03-28 10:38:57 +01:00
Luke Barnard
7ecabe49d2 Fix people section DropTarget and refactor Rooms
- Set the verb for the people section to "tag as direct chat". This requires some CSS modifications to Riot because it's a long bit of text relative to, say, "demote".
 - Because it's quite useful to be able to set the DM status of a room with just a boolean, add a convenience function for guessing a DM member and setting the DM flag on that room with the resulting member.
2017-03-17 11:59:22 +00:00
Luke Barnard
ed22a74eaf Fix People section a bit
This does two things:
 - Sets `editable` to true for the "People" `RoomSubList` so that people can be dragged to favourites. This has the downside that you can drag a "People" to "Rooms", but it won't set the direct chat flag. This is because im.vector.fake.direct != m.direct, sadly.
 - Sets `alwaysShowHeader` to `true` so that the `IncomingCallDialog` can be showneven when there are no people in `sortedList`. Fixes https://github.com/vector-im/riot-web/issues/2956.
2017-03-16 11:31:47 +00:00
David Baker
18d4d3392a Fix a bunch of linting errors
eslint --fix and a few manual ones
2017-01-20 14:22:27 +00:00
Aviral Dasgupta
022eb575d9 Upgrade to babel6 and enable some presets. 2016-10-17 16:23:25 +01:00
David Baker
5b4b81f7dc Revert "Switch to babel 6" 2016-10-14 18:49:52 +01:00
Aviral Dasgupta
2d173d83b9 Upgrade to babel6 and enable some presets. 2016-10-02 17:27:45 +05:30
Matthew Hodgson
e1bd97d509 don't try to set DM data for guests 2016-09-16 16:15:34 +01:00
wmwragg
d3f50dc2da Tweaking the positoning of the incomingCallBox 2016-09-15 15:33:08 +01:00
wmwragg
45f17eb973 Added incomingCallBox to header and removed from roomTile 2016-09-15 14:39:34 +01:00
Matthew Hodgson
fd707f6f62 s/Direct Messages/People/ 2016-09-13 19:47:41 +01:00
Matthew Hodgson
83209197f4 Merge branch 'develop' into matthew/notif-panel 2016-09-11 02:38:16 +01:00
David Baker
9cff4d59ca Merge pull request #456 from matrix-org/dbkr/dm_rooms_correct_section
Don't always show DM rooms in Direct Messages
2016-09-09 17:35:02 +01:00
David Baker
4c5db7cc9f Don't always show DM rooms in Direct Messages
Favourites belong in favourites & parted ones belong in Historical, etc.
2016-09-09 17:23:15 +01:00
David Baker
6f2e0a4cdf Make rooms in MemberInfo update when necessary
Factor out the chunk of code that looks through a read receipt event
to see if it contain a read receipt from a given user, now we use it
in 2 places.
2016-09-09 16:59:59 +01:00
Matthew Hodgson
904348e62a Merge branch 'develop' into matthew/notif-panel 2016-09-09 11:12:52 +01:00
Matthew Hodgson
dce2dd36ec Merge pull request #448 from matrix-org/wmwragg/one-to-one-chat
Wmwragg/one to one chat
2016-09-09 10:46:11 +01:00
Matthew Hodgson
db61d8e8ad another null check 2016-09-09 02:28:14 +01:00
Matthew Hodgson
4aef352a5c update to use new API based on js-sdk PR input 2016-09-08 22:48:44 +01:00
David Baker
ec4086c5fc API for (un)marking rooms as DM rooms 2016-09-07 17:46:45 +01:00
wmwragg
7dfb8857d8 Merge branch 'develop' into wmwragg/one-to-one-chat 2016-09-07 17:22:10 +01:00
David Baker
df1cc8748f Change references to MatrixTools to Rooms
or remove where they were unused
2016-09-07 11:33:58 +01:00
David Baker
094080629d Actually commit changed path 2016-09-07 10:19:39 +01:00
David Baker
d5b23e9e0e Save guessed DM rooms to account data
Also bugfix
2016-09-06 17:43:39 +01:00
David Baker
8401323156 Hopefully read DM rooms from account data 2016-09-06 16:39:21 +01:00
David Baker
50ef695740 Fix: conference rooms were no longer hidden 2016-09-05 17:42:22 +01:00
wmwragg
f9ab2fa957 When zoomed in, the sticky headers should correctly position themselves 2016-09-04 08:01:04 +01:00
wmwragg
405dcf76eb Further tweaks to the tooltip to better handle its position, and simplify it's use 2016-09-03 12:44:55 +01:00
wmwragg
4c05edb71b Refactor of the RoomTooltip, so that it is easier to use, and also works with Safari 2016-09-02 15:47:40 +01:00
Matthew Hodgson
5543c126e6 fix tests 2016-08-30 15:22:52 +01:00
wmwragg
c30ff57c62 Better comments 2016-08-30 12:29:25 +01:00
wmwragg
8061a2f279 Fixed historical scetion not scrolling up when clicked if not hidden and stuck 2016-08-30 11:55:51 +01:00
wmwragg
83c4fd4b2f Code clean up, and better comments 2016-08-30 10:45:17 +01:00
wmwragg
2b1ed707c4 Better comments, and correct bottom header sticky calc to allow clicking 2016-08-28 19:18:41 +01:00
wmwragg
123d9b56c8 calculating the scrollAreaHeight correctly taking into account the different scroll methods available on macOSX, i.e. System Preferences>General>Show Scroll Bars 2016-08-28 16:25:20 +01:00
wmwragg
8f7d3394e6 Always setup stickies, even if we aren't going to use them so that the following map can fire 2016-08-28 12:02:20 +01:00
wmwragg
7631539584 Fixed incorrect init calculation of originalPosition attribute 2016-08-28 11:39:47 +01:00
wmwragg
73dd05b01d Corrected incorrect offset from top of window for the scrollArea 2016-08-26 18:31:02 +01:00
wmwragg
8ccb1d482a Better comments, and adjusted the top sticky logic, so that the very top header isn't allways stuck 2016-08-26 15:52:57 +01:00
wmwragg
5f9c794f0c Tweaking autoscroll to only adjust if header stuck at top and not at bottom 2016-08-26 15:36:16 +01:00
wmwragg
b9e95865af Click on stuck header scrolls to that header, collapses expands for none stuck header 2016-08-26 15:09:13 +01:00
wmwragg
71e829fd32 Getting click to not collapse expand when header is stuck 2016-08-26 14:36:39 +01:00
wmwragg
774e24a3b4 Added some logic to turn off sticky headers when the scroll area isn't large enough to support them 2016-08-26 11:01:04 +01:00
wmwragg
c8c2f733e2 Re-calculate sticky header positions when sublist header is clicked 2016-08-26 09:56:07 +01:00
wmwragg
7fcdd0f77a Initial pass at sticky headers for the LHS panel section labels 2016-08-25 19:46:01 +01:00
wmwragg
edb7301b37 Moving the drirect messages above rooms 2016-08-22 14:10:51 +01:00
wmwragg
7713f0d587 refactoring out the direct message section 2016-08-11 17:32:39 +01:00
wmwragg
4aea2caefc Initial pass at creating a direct message section 2016-08-11 16:45:19 +01:00
Richard van der Hoff
8fe470bce1 Cancel calls to rate-limited funcs on unmount
The tests were throwing up warnings about state being accessed, and null
MatrixClients being called, after component unmount.
2016-08-10 13:39:47 +01:00
Richard van der Hoff
a1d3db76e5 Hack around a react warning
when login completes, we replace the whole state, which means we unset
collapse_lhs, which then leads to complaints from the RoomList.

I think the 'default view' for MatrixChat ought to be factored out to another
component, which could manage collapse_lhs properly; but for now, hack around
it.
2016-08-09 23:57:36 +01:00
wmwragg
2c2f689361 New design for long names 2016-08-02 14:46:47 +01:00
wmwragg
cf22a5fecc Merge up from develop 2016-07-30 12:10:43 +01:00
Richard van der Hoff
c8df9148b3 Remove relayoutOnUpdate prop on gemini-scrollbar
The latest gemini-scrollbar makes relayoutOnUpdate redundant, so update to it
and remove the properties.
2016-07-27 11:35:48 +01:00
wmwragg
3dd83922f1 Tooltip positioning tweaked 2016-07-22 11:12:11 +01:00
Richard van der Hoff
d953ac4e6b Don't relayout scrollpanels every time something changes
Gemini's habit of reflowing everything everytime anything changes at all makes
for an unresponsive app. Turn it off everywhere we use gemini.
2016-04-20 12:25:19 +01:00
Matthew Hodgson
4fb31662e1 fix tooltip offset 2016-04-15 22:24:12 +01:00
Matthew Hodgson
a06b420942 wire up searchbox filtering 2016-04-15 17:55:00 +01:00
Matthew Hodgson
383779f718 oops, actually fix https://github.com/vector-im/vector-web/issues/308 properly... 2016-03-18 20:08:47 +00:00
Matthew Hodgson
cb9da69382 doh 2016-03-18 20:01:19 +00:00
Matthew Hodgson
0250192477 handle tagging for kicked rooms correctly 2016-03-18 19:59:58 +00:00
Matthew Hodgson
bfbb7a661e special case to include kicked rooms as per https://github.com/vector-im/vector-web/issues/308 2016-03-18 19:45:04 +00:00
David Baker
e915d7e215 Change some refreshRoomList() calls to dalyed ones to avoid hammering on catchup.
Fixes https://github.com/vector-im/vector-web/issues/544
2016-02-25 11:06:47 +00:00
Matthew Hodgson
a44ef5bd48 fix incomingCallBox vertical offset if MatrixToolbar is present 2016-02-19 02:21:17 +00:00
David Baker
9525808cd0 Merge pull request #137 from matrix-org/dbkr/roomlist_unregister_event_handlers
Unregister some event handlers we'd registered but never unregister.
2016-02-05 10:48:22 +00:00
David Baker
63776509a6 Make the function call-rate limiting a generic thing and use it in more places. 2016-02-04 18:06:24 +00:00
David Baker
c0d93a78bc Unregister some event handlers we'd registered but never unregister. 2016-02-04 15:55:24 +00:00
David Baker
f745e941ec Fix exception thrown if any custom tags are set 2016-01-28 09:41:46 +00:00
Kegan Dougal
675e0f176f Add onShowMoreRooms prop for kicking gemini 2016-01-22 15:46:38 +00:00
David Baker
ba51c68844 Merge remote-tracking branch 'origin/notif_sync' into unread_sync 2016-01-07 11:44:50 +00:00
David Baker
99abd58f1a Merge remote-tracking branch 'origin/develop' into notif_sync 2016-01-07 10:41:16 +00:00
David Baker
287da54fbc Address PR comments 2016-01-07 10:38:44 +00:00
Matthew Hodgson
0772f50fab update copyright for 2016 2016-01-07 04:06:52 +00:00