Commit graph

163 commits

Author SHA1 Message Date
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
Luke Barnard
a95f6a9804 Implement transparent RoomTile for use in some places
where a transparent appearance is required (i.e. in MemberInfo
or ChatCreateOrReuseDialog)
2018-03-05 12:36:02 +00:00
lukebarnard
dfecad181a Swap RoomList to react-beautiful-dnd 2018-01-18 17:59:29 +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
dad797d4a2 Run linting --fix 2017-11-16 13:19:36 +00:00
Travis Ralston
ae10a11ac4 Convert synced settings to granular settings
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-29 01:43:52 -06: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
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
saul.kredi@krutt.org
159a920dc8 Better RTL support 2017-06-03 18:52:45 +03: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
Matthew Hodgson
238f59dc87 return the event from RoomTile's onClick to distinguish clicks from keypresses 2017-04-20 14:16:45 +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
fb6252a16b fix invite highlights take 3 2017-04-19 00:16:17 +01:00
Matthew Hodgson
4a9c168682 fix invite highlights 2017-04-19 00:13:01 +01:00
Matthew Hodgson
abf2300c0d highlight invites correctly 2017-04-19 00:09:03 +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
c1c3956df4 fix bugs, and handle shortcircuit react when updating roomtile 2017-04-18 19:28:24 +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
1f788feacd Merge the two RoomTile context menus into one
This will require riot-web changes https://github.com/vector-im/riot-web/pull/3395
2017-03-09 17:03:57 +00:00
Luke Barnard
391886cac4 Remove dis as a dep in RoomTile 2017-03-06 17:45:25 +00:00
Luke Barnard
bf348a0f78 Instead of listening for view_room, use a callback
But make sure that nothing other than the callback is done when RoomTile is clicked.
2017-03-06 17:44:29 +00:00
Luke Barnard
ca5c2fb82e Allow user to choose from existing DMs on new chat
When creating a new chat with one person, show a dialog that asks the user whether they'd like to use an existing chat or actually create a new room.

Fixes https://github.com/vector-im/riot-web/issues/2760
2017-03-03 13:48:37 +00:00
Richard van der Hoff
770820e6fa Fix a bunch of lint complaints 2017-01-24 22:41:52 +00:00
Richard van der Hoff
6dd46d532a Merge remote-tracking branch 'origin/develop' into rav/hotkey-ux 2017-01-24 20:47:24 +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
Matthew Hodgson
b76b0f755d fix context menu bg 2017-01-20 02:47:47 +00:00
Jani Mustonen
959163f2ef Proper accessible buttons 2017-01-13 19:36:41 +02:00
Jani Mustonen
041196d729 Added quick search functionality 2017-01-13 19:36:40 +02:00
Jani Mustonen
8d79716421 Turned the links to buttons to comply with MDN's recommendations 2017-01-13 19:36:40 +02:00
Jani Mustonen
ad072cc179 Turned buttons from divs to links. Makes it possible for screen readers and hotkeys to recognize the buttons. 2017-01-13 19:36:40 +02: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
David Baker
690309adfc Bring back the little green men without slowness
Introduces a singleton DMRoomMap that subscribes to account data to keep itself up to date so we don't have to keep doing the map inversion for each room tile.
2016-09-26 18:02:14 +01:00
Matthew Hodgson
40ba1ff5aa disable LGM badges for DMs temporarily - see https://github.com/vector-im/vector-web/issues/2343 2016-09-24 00:43:46 +01:00
Matthew Hodgson
0046ae50b5 switch to 3-digit formatting for counts 2016-09-17 02:39:19 +01:00
wmwragg
45f17eb973 Added incomingCallBox to header and removed from roomTile 2016-09-15 14:39:34 +01:00
Matthew Hodgson
83209197f4 Merge branch 'develop' into matthew/notif-panel 2016-09-11 02:38:16 +01:00
Matthew Hodgson
bae6409edb show badge menu on RoomTile hoverover 2016-09-11 00:30:43 +01:00
David Baker
590d6d3ee8 Merge remote-tracking branch 'origin/develop' into dbkr/memberinfo_list_rooms 2016-09-09 16:22:48 +01:00
David Baker
aa0f15c46e List common rooms in MemberInfo 2016-09-09 16:15:01 +01:00
wmwragg
a6b0a7d5dc Should supply the roomId 2016-09-09 15:01:40 +01:00
wmwragg
17b75a589f Added the little green men for direct message rooms 2016-09-09 14:36:51 +01:00
wmwragg
840bfe84c1 Refactor so that the tooltip positional tweaks can be done in CSS rather than passed in as parameters 2016-09-09 06:57:30 +01:00
wmwragg
721baf8d42 Tolltip tweak to not require the passing in of the parent 2016-09-04 07:42:09 +01:00
wmwragg
03e74f48f8 Positioned Tooltip better 2016-09-03 13:44:44 +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
bffefd9261 Tweak of the RoomTooltip to use DOM element for the parent rather than a React component 2016-09-02 18:41:44 +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
wmwragg
c362d4ff01 Added updating of count when room tile notification state changed 2016-08-23 12:40:28 +01:00
David Baker
fc2c62e896 We can use the new consts here 2016-08-18 15:19:24 +01:00
David Baker
af48b8920e Various PR feedback 2016-08-18 14:00:14 +01:00
David Baker
9e45279894 Use enumalike thing 2016-08-18 13:44:58 +01:00
David Baker
73e486cc58 Hide red highlight badge in mute mode 2016-08-18 11:58:27 +01:00
David Baker
87f94bde62 Fix up notification setting listener in roomtile
The previous dispatch only did binary muted/non-muted but we now have 4 states. We now just listen for the push rules account data and update on that so it stays in sync if the pishrules are changed elsewhere.

Also add util functions used here for getting the notif state and in vector for both getting and setting it.
2016-08-17 18:26:37 +01:00
Matthew Hodgson
3704e2c648 Merge pull request #402 from matrix-org/wmwragg/room-tag-menu
Wmwragg/room tag menu
2016-08-11 08:59:32 -05:00
Aviral Dasgupta
4c1dcb924b reskindex and use sdk.getComponent for EmojiText 2016-08-11 07:55:12 +05:30
wmwragg
6d1eebe6f2 Resized the avatar back to 24px, from 25px, as it has to be even so that the Text avatar aligns vertically correctly 2016-08-10 17:01:06 +01:00
wmwragg
e2d3631e7c Menu colour now changeable, and leave room item hooked up 2016-08-10 16:34:49 +01:00
wmwragg
667264420c hover state elements for the room tag menu, allong with CSS class updates 2016-08-10 14:46:05 +01:00
Aviral Dasgupta
09e8a45cde Add EmojiText component for emoji replacement. 2016-08-10 00:31:51 +05:30
wmwragg
75e1277961 Initial pass of the tag menu, still lots of tweaking and bugfixing to do, but most of the mechanics are there now 2016-08-08 16:55:27 +01:00
wmwragg
5b812fead9 Initial RoomTagContextMenu wired in 2016-08-05 15:48:28 +01:00
wmwragg
80e4a99477 Merge branch 'develop' into wmwragg/room-tag-menu 2016-08-05 15:27:14 +01:00
wmwragg
4a46aba0c2 Added new onClick function for the avatar, but not wired in yet, waitin go pull up from develop once previous commits have been merged 2016-08-05 15:24:53 +01:00
wmwragg
990da61a61 Fixed regression of click propogation 2016-08-04 16:25:09 +01:00
wmwragg
d204b043e5 Changed state from mute to mentions only 2016-08-04 16:17:21 +01:00
wmwragg
c1cfbd6b59 Corrected comment typo 2016-08-03 14:47:53 +01:00
wmwragg
8e19532e5a Hover state for badges, now only on the badges themselves 2016-08-03 14:09:10 +01:00
wmwragg
2c2f689361 New design for long names 2016-08-02 14:46:47 +01:00
wmwragg
d16aa276e2 Positional tweaks for the name, badge and context menu, to better match design in both normal and collapsed states 2016-07-30 12:52:39 +01:00
wmwragg
398e56c9f9 Fixed bug where the long hover tooltip for a room name show an object rather than the name 2016-07-30 12:28:10 +01:00
wmwragg
1487c600ee Revert so that the 2016-07-29 17:53:18 +01:00
wmwragg
229664a624 first pass on css re-write 2016-07-29 17:49:42 +01:00
wmwragg
38f504bdcb Hide tooltip when badge clicked and collapsed 2016-07-29 11:10:16 +01:00
wmwragg
5889beacf3 Mute state now handled correctly 2016-07-28 17:24:58 +01:00
wmwragg
867b14d2ca Reposition context menu now that the styling is final 2016-07-27 18:14:46 +01:00
wmwragg
46a643ac38 Now the text spaceing is correct need to align cheveron 2016-07-27 18:10:45 +01:00
wmwragg
8246d9148c Initial context menu with all it's elements 2016-07-27 17:43:48 +01:00
wmwragg
6e7e091117 Refactor so that chevron and menu can be positioned independantly 2016-07-27 16:09:07 +01:00
wmwragg
0660b9feff Fixes to properly point to the moved components 2016-07-27 14:49:10 +01:00
wmwragg
6d141d1a7b Only allow none guests to access the context menu 2016-07-27 11:58:40 +01:00
wmwragg
4b26ac58af Re-modularised the context menus 2016-07-27 10:41:24 +01:00
wmwragg
dca4702b7b Fixed a bug where the contextual menu was being incorrectly positioned when zoom in on the webpage 2016-07-27 09:51:50 +01:00
wmwragg
477a17b49f Removed debug statement 2016-07-26 10:39:34 +01:00
wmwragg
9c9c5ec458 Menu context dohickey now sticks when menu shown 2016-07-25 17:18:45 +01:00
wmwragg
a218b4e8a3 Merge branch 'wmwragg/mention-state-indicator-round-3' into wmwragg/mention-state-menu
# resolved Conflicts:
#	src/components/views/rooms/RoomTile.js
2016-07-25 17:04:37 +01:00
wmwragg
8b8486a8d0 Move from +99 to 99+ for more than 99 messages 2016-07-25 14:39:15 +01:00
wmwragg
a69107f4f1 Trying to get the context menu dohicky to stick when menu open 2016-07-25 10:58:43 +01:00
wmwragg
c89904bc25 Initial unstyled mentions state notifier context menu 2016-07-22 17:30:31 +01:00
wmwragg
9b318e8f61 Getting the corrct height for the placing the context menu 2016-07-22 16:12:20 +01:00
wmwragg
e4dd6c8dbe Browser tooltip being used instead of the HTML styled one. 2016-07-22 15:15:24 +01:00
wmwragg
6984a55b11 The tooltip now appears even when not collapsed when hover over the avater, to allow the full name to be shown 2016-07-22 14:58:09 +01:00
wmwragg
5d4b03c1f4 Put back clicking on the name to acces the room 2016-07-22 11:28:11 +01:00
wmwragg
922bb0f402 +99 badge when notifications are greater the 99 2016-07-21 18:50:07 +01:00
wmwragg
762873350a Badge dohickey shown on name hover and badge hover 2016-07-21 18:20:12 +01:00
wmwragg
4013ea75d0 Testing out the context menu 2016-07-21 17:44:31 +01:00
wmwragg
775fc97102 Slight refactor to better match current code 2016-07-21 14:33:54 +01:00