Commit Graph

1415 Commits

Author SHA1 Message Date
Richard van der Hoff
f09861794d Avoid having react interface methods call each other
Factor out the common bits of componentWillMount and componentWillReceiveProps
to a common function.
2016-04-21 14:14:08 +01:00
David Baker
3381e2b057 Merge remote-tracking branch 'origin/develop' into dbkr/email_notifs 2016-04-21 10:12:27 +01:00
Richard van der Hoff
fa34dee091 Rewrite Read-receipt animation
... hopefully fixing https://github.com/vector-im/vector-web/issues/1437 in the
process.

The idea here is that, when we remove a read-receipt from the DOM, we stash its
position in a map. Then, when the read-receipt appears again attached to
another event, we know where to start the transition.
2016-04-20 23:06:53 +01:00
Richard van der Hoff
04ef0262af Various fixes to the velociraptor
* handle having a single child, rather than an array of children

* Correctly animate children which are added at the same time as the
  Velociraptor, rather than added afterwards

* Set the child to hidden at the end of the initial animation, if that is
  required by the style property.
2016-04-20 22:21:07 +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
Richard van der Hoff
86a5e1f38d Reduce number of renders on received events
TimelinePanel rerenders are expensive, so we want to do as few as possible. So,
when we get a new timeline event, make sure that we update the RM and add the
new event at the same time.
2016-04-19 23:45:51 +01:00
Richard van der Hoff
dcd81da856 Fix test failures introduced by last PR 2016-04-19 21:10:23 +01:00
Richard van der Hoff
568e7aef8b Avoid rerendering EventTiles when not necessary
Each individual eventtile isn't particularly expensive, but when you have 500
of them, they start adding up. Shuffle some of the stuff into MessagePanel, so
that we can shouldComponentUpdate EventTiles properly.
2016-04-19 19:41:43 +01:00
Richard van der Hoff
a6bcbd4f61 Speed up processing of TimelinePanel updates on new events
Avoid twiddling state flags, so that we can avoid redundant re-renders.
2016-04-19 18:29:25 +01:00
Richard van der Hoff
683faf571f Fix syntax error which prevented build
Remove a spurious } which was introduced in PR #275
2016-04-19 13:32:14 +01:00
Matthew Hodgson
8517b6558b Merge pull request #275 from matrix-org/matthew/memberlist-sort
Fix many thinkos in sorting the MemberList
2016-04-18 19:15:20 +01:00
Richard van der Hoff
7b405d0d9c Don't setState after unmounting a component
Fix a warning which happens if a LinkPreviewWidget is unmounted before the
preview request completes.

Also add missing .done to promise chain
2016-04-18 14:52:41 +01:00
Matthew Hodgson
a95c45eb96 final(?) PR fixes 2016-04-18 14:48:55 +01:00
Matthew Hodgson
60f92fd15b PR feedback 2016-04-18 14:07:20 +01:00
Matthew Hodgson
b2d0950a46 oops, remove debug logging 2016-04-18 01:45:46 +01:00
Matthew Hodgson
b949e78683 Improve ordering of memberlist by absolutizing lastActive correctly
Change ordering of memberlist to not try to compare lastActive of 'currentlyActive' users, as lastActive may will be a complete lie as it only gets updated when currentlyActive transitions to false (i think?)
Remove order by online/idle/offline in favour of "currently active, ordered by power and then alphabetic name, followed by last active, followed by offline"
Add commented-out code to track last-spoken-within-a-room ordering.
Fix kludges due to SYJS-28 (depends on JS PR landing)
2016-04-18 01:35:40 +01:00
Matthew Hodgson
eeb9abdf81 trailing whitespace 2016-04-18 01:34:45 +01:00
Richard van der Hoff
716eb1eb1b Drop workaround for object.onLoad
https://github.com/facebook/react/pull/5781 has been fixed in React 15.0, so
drop our workaroud for it.
2016-04-17 21:46:27 +01:00
Richard van der Hoff
336d91dadb Merge pull request #272 from matrix-org/rav/fix_roomname
Make sure that we update the room name
2016-04-17 18:12:18 +01:00
Matthew Hodgson
f4573bae49 remove premie optimisation of tintablesvg shouldComponentUpdate 2016-04-17 00:28:20 +01:00
Matthew Hodgson
8db14bde60 switch Tinter from using dispatch to a synchronous update when changing the colourscheme, to avoid CSS getting out of sync with SVG colours 2016-04-16 01:00:10 +01:00
Matthew Hodgson
4fb31662e1 fix tooltip offset 2016-04-15 22:24:12 +01:00
Matthew Hodgson
19770563f4 add cancelButton to simpleHeader 2016-04-15 22:16:19 +01:00
Matthew Hodgson
009781dac7 prep for RightPanel full collapse 2016-04-15 18:45:40 +01:00
Matthew Hodgson
f625e2d693 fix up UserSettings a bit and add fading 2016-04-15 18:30:13 +01:00
Matthew Hodgson
a06b420942 wire up searchbox filtering 2016-04-15 17:55:00 +01:00
Matthew Hodgson
7c8d7e5361 move memberlist bottom into rightpanel 2016-04-15 15:53:14 +01:00
Richard van der Hoff
8680afe46f Make sure that we update the room name
It turns out that RoomState.events is fired before Room.name is updated; make
sure that we pick up the latter and do the update.
2016-04-15 10:01:39 +01:00
Matthew Hodgson
26f135c7b0 fix 'undefined' class bug on TintableSvg 2016-04-14 21:44:05 +01:00
Matthew Hodgson
2d71d4422e make selected room more skinnable 2016-04-14 21:11:10 +01:00
Matthew Hodgson
0741e8a5c1 fix testing UI hack 2016-04-14 19:11:20 +01:00
Matthew Hodgson
81d5e16225 fix @aviraldg thinko on needing a key on arrays :) 2016-04-14 19:11:09 +01:00
Matthew Hodgson
21fd5078f9 fix NPE on getEventTileOps 2016-04-14 17:39:45 +01:00
Richard van der Hoff
3fd9b29422 Merge pull request #271 from matrix-org/rav/avoid_codepoint_at
Hack around absence of String.codePointAt on PhantomJS
2016-04-13 16:37:00 +01:00
Richard van der Hoff
85277a237a Merge pull request #270 from matrix-org/rav/issue_1314_federated_rooms
RoomView: Handle joining federated rooms
2016-04-13 16:36:46 +01:00
Matthew Hodgson
1e294cb10c fix 'mark all read' 2016-04-13 12:46:36 +01:00
Richard van der Hoff
ec5ca1ca28 s/roomAlias/roomAddress/ to reduce confusion 2016-04-13 12:26:40 +01:00
Matthew Hodgson
6509bc0589 oops, missed another fade 2016-04-13 11:17:09 +01:00
Matthew Hodgson
ead5418214 oops, missed a fade 2016-04-13 11:17:09 +01:00
Richard van der Hoff
047524d093 Merge pull request #269 from matrix-org/rav/stop_client_on_unmount
Stop the MatrixClient when the MatrixChat is unmounted
2016-04-13 11:05:02 +01:00
Richard van der Hoff
5706a879d0 Hack around absence of String.codePointAt on PhantomJS
I've been trying to get some tests working under PhantomJS, which appears not
to support String.codePointAt (which is, to be fair, an ES6 addition). For our
limited usecase, it's easier to implement the functionality from first
principles than to try to polyfill support.
2016-04-13 10:35:07 +01:00
Richard van der Hoff
93a142480c RoomView: Handle joining federated rooms
This hopefully fixes an issue where joining a federated room via the directory
would get stuck at a spinner of doom, due to us not recognising the room in
question when it came down the /sync. We now catch the room id in the response
from the /join, and use it to match up the room in onRoom.

props.roomAlias, props.roomId, and state.room.roomId were somewhat confusing,
so I've tried to rationalise them:

 * props.roomAlias (named thus to stop you assuming it's a room id) is the
   thing that the parent component uses to identify the room of interest, and
   can be either an ID or an alias (ie, it replaces props.roomId and
   props.roomAlias)

 * Everything that needs a room ID now has to get it from state.room.roomId.
2016-04-13 08:59:28 +01:00
Matthew Hodgson
f3793b556e fix super-annoying key warning from react 2016-04-13 02:02:55 +01:00
Matthew Hodgson
92f58b6927 don't try to do preview URLs of matrix IDs (yet :D) 2016-04-13 01:54:06 +01:00
Matthew Hodgson
4b1ff51a42 show a spinner on MemberInfo when updating a member. and label 'disinvite' correctly 2016-04-13 01:46:10 +01:00
Matthew Hodgson
bfec6d4ed9 merge aviral's audio player 2016-04-13 00:00:24 +01:00
Richard van der Hoff
1361333fdc Stop the MatrixClient when the MatrixChat is unmounted
The MatrixClient never gets unmounted in the real app, but I've been working on
some tests which would rather like to be able to create and destroy MatrixChats
and not have the clients hang around forever.
2016-04-12 18:38:10 +01:00
Matthew Hodgson
6a6739e0f3 fix context menu on tiles without widgets 2016-04-12 18:32:55 +01:00
Matthew Hodgson
a01e6d46b9 Merge pull request #268 from matrix-org/matthew/fadable
make the UI fadable to help with decluttering
2016-04-12 18:05:10 +01:00
Matthew Hodgson
3a2d5c4ba5 spinner on saving room settings 2016-04-12 18:01:49 +01:00
Matthew Hodgson
11f3d5f993 make the UI fadable to help with decluttering 2016-04-12 17:18:32 +01:00
David Baker
fcab259511 Support for email notifs
Add utility funcs in UserSettingsStore and pass threepids to Notifications so it can do email notif stuff
2016-04-12 16:17:04 +01:00
Matthew Hodgson
1d5f234f2c add 'mark all read' button 2016-04-12 14:29:36 +01:00
Matthew Hodgson
089963b4c7 timestamps are permalinks 2016-04-12 13:33:59 +01:00
Matthew Hodgson
38d27cdbb0 improve 'no known servers' error 2016-04-12 13:00:52 +01:00
Matthew Hodgson
f9785f68af filter out conference bots from membership list 2016-04-12 01:54:51 +01:00
Matthew Hodgson
bf1e0da598 fix ability to save room settings if you don't have ops 2016-04-12 01:27:12 +01:00
Matthew Hodgson
f9c7ae1ab9 Merge pull request #260 from matrix-org/matthew/preview_urls
URL previewing support
2016-04-11 23:55:15 +01:00
Matthew Hodgson
9845e5ef0e move all the localstorage crap to TextualBody 2016-04-11 23:53:36 +01:00
Matthew Hodgson
8e48bed346 apparently we don't need this. i'm lost now 2016-04-11 17:32:10 +01:00
Richard van der Hoff
e051d1528c Remember to load new timeline events
Fixes a bug where we wouldn't load new timeline events if they arrived when we
were scrolled up (https://github.com/vector-im/vector-web/issues/1367)
2016-04-11 14:05:04 +01:00
Matthew Hodgson
825e6702ef stop ctrl-tab etc from triggering an autocomplete 2016-04-10 14:27:30 +01:00
Matthew Hodgson
2e772e2f19 fix whitespace on multiupload prompt 2016-04-10 14:02:22 +01:00
Matthew Hodgson
6c372d37f7 add the concept of eventTileOps for managing widget visibility based on vdh's PR feedback 2016-04-08 21:42:29 +01:00
Matthew Hodgson
23d6edbf63 forceupdate the whole scrollPanel rather than the geminiPanel at vdh's PR review request 2016-04-08 20:21:27 +01:00
Matthew Hodgson
4abc5d0d36 add comment 2016-04-08 20:21:12 +01:00
Richard van der Hoff
967528608f Merge pull request #265 from matrix-org/rav/limit_pagination
Stop trying to paginate after we get a failure
2016-04-08 16:00:51 +01:00
Richard van der Hoff
15d0df5d3b Stop trying to paginate after we get a failure
Once TimelineWindow.paginate fails to return any results, set
can*Paginate=false, and use it as a flag to stop us trying to paginate any
further.
2016-04-08 15:05:15 +01:00
Matthew Hodgson
1d8b08040e incorporate PR feedback 2016-04-07 18:58:50 +01:00
Matthew Hodgson
1125c62505 add comments for thumbHeight 2016-04-07 18:10:35 +01:00
Matthew Hodgson
7884c13d0d Merge branch 'develop' into matthew/preview_urls 2016-04-07 17:25:48 +01:00
David Baker
a0c41e2d57 Fix password resetting
Fixes https://github.com/vector-im/vector-web/issues/1349
2016-04-07 12:59:30 +01:00
Richard van der Hoff
b64604964d Fix exception in key handling
Fix a typo introduced in PR #262 which caused scroll keys to throw console
errors.
2016-04-07 12:05:07 +01:00
Richard van der Hoff
8b8ee21765 Catch pageup/down and ctrl-home/end at the top level
Make the scroll keys work when the focus is outside the message panel.
2016-04-05 13:40:36 +01:00
Richard van der Hoff
c5c9cad0cb Merge pull request #261 from matrix-org/rav/issue_1151
Fix an issue where the scroll stopped working.
2016-04-05 12:55:59 +01:00
Richard van der Hoff
6a82d1a94c Merge pull request #254 from matrix-org/rav/fix_rm_animation
Fix a bug where we tried to show two ghost read markers at once.
2016-04-05 12:55:38 +01:00
Richard van der Hoff
0d7adae100 Back out animation timing changes for now
... since they seem to be a bit contentious
2016-04-05 10:46:08 +01:00
Richard van der Hoff
51fe77122b Fix an issue where the scroll stopped working.
Under certain conditions, it was possible to get stuck in a state where any
user-initiated scroll would be met with "Working around
vector-im/vector-web#528" and overridden. Fix this by removing the duplication
between _lastSetScroll and recentEventScroll, and using _lastSetScroll which is
more reliable.
2016-04-05 10:41:32 +01:00
Matthew Hodgson
1de4e0d2dd label previews with the target URL if all else fails 2016-04-04 01:06:54 +01:00
Matthew Hodgson
96b0f42db2 support lightboxes for image previews 2016-04-04 00:18:18 +01:00
Matthew Hodgson
0eb7b627fc ugly impl to track whether to hide the widget or not 2016-04-03 23:30:48 +01:00
Matthew Hodgson
e61c99f7f3 support cancelling previews 2016-04-03 02:50:36 +01:00
Matthew Hodgson
f9c914c40e specify timestamps for historical previews 2016-04-03 01:21:56 +01:00
Matthew Hodgson
f195d2eb24 Merge branch 'develop' into matthew/preview_urls 2016-04-03 01:10:33 +01:00
Matthew Hodgson
2d289b321d Merge branch 'develop' into matthew/preview_urls 2016-04-03 01:09:50 +01:00
Matthew Hodgson
2d3a237101 Merge pull request #258 from aviraldg/fix-219
File upload improvements
2016-04-02 23:07:50 +01:00
Matthew Hodgson
d5ed8f7eb7 Merge pull request #257 from aviraldg/fix-65
Show full-size avatar on MemberInfo avatar click
2016-04-02 23:02:46 +01:00
Aviral Dasgupta
0574a28e36 Add confirmation dialog for file upload
fixes vector-im/vector-web#92
2016-04-03 02:22:05 +05:30
Aviral Dasgupta
0eeaac88b4 Allow multiple files to be uploaded at once
fixes vector-im/vector-web#219
2016-04-03 01:26:50 +05:30
Aviral Dasgupta
31e09ebe63 Show full-size avatar on MemberInfo avatar click
fixes vector-im/vector-web#65
2016-04-03 00:54:23 +05:30
Aviral Dasgupta
4ef148eaec whitelist <u> tag (fixes vector-im/vector-web#1339) 2016-04-02 22:15:29 +05:30
Matthew Hodgson
bffb482133 add FIXME 2016-04-02 02:46:19 +01:00
Matthew Hodgson
a6b6be7f79 add ImageUtils 2016-04-02 00:36:33 +01:00
Matthew Hodgson
4388334e30 fix up scroll behaviour when loading widgets 2016-04-02 00:36:19 +01:00
Matthew Hodgson
62d04c38ef fix typo and add linkify descriptions 2016-04-01 02:23:29 +01:00
Matthew Hodgson
4d959fc33b improve layout and make thumbnails work 2016-04-01 02:16:11 +01:00
Matthew Hodgson
e6842eab94 WIP url previewing 2016-03-31 18:38:01 +01:00
Richard van der Hoff
b6e4e9caf3 Fix a bug where we tried to show two ghost read markers at once.
I think this was responsible for the readmarker just disappearing rather than
animating.

While we're here, decrease the delay on the animation, and instead make it take
slightly longer to disappear.
2016-03-31 18:27:46 +01:00
Matthew Hodgson
f6f86958f5 tweak room settings wording 2016-03-31 14:20:50 +01:00
Richard van der Hoff
631183da29 Don't reload the DOM if we can jump straight to the RM
Adds a missing 'return' statement which meant that, even if we already had the
relevant event loaded into the DOM, we would rebuild it when the user clicked
on the "(^) Unread messages" bar.
2016-03-31 00:51:23 +01:00