Commit graph

1499 commits

Author SHA1 Message Date
Richard van der Hoff
2f435f4836 Fix bug which stopped us scrolling down after we scrolled up
Make sure that, if we scroll up enough to move the timelinewindow away from the
end of the timeline, we reset the canForwardPaginate flag.
2016-04-21 14:20:12 +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
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
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
Matthew Hodgson
eeb9abdf81 trailing whitespace 2016-04-18 01:34:45 +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
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
0741e8a5c1 fix testing UI hack 2016-04-14 19:11:20 +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
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
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
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
38d27cdbb0 improve 'no known servers' error 2016-04-12 13:00:52 +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
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
2e772e2f19 fix whitespace on multiupload prompt 2016-04-10 14:02:22 +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
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
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
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
4388334e30 fix up scroll behaviour when loading widgets 2016-04-02 00:36:19 +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
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
Matthew Hodgson
182fa22eac Merge pull request #251 from aviraldg/feature-pretty-placeholder
Prettier, animated placeholder :D
2016-03-30 01:27:36 +01:00
Richard van der Hoff
1f2ba87ff5 Pass SimpleRoomHeader title in as a named property
... rather than a child
2016-03-29 23:21:17 +01:00
Richard van der Hoff
6422f7ecc8 Factor out separate RoomNameEditor and RoomTopicEditor components 2016-03-29 15:21:16 +01:00
Richard van der Hoff
70133ae661 Factor out SimpleRoomHeader
Start cleaning up RoomHeader by factoring out a separate SimpleRoomHeader.
2016-03-29 12:51:46 +01:00
Matthew Hodgson
e068a92cde Merge pull request #248 from matrix-org/matthew/fix-image-load-popping
Fix scroll offset popping around during image load by putting explicit height back on images
2016-03-29 00:48:31 +01:00
Aviral Dasgupta
6b10d5f696 Prettier, animated placeholder :D 2016-03-28 19:39:36 +05:30
David Baker
c3dd9a4b17 Unset email pending state on error or we never remove the spinner 2016-03-24 15:03:44 +00:00
Matthew Hodgson
8b67a1059d oops, forgot a sync dispatch on onSearchResultsResize 2016-03-24 02:14:16 +00:00
Matthew Hodgson
5bd0303dda make it work, seemingly 2016-03-24 01:12:51 +00:00
Matthew Hodgson
151a9994ba WIP fix for image load popping 2016-03-24 00:13:32 +00:00
Matthew Hodgson
1a62369a01 prioritise new version bar 2016-03-23 18:05:47 +00:00
Richard van der Hoff
9f05249d9c Disable scrollpanel debug
... so that I can (re-)release
2016-03-23 14:53:38 +00:00
David Baker
d6218ca153 Actually calling functions often helps. 2016-03-23 12:02:26 +00:00
Richard van der Hoff
422a1f01a4 Limit check on scrollNode.scrollTop to keep firefox happy
Turns out that Firefox ignores attempts to set scrollTop to
Number.MAX_VALUE. Clip it to scrollHeight.
2016-03-23 10:51:07 +00:00
Richard van der Hoff
cf17258a6c Merge pull request #246 from matrix-org/rav/read_marker_off_by_one
Fix off-by-one error in read-marker advancing
2016-03-23 10:23:19 +00:00
Richard van der Hoff
04c9924ad6 Fix off-by-one error in read-marker advancing
The fix to https://github.com/vector-im/vector-web/issues/1241 introduced an
off-by-one error which meant we would show the RM before the last event in a
room. We were actually winding the RM back one if the last message wasn't sent
by us.
2016-03-23 09:49:31 +00:00
Richard van der Hoff
4fd49976ae Another go at fixing the jumpy scroll
The most recent problem was that we were setting _lastSetScroll whenever we
wrote to scrollTop (and ignoring the next scroll event which matched that
offset), but if there was no change to scrollTop, we wouldn't actually get a
scroll event, so would ignore some future scroll event instead.

Make sure that we only set _lastSetScroll if there's a change to scrollTop.

(Fixes https://github.com/vector-im/vector-web/issues/1162, more)
2016-03-22 19:33:02 +00:00
Matthew Hodgson
2403eca6af profoundly evil ugly hack to workaround amandine's invite focus issues on her note-to-self rooms 2016-03-22 17:47:52 +00:00
Richard van der Hoff
7fb5736e52 Merge pull request #244 from matrix-org/rav/no_rm_on_my_events
Move read-marker past our own events when we switch to a room
2016-03-22 17:44:02 +00:00
David Baker
abe4df5f1c Merge pull request #243 from matrix-org/dbkr/error_messages
Add better user-facing error messages
2016-03-22 17:41:00 +00:00
David Baker
87d853d56b If we don't get a specific event because of permissions, say so 2016-03-22 17:33:46 +00:00
Richard van der Hoff
3736fcf80e Move read-marker past our own events when we switch to a room
This fixes an issue where the RM appeared before any events which were pending
when you switched away from that room
(https://github.com/vector-im/vector-web/issues/1241).

Also, fix a buglet in the MessagePanel which meant we didn't animate the
disappearance of a RM when it stayed at the same event but became
invisible. This didn't really cause any user-visible problems (because
typically we advance the RM at the same time as it became invisible), but
confused me a bit while I was trying to debug this.
2016-03-22 17:23:23 +00:00
Richard van der Hoff
c1101d978e Turn on scroll debug again 2016-03-22 15:37:08 +00:00
David Baker
7caad2a434 More user-facing error message for event-not-found 2016-03-22 14:22:16 +00:00
David Baker
f1219a6b8d Register prompt for trying to set an avatar 2016-03-22 13:50:27 +00:00
David Baker
13f31b2a5d Add error message for failing to join a room as a guest (which may or may not be because we're a guest: we can't tell) 2016-03-22 13:47:29 +00:00
David Baker
30b76d372c Error messages for guests creating rooms 2016-03-22 12:58:12 +00:00
Richard van der Hoff
2ac88a3d89 Make the read-marker less annoying
We considered the user active if there had been a user_activity event within
the last 500ms, but those events were only raised every 500ms, so it was
possible that we would be considered inactive immediately. Use
UserActivity.userCurrentlyActive() instead, which fixes this.

Also increase CURRENTLY_ACTIVE_THRESHOLD_MS to 2 seconds.
2016-03-22 12:15:17 +00:00
Richard van der Hoff
b9d3047a93 Disable scrollpanel debug
... now that https://github.com/vector-im/vector-web/issues/1162 is hopefully
fixed
2016-03-22 11:58:17 +00:00
Richard van der Hoff
c31fbf1214 Merge pull request #236 from matrix-org/rav/search_pagination_spinner
Show a spinner when we back-paginate search results
2016-03-22 10:12:51 +00:00
Richard van der Hoff
d000870668 Merge pull request #237 from matrix-org/rav/scroll_jump
Only ignore scroll echoes once
2016-03-22 10:12:23 +00:00
Richard van der Hoff
74b45475be Merge pull request #238 from matrix-org/rav/cancel_sending
Add 'cancel all' option to 'unsent messages' bar
2016-03-22 10:12:11 +00:00
Richard van der Hoff
d67c64c7a6 Show an error when a direct-to-event link fails
If the /context request fails, pop up a modal dialog to tell the user about
it.
2016-03-21 17:29:33 +00:00
Richard van der Hoff
75f8765f88 Add 'cancel all' option to 'unsent messages' bar
Also, make sure we hide said bar when unsent messages are cancelled.
2016-03-21 16:49:07 +00:00
Matthew Hodgson
11be2e1cad Merge pull request #234 from matrix-org/matthew/stop-peeking
if we're not peeking in a room, stop any ongoing peeking
2016-03-21 16:17:00 +00:00
Richard van der Hoff
c89906e571 Only ignore scroll echoes once
When the user scrolls up, and scrolls back to where they were, we want to save
the final scroll state. We were ignoring it because it looked the same as the
last autoscroll.

Fixes https://github.com/vector-im/vector-web/issues/1162
2016-03-21 14:48:17 +00:00
Richard van der Hoff
c1fa89972a Show a spinner when we back-paginate search results
Hook into the existing searchInProgress state to show a spinner when we
back-paginate search.
2016-03-20 23:51:43 +00:00
Matthew Hodgson
bbd57f2bdf when starting chat from memberinfo, allow guest access. in future synapse should make guest_access a default for the private_chat preset. 2016-03-20 12:39:49 +00:00
Richard van der Hoff
7712582c29 Renable debug in ScrollPanel
... after matthew disabled it by accident
2016-03-19 20:42:30 +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
Matthew Hodgson
24972a8267 if we're not peeking in a room, stop any ongoing peeking 2016-03-18 19:23:30 +00:00
Matthew Hodgson
d0ecd38927 top-align search results 2016-03-18 16:25:11 +00:00
Richard van der Hoff
15c9ad87a1 Merge pull request #231 from matrix-org/rav/pending_event_list
Use new pendingEventList functionality from matrix-js-sdk
2016-03-18 16:17:56 +00:00
David Baker
eb5aa7ed7d Move comment 2016-03-18 16:06:36 +00:00
David Baker
b4dd7ba509 I mean string, object 2016-03-18 16:04:58 +00:00
David Baker
3e915cf0e2 Merge remote-tracking branch 'origin/develop' into dbkr/show_invited_email 2016-03-18 15:34:15 +00:00
Matthew Hodgson
deaa5c350a Remove unnecessary Modal.createDialogWithElement, complete with its broken onFinished() support. Switch SetDisplayNameDialog to use Modal.createDialog(). Explicitly pass false to closeDialog if the user tries to cancel dialogs by clicking on the background, rather than passing in an event object which evaluates to true. 2016-03-18 11:15:06 +00:00
Matthew Hodgson
d0d22136f5 remove totally dead wood from stale Modal API 2016-03-18 11:12:06 +00:00
Richard van der Hoff
b93af2d536 Use new pendingEventList functionality from matrix-js-sdk
Update react-sdk to use `pendingEventOrdering`==`detached` instead of
`end`. Look for pending events in the pendingEvent list, and use
MatrixClient.cancelPendingEvent to, uh, cancel pending events.
2016-03-17 22:26:06 +00:00
Matthew Hodgson
e55a375d6f improve RoomPreviewBar as per https://github.com/vector-im/vector-web/issues/761 2016-03-17 19:19:05 +00:00
David Baker
f1844a99e7 WIP on fixing https://github.com/vector-im/vector-web/issues/924
Pass the invited email through to RoomPreviewBar, display it in a temporary way currently.

Remove a condition from RoomView render that appears to be functionally identical to the previous.
2016-03-17 18:38:25 +00:00
Richard van der Hoff
d1dbce8adf Enable debug in ScrollPanel for now
... in an attempt to debug some of the recent scroll problems
2016-03-17 17:48:19 +00:00
Matthew Hodgson
a13513935b only show '...' when people are typing 2016-03-17 15:02:07 +00:00
Matthew Hodgson
9dcdf0ae51 Merge pull request #227 from matrix-org/matthew/fix-notif-spam
Correctly fix notif spam after logout/login
2016-03-17 14:37:01 +00:00
Matthew Hodgson
c51dac2f29 Merge pull request #226 from matrix-org/matthew/fix-last-active
fix last_active_ago timestamps, tab completion ordering, and implement currently_active semantics
2016-03-17 14:36:52 +00:00
David Baker
b960d1d462 Make getCurrent[H|I]SUrl honour the state setting that comes from the url bar.
Fixes @ara4n's later bug in https://github.com/vector-im/vector-web/issues/1027
2016-03-17 11:33:25 +00:00
Matthew Hodgson
08618f6ad5 remove start_login_from_guest and instead make logout able to preserve guestCreds 2016-03-17 02:09:49 +00:00
Matthew Hodgson
50e33d30b6 never try to tab-complete yourself, doofus 2016-03-16 23:35:01 +00:00
Matthew Hodgson
bb918f198b don't let uses change HS/IS URL in the middle of registration - fixes https://github.com/vector-im/vector-web/issues/1176 2016-03-16 19:14:28 +00:00
Matthew Hodgson
74acc0b564 keep the existing colour scheme 2016-03-16 18:58:04 +00:00
Matthew Hodgson
6016ba70d9 Merge pull request #221 from aviraldg/feature-sync-status
Display sync status in favicon and title.
2016-03-16 18:56:57 +00:00
Matthew Hodgson
74aad34dfb Merge pull request #220 from matrix-org/matthew/cancellable-upgrade
allow registration and login from guest to be cancellable
2016-03-16 14:38:00 +00:00
Matthew Hodgson
90aa4223f2 merge develop 2016-03-16 14:37:12 +00:00
Matthew Hodgson
b58a1707cb Merge pull request #219 from matrix-org/matthew/fix-guest-upgrade
let registering guests either upgrade or create a new account by spec…
2016-03-16 11:58:44 +00:00
Matthew Hodgson
b457a4e4a2 improve semantics for when the 'return to app' prompt is shown 2016-03-16 11:48:32 +00:00
Matthew Hodgson
795435b1ce DOH 2016-03-16 10:33:20 +00:00
Aviral Dasgupta
b47ea1ca4b Color for sync status, less scary message 2016-03-16 06:32:49 +05:30
Aviral Dasgupta
47c3419c0e Display sync status in favicon and title
Signed-off-by: Aviral Dasgupta <me@aviraldg.com>
2016-03-16 05:31:50 +05:30
Matthew Hodgson
d8af6ec240 hide 3PID settings from guests 2016-03-15 23:57:42 +00:00
Matthew Hodgson
25bf4030de stop guests from setting avatars 2016-03-15 23:55:59 +00:00
Matthew Hodgson
5f68f1313b show warning if guest login disabled 2016-03-15 23:01:59 +00:00
Matthew Hodgson
bae23c78de fix https://github.com/vector-im/vector-web/issues/1040 and https://github.com/vector-im/vector-web/issues/833 2016-03-15 22:42:22 +00:00
Matthew Hodgson
2bedece9a1 argh, remove debugging 2016-03-15 22:15:04 +00:00
Matthew Hodgson
b7726d34d5 allow registration and login from guest to be cancellable 2016-03-15 21:04:11 +00:00
Matthew Hodgson
f66dd69710 oops, revert - do this on the right branch... 2016-03-15 18:40:03 +00:00
Matthew Hodgson
b23cad5613 let registering guests either upgrade or create a new account by specifying a new username. fixes https://github.com/vector-im/vector-web/issues/1161 2016-03-15 18:36:13 +00:00
Matthew Hodgson
f70eec62d1 let registering guests either upgrade or create a new account by specifying a new username. fixes https://github.com/vector-im/vector-web/issues/1161 2016-03-15 18:35:09 +00:00
Matthew Hodgson
672a5cb89c Merge pull request #200 from matrix-org/matthew/loginfixes
Bring back lost functionality on login/register/password-reset screens
2016-03-15 15:21:32 +00:00
David Baker
836f7ca80d Merge pull request #218 from matrix-org/session_logged_out
Handle the new Session.logged_out event.
2016-03-15 14:51:50 +00:00
Matthew Hodgson
438558da55 PR feedback 2016-03-15 13:48:46 +00:00
Matthew Hodgson
1a74b0c487 Merge pull request #216 from matrix-org/matthew/fix-join-by-room-alias
hopefully fix https://github.com/vector-im/vector-web/issues/819
2016-03-15 13:16:51 +00:00
David Baker
a1b875bb25 Handle the new Session.logged_out event. Log the user out and display a message telling them they've been logged out.
Requires https://github.com/matrix-org/matrix-js-sdk/pull/100 (but safe without)
Fixes https://github.com/vector-im/vector-web/issues/414
2016-03-15 10:48:16 +00:00
Matthew Hodgson
5e050c6276 hopefully fix https://github.com/vector-im/vector-web/issues/819 2016-03-15 00:49:44 +00:00
Matthew Hodgson
79eb54058f oops, backout WIP 2016-03-15 00:48:19 +00:00
Matthew Hodgson
005ebbd037 stop avatar mxids being copy-pastable (unless they contain an initial). should significantly improve https://github.com/vector-im/vector-web/issues/893 2016-03-15 00:21:05 +00:00
Richard van der Hoff
ce150646e6 Merge branch 'develop' into rav/fix_scroll_on_resize 2016-03-14 22:32:54 +00:00
Richard van der Hoff
3173898bc1 Bump the timeline limit to 500
... so that matthew can ctrl-f
2016-03-14 15:47:09 +00:00
Richard van der Hoff
61cd66304e Adjust the scroll position when the gemini panel is resized
Make sure we restore the scroll state of the message panel when it is resized
2016-03-14 15:29:29 +00:00
Richard van der Hoff
8a4a810d1f Merge pull request #214 from matrix-org/rav/gemini-resize
Use our fork of react-gemini-scrollbar to fix resize issues
2016-03-14 13:59:11 +00:00
Richard van der Hoff
74bbb81532 Merge pull request #212 from matrix-org/rav/fix_search_position
Put direct-linked events and search clickthroughs in the middle
2016-03-14 12:49:21 +00:00
Richard van der Hoff
88b3f2ed8c Use our fork of react-gemini-scrollbar to fix resize issues
Rather than telling react-gemini-scrollbar to update every time something that
changes its size happens, try out our fork of it which uses some hackery to
listen for resizes.
2016-03-14 12:46:13 +00:00
Matthew Hodgson
893e338917 incorporate keganfeedback 2016-03-12 19:49:54 +00:00
David Baker
1516f17af4 Merge pull request #210 from matrix-org/dbkr/invite_display_when_peekable
Show the invite preview bar when we have a 3pid invite
2016-03-11 10:21:04 +00:00
David Baker
15170f8718 Comment how we're not rejecting 3pid invites 2016-03-11 10:20:52 +00:00
Richard van der Hoff
3fd066c2d4 Put direct-linked events and search clickthroughs in the middle
We need two modes of operation for ScrollPanel.scrollToToken:

For jump-to-read-marker, we want it 1/3 of the way down the screen.
For search clickthrough, and hyperlinked events, we want put the event in the
*middle* of the screen.

Fixes https://github.com/vector-im/vector-web/issues/1032
2016-03-10 17:27:46 +00:00
David Baker
2875fa3eb1 Show the invite preview bar when we have a 3pid invite, and make the reject button work. 2016-03-10 15:56:58 +00:00
Richard van der Hoff
f9e753f57a Update the gemini panel when we show/hide the TopUnreadMessagesBar
Showing/hiding the TopUnreadMessagesBar resizes the scrollpanel. Make sure that
we update the gemini panel when this happens.

(Fixes an intermittent bug wherein we could get stuck with a 'scroll to bottom'
indicator after jumping to the bottom, with unread messages in the view)
2016-03-10 15:55:03 +00:00
Richard van der Hoff
7660276b54 Merge pull request #209 from matrix-org/rav/local_echoes_are_today
Use 'today' for the date separator for unsent messages
2016-03-10 14:34:18 +00:00
Richard van der Hoff
928b2bb9a7 Use 'today' for the date separator for unsent messages
Fixes https://github.com/vector-im/vector-web/issues/1087, though we'll still
have problems if the unsent messages get out of order.
2016-03-10 14:16:31 +00:00
Richard van der Hoff
3bd33d0985 Fix the missing date separator at the start of rooms
When we first hit the start of the room, we still have a pagination token, so
we hide the date separator. When we try to backpaginate again, we get an empty
result, and the pagination token is cleared.

Make sure that we update state. canBackPaginate even when there are no new
results, to handle this case.

Fixes https://github.com/vector-im/vector-web/issues/1014
2016-03-10 13:42:46 +00:00
Richard van der Hoff
ec2e27a754 Merge pull request #205 from matrix-org/rav/shouldComponentUpdates_2
Re-introduce shouldComponentUpdate methods in RoomView and TimelinePanel
2016-03-09 17:25:11 +00:00
Richard van der Hoff
aabdaa737e Merge pull request #204 from matrix-org/rav/jump_to_read_marker_fix
Make jump-to-read-marker work when the RM event isn't loaded.
2016-03-09 16:12:16 +00:00
Richard van der Hoff
4b333d2363 Update the timeline when a local echo arrives 2016-03-09 15:56:54 +00:00
Richard van der Hoff
6c928f12b2 ForceUpdate the scrollpanel when the aux panel changes size
Catch some more cases when we ought to be updating the gemini scroll stuff.
2016-03-09 15:56:54 +00:00
Richard van der Hoff
393e8ff612 Revert "Revert "Merge pull request #193 from matrix-org/rav/shouldComponentUpdates""
Put the shouldComponentUpdate methods back in, now that Matthew has stopped
demoing.

This reverts commit 606fdcb8df.
2016-03-09 15:56:53 +00:00
Richard van der Hoff
a9da0a014e Merge pull request #203 from matrix-org/rav/optimize_resize
Don't forceUpdate the message panel on resize
2016-03-09 15:55:33 +00:00
Richard van der Hoff
1a371b346e remove spurious debug 2016-03-09 15:51:17 +00:00
David Baker
d54ee4f247 Merge pull request #201 from matrix-org/dbkr/reuse_guest_account
Use the guest access tokens sent in 3pid invite emails.
2016-03-09 15:49:30 +00:00
Richard van der Hoff
b45c256427 Don't forceUpdate the message panel on resize
We don't really need to forceUpdate() the entire timeline panel every time
something might resize it. It is sufficient to forceUpdate the ScrollPanel.
2016-03-09 15:40:19 +00:00
Richard van der Hoff
f60ac2aa5f Make jump-to-read-marker work when the RM event isn't loaded.
If the event corresponding to the read-up-to mark hasn't been loaded into the
timeline window, we can't simply scroll to it. Instead, reload the timeline,
centered on the RM event.

Fixes https://github.com/vector-im/vector-web/issues/1055
2016-03-09 07:54:49 +00:00
Richard van der Hoff
6e23623c28 Fix checkScroll after image load
Make the onImageLoad handler call checkScroll on the right thing. This was
originally done in commit 99d2392, but got broken in the Great RoomView
Refactor of February 2016.
2016-03-07 22:23:14 +00:00
Richard van der Hoff
606fdcb8df Revert "Merge pull request #193 from matrix-org/rav/shouldComponentUpdates"
This reverts commit a7c75b1315, reversing
changes made to b66ca74ede.

This is causing breakage in the messagepanel screen resize after video call and
room settings
2016-03-07 17:28:50 +00:00
David Baker
42a90f49c2 Use the guest access tokens sent in 3pid invite emails. 2016-03-07 17:11:01 +00:00
David Baker
a2c6bd0e6c Merge pull request #199 from mebjas/develop
fixed issue vector-im/vector-web 1079
2016-03-07 16:15:45 +00:00
Minhaz A V
7e7493b336 removed typeof and todo
Signed-off-by: Minhaz A V <minhazav@gmail.com>
2016-03-07 21:16:35 +05:30
Richard van der Hoff
a7c75b1315 Merge pull request #193 from matrix-org/rav/shouldComponentUpdates
Add shouldComponentUpdate() methods to RoomView and TimelinePanel
2016-03-07 11:50:38 +00:00
Matthew Hodgson
0bb58dd60c brings back the functionality in login/register/screens that got lost in @kegsay's refactor. specifically:
1) custom HS/IS urls are now persisted in HTML5 local storage.  As a result, all the login components now distinguish between default HS/IS URLs and custom specified ones again. (
2) custom HS/IS urls are synchronised between the instances of ServerConfig found in the Login, Registration and Forgot Password screens.
3) username are persisted over changing homeserver (but not password, to stop accidentally leaking passwords to the wrong server)
4) correctly interpret a blank URL field as meaning the placeholder text
5) when toggling custom URLs on and off, remember what the custom values were, and use the default URLs if custom mode is not engaged

also, guest access now upholds custom HS/IS URLs found in local storage rather than being limited to the server config ()

also adds assorted comments and improved console debug and a few minor cosmetic changes to the login components.

this commit sponsored by VS27...
2016-03-06 14:33:36 -05:00
Minhaz A V
3c1312a9e6 fixed issue vector-im/vector-web 1079 2016-03-05 23:36:24 +05:30
Richard van der Hoff
7820a5d900 Merge pull request #189 from matrix-org/rav/fix_timeline_react_keys
Flatten arrays of components before adding to messagepanel li
2016-03-04 17:56:18 +00:00
Richard van der Hoff
318bcb1284 Merge pull request #192 from matrix-org/rav/fix_read_receipts
Make sure we update the timelinepanel when a read-receipt arrives
2016-03-04 17:55:29 +00:00
Richard van der Hoff
1738fab2ee Merge pull request #190 from matrix-org/rav/reduce_timeline_limit
Reduce the number of messages we show in the DOM to 250
2016-03-04 17:54:59 +00:00
David Baker
66bed45e67 Merge pull request #195 from matrix-org/dbkr/reenable_upgrade_registration
Re-enable upgrade registration.
2016-03-04 17:54:50 +00:00
David Baker
068429f3e3 Tidy up starting from a room alias when not logged in. 2016-03-04 17:37:06 +00:00
David Baker
4da0e2fd95 Re-enable upgrade registration.
Revert https://github.com/vector-im/vector-web/issues/818 now that https://github.com/vector-im/vector-web/issues/759 is fixed.
2016-03-04 15:41:32 +00:00
Richard van der Hoff
bc5ae6a6ad Add shouldComponentUpdate() methods to RoomView and TimelinePanel
This will avoid re-rendering the whole RoomView every time we get a scroll
event, and might even help with https://github.com/vector-im/vector-web/issues/1056.
2016-03-04 14:51:55 +00:00
Richard van der Hoff
31df97e486 Make sure we update the timelinepanel when a read-receipt arrives
Fixes https://github.com/vector-im/vector-web/issues/1094
2016-03-04 14:47:11 +00:00
Richard van der Hoff
c14b62ee64 Reduce the number of messages we show in the DOM to 250
... as per https://github.com/vector-im/vector-web/issues/1077
2016-03-04 14:07:18 +00:00
Richard van der Hoff
6e86d7553f Flatten arrays of components before adding to messagepanel li
Avoid updating the whole DOM when we paginating by making sure the keys are
right
2016-03-04 13:49:15 +00:00
David Baker
0051c91126 Merge pull request #183 from matrix-org/dbkr/3pid_invite_metadata
Pass room metadata from 3pid invite emails all the way through to the…
2016-03-02 14:31:58 +00:00
David Baker
c585b3edee anothert stray room_ 2016-03-02 14:31:01 +00:00
David Baker
de2eaa3078 Document inviterName 2016-03-02 14:04:51 +00:00
David Baker
5827a883bf This should be just oob_data too 2016-03-02 14:02:36 +00:00
David Baker
4184158a9a Make comment match reality, attempt 2. 2016-03-02 14:01:21 +00:00
David Baker
6319c85272 Make comment match reality 2016-03-02 13:59:55 +00:00
David Baker
5bd2316e7f Oops, it's just oob_data here 2016-03-02 13:58:52 +00:00
David Baker
acb5f5d69b This should be props, not state 2016-03-02 11:56:18 +00:00
David Baker
7ae2c5b11b Document fields of oob_data 2016-03-02 11:51:47 +00:00
David Baker
9085a2a866 Pass room metadata from 3pid invite emails all the way through to the relevant components so we can display it. 2016-03-01 18:23:57 +00:00
Richard van der Hoff
1e3040d19a Fix a race condition handling gappy syncs
We had a problem handling gappy syncs: resetting the timeline would trigger a
pagination request (which would return no results, because there are no events
at this point); this would make the pagination requests which are spawned when
we process the events in the sync get ignored - with the result that we get a
blank window.

The fix is to avoid the ScrollPanel when we are processing new live events and
tell the TimelineWindow to paginate itself directly.
2016-03-01 10:52:56 +00:00
Richard van der Hoff
559f60d43e unmounted check in TimelinePanel 2016-02-29 17:06:38 +00:00
Richard van der Hoff
db1e1c7df0 Fix NPE when re-joining a room
Fix the length check on state.events
2016-02-26 23:05:41 +00:00
Richard van der Hoff
acfc7b3719 Don't throw exceptions when room changes in a timelinepanel
This does happen - fortunately only in circumstances where it's not a
problem. Downgrade the exception to a warning.

Fixes https://github.com/vector-im/vector-web/issues/1036
2016-02-26 22:39:25 +00:00
Richard van der Hoff
d5c83347a6 Merge pull request #173 from matrix-org/rav/configurable_sync_limit
Make the initialSyncLimit configurable
2016-02-26 13:57:30 +00:00
Richard van der Hoff
a9d363c668 Merge pull request #180 from matrix-org/rav/optimise_timeline_load
Make room-switching quicker
2016-02-26 13:29:35 +00:00
Richard van der Hoff
65ecbf93fe Merge pull request #178 from matrix-org/rav/reset_timeline
Reload the timeline when we get a gappy sync
2016-02-26 13:28:20 +00:00
Richard van der Hoff
0d1c85eb7c Make room-switching quicker
Avoid delaying a reactor tick when switching rooms, to make room-switching
(feel) a bit snappier.
2016-02-26 12:25:46 +00:00
Richard van der Hoff
e634f98a13 Show spinners when forward/back paginating. 2016-02-25 18:44:07 +00:00
Richard van der Hoff
4be29401ce Reload the timeline when we get a gappy sync
After a resume from sleep, we don't want to start paginating through the whole
timeline. If we were in 'stuckAtBottom' mode before, treat a gappy sync
similarly to how we handle the 'scroll to bottom' knob, which is to reload the
timelinewindow starting from scratch.

Fixes https://github.com/vector-im/vector-web/issues/932, and will probably
also fix https://github.com/vector-im/vector-web/issues/943, though I haven't
tested it yet.
2016-02-25 18:42:59 +00:00
Richard van der Hoff
10b55036f9 Merge branch 'rav/roomview_works' into develop
Implementation of new read-marker semantics (PR #160).
2016-02-24 17:26:46 +00:00
Richard van der Hoff
1959b03104 Land refactored roomview branch 'rav/roomview_works'.
This branch has been sitting around a while; it includes a substantial refactor
of RoomView (into separate MessagePanel and TimelinePanel), as well as a number
of fixes.
2016-02-24 16:52:12 +00:00
Richard van der Hoff
1009faf9dc Merge pull request #171 from matrix-org/rav/typing_notifs_cleanups
Don't forceUpdate the whole roomview on typing notifs
2016-02-24 16:45:45 +00:00
Richard van der Hoff
7a19bad388 Merge pull request #170 from matrix-org/rav/video_resize
Factor out a separate auxpanel, and cleanup the maxHeight management
2016-02-24 16:45:25 +00:00
Richard van der Hoff
4ce3598274 Make the initialSyncLimit configurable
I keep wanting to change this to test things, and can never find the right
place to change it. Make it configurable.
2016-02-24 16:42:23 +00:00
Richard van der Hoff
68e0192acc reinstate event-continuation logic
Forgot to set prevEvent in the merge from develop, so we were never applying
the correct continuation logic.
2016-02-23 18:43:51 +00:00
David Baker
3f51cda846 Register a s a guest even if email invite: this is ok now. 2016-02-23 18:30:35 +00:00
David Baker
e2bafcbf02 Don't redirect to registration on 3pid invite: it's ok to be a guest now. 2016-02-23 18:26:15 +00:00
David Baker
b2b7354018 Comment guest access initial state 2016-02-23 18:10:48 +00:00
David Baker
418bf8e39c Allow guest access by default (by specifying initial state) as rooms are private by default so they'd have to be invited to join. People can't get a 3pid invite & join as guest without this. 2016-02-23 17:55:45 +00:00
David Baker
b384d8c91a Merge pull request #168 from matrix-org/dbkr/keypair_3pid_invites
Wire up support for keypair 3pid invites.
2016-02-23 16:37:55 +00:00
Richard van der Hoff
07822e20cb Don't forceUpdate the whole roomview on typing notifs
updating the roomview is expensive, so we shouldn't do it every time we get a
typing notification (which may or may not correspond to a user in this
room). Push it down to RoomStatusBar, and use a state var to keep track of it.
2016-02-23 16:17:50 +00:00
Richard van der Hoff
7a20fda7e7 Factor out a separate auxpanel, and cleanup the maxHeight management
Basically two changes here:

1. Factor out auxpanel from RoomView
2. Rather than setting maxHeight attributes by poking directly into the DOM,
pass them down as properties.
2016-02-23 15:54:15 +00:00
Richard van der Hoff
d599c8fbd2 Merge remote-tracking branch 'origin/develop' into rav/roomview_works 2016-02-23 13:37:21 +00:00
Richard van der Hoff
ac4b36c0dd Merge commit '99d2392' into rav/roomview_works
Conflicts:
	src/components/structures/RoomView.js
2016-02-23 13:32:23 +00:00
Richard van der Hoff
4a22fb9763 Merge commit '26e6632' into rav/roomview_works 2016-02-23 13:25:09 +00:00
Richard van der Hoff
21850d7e2f Merge commit 'd7b3a24' into rav/roomview_works 2016-02-23 13:24:58 +00:00
Richard van der Hoff
9eff426819 Merge commit '71e2495' into rav/roomview_works
Conflicts:
	src/components/structures/RoomView.js
2016-02-23 13:24:38 +00:00
Richard van der Hoff
6aaced04fa Merge commit 'd2a731e' into rav/roomview_works 2016-02-23 13:02:26 +00:00
Richard van der Hoff
776b6a26c3 Merge commit '9a0ea56' into rav/roomview_works
Conflicts:
	src/components/structures/RoomView.js
2016-02-23 13:02:02 +00:00
Richard van der Hoff
b1093f3f4b Merge commit 'e972686' into rav/roomview_works 2016-02-23 12:57:53 +00:00
Richard van der Hoff
4c571cf1bf Merge commit 'eb91faf' into rav/roomview_works
Conflicts:
	src/components/structures/RoomView.js
2016-02-23 12:56:54 +00:00
Richard van der Hoff
7f4f30d7d5 Merge commit 'e3feae3' into rav/roomview_works 2016-02-23 12:01:53 +00:00
Richard van der Hoff
3acfab48fc Merge commit '014acba' into rav/roomview_works
Conflicts:
	src/components/structures/RoomView.js
2016-02-23 12:00:54 +00:00
Richard van der Hoff
8161a18efd Merge commit 'b1a6575' into rav/roomview_works 2016-02-23 11:56:51 +00:00
Richard van der Hoff
d673249681 Wire up StatusBar size changes to a geminipanel update
When the statusbar changes size, we need to tell the gemini panel to
update. This is slightly tortuous as figuring out the size of the statusbar
isn't completely trivial.

Fixes https://github.com/vector-im/vector-web/issues/945 and
https://github.com/vector-im/vector-web/issues/986
2016-02-23 11:06:16 +00:00
David Baker
ac9f0f204d Wire up support for keypair 3pid invites. 2016-02-23 10:15:07 +00:00
Richard van der Hoff
99d2392b6f Update the scroll offset when images load
In order to deal with image-loading reshaping the DOM, wire up
ScrollPanel.checkScroll to the image load events.

Fixes https://github.com/vector-im/vector-web/issues/984
2016-02-22 17:43:33 +00:00
Richard van der Hoff
26e66326a2 Link search results to the right room
Fixes https://github.com/vector-im/vector-web/issues/980
2016-02-22 12:54:22 +00:00
David Baker
d7b3a24c18 Merge pull request #165 from matrix-org/dbkr/read_receipt_send_ignore_implicit
Fix stuck notification bug
2016-02-19 16:20:12 +00:00
David Baker
71e2495e81 Use new flag in js-sdk to look at the last read receipt the server actually has and ignore implicit ones, otherwise we can end up not sending an RR because we think there's already a more recent one, even though that one is implicit. 2016-02-19 14:45:02 +00:00
Matthew Hodgson
b4fe9473d5 improve error messages when failing to talk to a HS 2016-02-19 14:17:41 +00:00
Matthew Hodgson
d2a731e255 only resize the video element if not fullscreen 2016-02-19 01:18:53 +00:00
Matthew Hodgson
12f5407392 remove ... in error view 2016-02-18 18:16:48 +00:00
Matthew Hodgson
9a0ea56bba don't suppress conf join/parts 2016-02-18 00:07:35 +00:00
Richard van der Hoff
e9726865fc Merge pull request #162 from matrix-org/rav/keep_redactions
Handle redacted events
2016-02-17 21:42:39 +00:00
Richard van der Hoff
c4176ab706 Merge pull request #163 from matrix-org/rav/fix_search_clickthrough
Fix search clickthrough for HTML events
2016-02-17 21:35:39 +00:00
Richard van der Hoff
e3feae32e1 Fix search clickthrough for HTML events
Switch to using a normal <a href="..."> link for search result
clickthrough. Apart from generally giving a better experience, this means that
it also works on html messages. The problem there was that we were attaching
onClick handlers to <span>s which we were then flattening into HTML with
ReactDOMServer (which meant the onClick handlers were never attached to React's
list of listeners).

To make this work without jumping through React hoops, the highlighter now
returns either a list of strings or a list of nodes, depending on whether we
are dealing with an HTML event or a text one. We therefore have a separate
HtmlHighlighter and TextHighlighter.
2016-02-17 21:06:27 +00:00
Matthew Hodgson
b087157855 Merge branch 'develop' into rav/update_status_bar 2016-02-17 18:38:47 +00:00
Matthew Hodgson
38a2a61b38 back out hacky previous commit as #946 only happens when gemini is disabled 2016-02-16 19:39:22 +00:00
Matthew Hodgson
34d0fc890a disable scroll-to-token entirely temporarily - https://github.com/vector-im/vector-web/issues/946 2016-02-16 17:39:32 +00:00
Richard van der Hoff
eb91faf554 Handle redacted events
matrix-js-sdk now retains redacted events. Filter them out of the timeline.

Also put empty placeholders in the dom so that if we try to scroll to a
redacted event, we don't end up blowing up.
2016-02-16 16:08:52 +00:00
Richard van der Hoff
db09d3d9e4 Move ghost-read-marker logic to MessagePanel 2016-02-15 23:05:58 +00:00
Richard van der Hoff
63511d4e71 Refactor the EventTile loop
... so that it's a bit more tractable.
2016-02-15 23:05:42 +00:00
Richard van der Hoff
06133b0467 Add a null guard for matrix client TimelinePanel.componentWillUnmount
client can be null when unmounting
2016-02-15 23:04:21 +00:00
Matthew Hodgson
4b8b2ade8b fix login-on-guest-bar-NPE crash https://github.com/vector-im/vector-web/issues/930 2016-02-15 21:50:39 +00:00
Richard van der Hoff
ab9690d3b0 Don't re-tint on unmount
Need to remember the 'ref' function is called on unmount too - we shouldn't
retint back to the room colours at this point.
2016-02-15 20:40:34 +00:00
Matthew Hodgson
6b48b626e6 fix spinner of doom 2016-02-15 20:39:02 +00:00
Matthew Hodgson
0d153df417 improve registration fail error msg slightly 2016-02-15 21:58:37 +02:00
Matthew Hodgson
014acbab1f restore drag & drop file upload, broken by @richvdh's new timeline stuff 2016-02-15 21:16:04 +02:00
Matthew Hodgson
b1a6575b1d remove ugly join & reject error msgs in favour of modal dialogs 2016-02-15 20:59:44 +02:00
Matthew Hodgson
30e9c76089 login as guest button on the login page 2016-02-15 20:44:13 +02:00
Richard van der Hoff
0e0d0cf4f5 post-review tweaks 2016-02-11 15:38:13 +00:00
Richard van der Hoff
f2377fa9fe Factor out a TimelinePanel from RoomView 2016-02-10 18:41:48 +00:00
Richard van der Hoff
c3692378fa Factor a stateless messagepanel out from RoomView 2016-02-10 18:41:47 +00:00
David Baker
1e945cd13b Don't show the Notifications widget for guests since they can't use them (and it throws an error if you try to mount it). 2016-02-10 11:48:35 +00:00
Richard van der Hoff
0d2b042c0f Merge pull request #148 from matrix-org/rav/keep_scrolling
Don't stop scrolling at the read-up-to mark.
2016-02-10 10:20:03 +00:00
David Baker
af0597e0c8 Joining a room can take a while. Show a spinner otherwise we'll end up in multiple join city. 2016-02-09 16:55:03 +00:00
Richard van der Hoff
f48f28eefe Kill another scrollToToken
Missed a place where we were scrolling the messagepanel manually
2016-02-09 15:50:09 +00:00
Richard van der Hoff
576b59be66 Kill off the remains of auto_peek
Remove some dead code.
2016-02-09 15:45:41 +00:00
Richard van der Hoff
178e99385a Merge remote-tracking branch 'origin/develop' into rav/keep_scrolling 2016-02-09 14:52:38 +00:00
Richard van der Hoff
30b4b91cf3 Show jump-to-bottom icon even when there is other stuff in the status bar
Also includes a general simplification of the classes being used in the status
bar.

This should fix vector-im/vector-web#879. Obviously it needs corresponding
changes in the CSS in vector-web.
2016-02-09 14:45:30 +00:00
Richard van der Hoff
7fd56351a9 Fix 'unread messages' in status
This got broken in the previous commit
2016-02-09 12:40:11 +00:00
Richard van der Hoff
194110dd71 Merge pull request #147 from matrix-org/rav/factor_out_statusbar
Factor the statusbar implementation out of RoomView.
2016-02-09 11:38:40 +00:00
Richard van der Hoff
81e95ca8c1 Wire up jump-to-bottom knob
... which I embarassingly forgot
2016-02-09 11:36:57 +00:00
Richard van der Hoff
8641dab756 Don't stop scrolling at the read-up-to mark.
We want to keep things scrolling up after the read-up-to mark hits the middle
of the screen. Do this by giving the ScrollPanel a stickyBottom (provided we're
not in old history) instead of updating the scroll position when RRs arrive.

Also, when we switch back to a room, if there was no special scroll state, jump
to the end of the timeline instead of the RR mark.
2016-02-09 11:08:26 +00:00
Kegsay
da81d240e2 Merge pull request #146 from matrix-org/kegan/warning-bars-dom
Use constant div nesting when warning bars appear
2016-02-09 11:03:31 +00:00
Richard van der Hoff
1d9c88698f Factor the statusbar implementation out of RoomView
... because RoomView must die
2016-02-08 18:08:19 +00:00
Kegan Dougal
ecaa2c1e11 Fix the mess of warning bars so it doesn't trigger remounts of alllll the components 2016-02-08 17:20:52 +00:00
Richard van der Hoff
3ca2bbe31e Drop a redundant 'else' from RoomView.render, and outdent a load of code
... in the hope of aiding readability slightly
2016-02-08 16:43:08 +00:00
David Baker
9bf8f37e5f explicitly check join status as it's clearer 2016-02-08 16:03:04 +00:00
David Baker
baba500150 Filter rooms by ones we're in: getRooms() is not the set of rooms we are joined.
Fixes https://github.com/vector-im/vector-web/issues/885
2016-02-08 14:33:10 +00:00
David Baker
05f1e1e205 Merge pull request #140 from matrix-org/dbkr/fix_tab_complete
Fix tab complete
2016-02-08 14:19:06 +00:00
Kegsay
4ce41f7f6c Merge pull request #141 from matrix-org/kegan/room-settings-refactor
Refactor room settings
2016-02-05 15:50:39 +00:00
Kegan Dougal
03f19eba55 Implement radio boxes ( vector-im/vector-web#731 ) for history visibility. Hook up remaining bits. 2016-02-05 14:38:28 +00:00
David Baker
500c12b1f2 Fix tab complete
rate limited functions can't have arguments, so don't pass the room into
_updateTabCompleteList as it's always the room in our state.
2016-02-05 14:32:30 +00:00
Kegan Dougal
0cbf9dba87 Glue more things back together 2016-02-05 11:59:19 +00:00
David Baker
0ae548cf5d Merge pull request #139 from matrix-org/dbkr/rate_limit_funcs
Make the function call-rate limiting a generic thing and use it in more places.
2016-02-05 10:15:55 +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
Richard van der Hoff
5ae532dae2 Merge pull request #138 from matrix-org/rav/update_rr_semantics
Tweaks to the semantics for sending RRs and handling room switches
2016-02-04 17:42:15 +01:00
Richard van der Hoff
d14c1a82b2 Tweaks to the semantics for sending RRs and handling room switches
* Only send read receipts when we are at the bottom of a room; this is a simple
  and effective way of stopping the green bar of doom from jumping down the
  room slightly behind the scroll.

* Jump to read-up-to mark when switching back to a room if we were following
  the live timeline before.
2016-02-04 16:27:49 +00:00
Kegan Dougal
74e16ac83e Merge branch 'develop' into kegan/room-settings-refactor 2016-02-04 16:20:24 +00:00
Kegsay
75ff4f0f95 Merge pull request #135 from matrix-org/kegan/sync-limit
Set the sync limit back to sane levels
2016-02-04 15:47:31 +00:00
David Baker
d1467d2319 Merge pull request #136 from matrix-org/dbkr/prompt_display_name_on_join
Prompt for display name before joining your first room
2016-02-04 15:32:52 +00:00
Kegan Dougal
4013dae770 Start refactoring RoomSettings
- Don't manipulate settings in RoomView. Make it RoomSettings' job.
- Return Promise[] from AliasSettings.save() rather than an allSettled promise
  so callers can have more granularity over what to do with it (.all vs .allSettled)
- General refactoring of RoomSettings. Most things are broken now and are not
  submitted. Add util methods to grab values out of events.
2016-02-04 15:26:12 +00:00
David Baker
167da10b8b address PR comments 2016-02-04 15:07:30 +00:00
David Baker
6e424780f1 typo 2016-02-04 14:38:05 +00:00
David Baker
d0c8dadaf6 Merge pull request #134 from matrix-org/dbkr/fix_preview_bar
Put the room preview bar back for rooms that aren't peekable
2016-02-04 14:10:18 +00:00
Richard van der Hoff
309f1e2c8f Merge pull request #131 from matrix-org/rav/search_clickthrough
Enable clicking on search results to switch to the result in context.
2016-02-04 15:06:39 +01:00
Richard van der Hoff
63b50ed230 Merge pull request #132 from matrix-org/rav/fix_404_on_echo
Don't try to use local echoes as scroll tokens
2016-02-04 15:05:35 +01:00
Richard van der Hoff
8f5c739886 Clean up scrollToken assignment 2016-02-04 14:05:16 +00:00
Kegan Dougal
f3fa5d6a2a Set the sync limit back to sane levels 2016-02-04 13:30:25 +00:00
David Baker
b0da54533d Don't do this check - it's not valid since we set the room in onRoomName 2016-02-04 13:25:45 +00:00
David Baker
891f4761a0 Add comments and only set a room / init the timeline if we don't already have a room 2016-02-04 13:21:42 +00:00
Kegsay
6c9d48bd3a Merge pull request #128 from matrix-org/kegan/alias-settings
Split out alias settings into its own component: AliasSettings
2016-02-04 13:14:19 +00:00
David Baker
574560cc05 remove listener on unmount 2016-02-04 13:06:59 +00:00
David Baker
47fef0896f Prompt for display name before joining your first room (if you haven't set one).
Fixes https://github.com/vector-im/vector-web/issues/758
2016-02-04 11:49:10 +00:00
David Baker
3c2c2b051b Listen for Room and use this to init the timeline, not Room.name 2016-02-04 11:29:00 +00:00
David Baker
c9a3ad31ab Comment error handling 2016-02-04 11:17:39 +00:00
David Baker
5c430395ea init timeline when we get the room, as otherwise we never load it after joining 2016-02-04 10:50:21 +00:00
David Baker
164c9b9031 Check error to see if it's actually a failure to peek 2016-02-03 16:53:48 +00:00
Kegan Dougal
8b96af4ccb Display the version in UserSettings. Change MatrixChat.onNewVersion to onVersion 2016-02-03 16:51:53 +00:00
David Baker
cebc2f5306 Put the room preview bar back for rooms that aren't peekable (since we always tried to peek, it would fail which would reject the promise and cause loadingTimeline to stay true forever). 2016-02-03 16:23:57 +00:00
Kegan Dougal
7bdd9f57a5 Add MatrixChat.onNewVersion to trigger the new version bar 2016-02-03 16:16:52 +00:00
Richard van der Hoff
d7576d223d Don't try to use local echoes as scroll tokens
Local echoes don't have a (usable) event id, so don't use them when remembering
the scroll state of a room.
2016-02-03 15:34:20 +00:00
David Baker
11df2fc285 Merge remote-tracking branch 'origin/develop' into dbkr/no_auto_join 2016-02-03 15:18:18 +00:00
Richard van der Hoff
e747beac58 Enable clicking on search results to switch to the result in context. 2016-02-03 15:06:52 +00:00
Richard van der Hoff
e01d61dfeb Merge branch 'rav/timeline_window' into rav/link_to_event
Conflicts:
	src/components/structures/MatrixChat.js
	src/components/structures/ScrollPanel.js
2016-02-03 14:12:28 +00:00
Richard van der Hoff
2479c81cf6 Merge remote-tracking branch 'origin/develop' into rav/timeline_window 2016-02-03 14:09:50 +00:00
Richard van der Hoff
c82b364ca8 Address review comments
Mostly renaming things and adding comments.
2016-02-03 08:03:10 +00:00
Richard van der Hoff
3b1ed3a014 Fix react warnings when a RR animation is happening during room switch
If the animation of an RR removal is active when we change room, we end up
getting a callback after the RoomView has been unmounted. Guard against this to
avoid getting React warnings.
2016-02-02 17:59:11 +00:00
David Baker
b0f0d5f6d0 Null check room because those events will be emitted before the room is stored. 2016-02-02 16:34:41 +00:00
David Baker
1cabe2ec37 Don't auto join rooms: always 'autoPeek' (ie. see if we can peek, otherwise offer to join) 2016-02-02 15:50:15 +00:00
David Baker
4e4e5be9a1 Disable upgrade registration temporarily. Fixes https://github.com/vector-im/vector-web/issues/818. 2016-02-02 14:14:18 +00:00
Kegan Dougal
ce789ba962 Split out alias settings into its own component: AliasSettings 2016-02-02 12:46:14 +00:00
David Baker
c187eda832 Don't assert that we're not logged in before starting registration because uprading is now a thing. 2016-02-01 16:53:39 +00:00
Richard van der Hoff
d9e13780b8 Implement direct-to-event linking.
This adds support for links to particular event ids: add /<eventId> to the URL
for a room.

This commit also ensures that we scroll to the 'read marker' when switching to
a room which has no previous scroll state, as well as preventing that marker
from going past the middle of the screen.

This also reinstates the preservation of scroll state when switching rooms,
which was disabled previously.
2016-02-01 16:31:12 +00:00
Richard van der Hoff
f0cf5c0aff Update onRoomTimeline comment 2016-02-01 12:35:41 +00:00
Richard van der Hoff
2c04b9cb5b Merge pull request #124 from ajohnson23/messages_scrolldown_fix
Fix improper scrolldown button display issue.
2016-02-01 11:38:14 +01:00
Andrew Johnson
fe9d7d10b9 Fix improper scrolldown button display issue.
This fixes an intermittent issue where the scrolldown button
or "new messages below" button would display even when the messages
panel was scrolled to the very bottom. Furthermore, when new messages
arrived, the messages panel would not automatically scroll down to show
the new messages.

Fixes https://github.com/vector-im/vector-web/issues/805
2016-01-29 22:32:32 -05:00
David Baker
401d18bcc6 Fix registration: don't auto-log in as a guest if we have a URL from sydent. 2016-01-28 15:42:14 +00:00
David Baker
640e87e7c5 Merge pull request #117 from matrix-org/dbkr/guest_warning_bar
Add warning bar for guest users.
2016-01-28 13:44:06 +00:00
David Baker
83119d21d6 New style guest warning bar 2016-01-28 12:59:51 +00:00
Kegsay
12463aec4d Merge pull request #115 from matrix-org/kegan/fix-3pid-signup
Redirect to the registration page when landing with ?email=
2016-01-28 12:00:06 +00:00
David Baker
796a2e5e3a Revert e5f4fa8c46 as it's no longer what's desired. 2016-01-28 11:15:43 +00:00
Richard van der Hoff
a4f4bb9e72 Convert RoomView to using a TimelineWindow
Instead of using the Room's active timeline directly, use a
TimelineWindow. This shouldn't (yet) have much effect, beyond maybe making
scrollback after a gappy sync slightly more efficient.

For now, I have disabled the 'restoreScrollState' functionality. This will be
reinstated once I land the link-to-event code.
2016-01-28 10:53:43 +00:00
Kegan Dougal
81cc30bab2 Null guard because this may not exist in the DOM. 2016-01-28 10:52:08 +00:00
Kegan Dougal
e017559765 New line 2016-01-28 09:58:51 +00:00
David Baker
7ea45f9888 Move message count to suffix in title, as requested by @ara4n 2016-01-27 18:03:01 +00:00
David Baker
e5f4fa8c46 Add warning bar for guest users. Fixes https://github.com/vector-im/vector-web/issues/770 2016-01-27 17:58:47 +00:00
David Baker
4661bb0942 Don't show a spinner while we're waiting for the user to do something 2016-01-27 15:44:12 +00:00
David Baker
8360c112fb Put the favicon badge call in a try block, as per comment 2016-01-27 15:19:25 +00:00
Kegan Dougal
db8fab8019 Redirect to the registration page when landing with ?email=
Fixes "Missing access token" error.
2016-01-27 10:47:54 +00:00
Matthew Hodgson
c1f28bb6b9 hide 'unknown screen' warning 2016-01-24 19:14:14 +00:00
Matthew Hodgson
bc60435750 improve settings layout and fix FF bugs 2016-01-24 18:15:08 +00:00
Matthew Hodgson
3da76192a1 title attr 2016-01-24 02:01:45 +00:00
Matthew Hodgson
f15564074c track whether we're scrolled to bottom or not and display UI for warning & jumping there if needed. 2016-01-24 01:51:01 +00:00
Matthew Hodgson
24225af416 work around history visibility roomsetting UI some more 2016-01-22 17:01:15 +00:00
Matthew Hodgson
0bef94a6ce fudge around https://github.com/vector-im/vector-web/issues/731 2016-01-22 15:51:27 +00:00
David Baker
99a491bb0e Merge pull request #68 from matrix-org/notif_sync
Set room highlight from unread_notification_count
2016-01-21 10:31:42 +00:00
David Baker
acce08194d Apply patch to the right branch: update for new count format 2016-01-21 10:23:18 +00:00
David Baker
1c54c64850 Merge pull request #99 from matrix-org/user_settings_on_register
Show user settings screen on registration
2016-01-21 10:11:28 +00:00
David Baker
a0cc3720a9 Merge pull request #106 from matrix-org/dbkr/dont_spam_read_receipts
Don't spam the same RR at the server until it acks it.
2016-01-21 10:01:30 +00:00
Matthew Hodgson
9bbb9f7b29 pretty invites! 2016-01-21 00:45:22 +00:00
Matthew Hodgson
deca90d0a7 fix up Start Chat behaviour as per Amandine's feedback 2016-01-21 00:16:10 +00:00
Matthew Hodgson
35c141cda9 reduce size of auxpanel when editing roomsettings 2016-01-20 23:09:36 +00:00
Matthew Hodgson
442e090f37 button layout 2016-01-20 17:09:46 +00:00
Matthew Hodgson
76b7788ba6 usersettings rhs button 2016-01-20 17:07:00 +00:00
David Baker
0052fbd6cb Don't spam the same RR at the server until it acks it. 2016-01-20 16:39:25 +00:00
David Baker
83634bf930 Update for new unread count format 2016-01-20 15:56:11 +00:00
Kegan Dougal
b296d05b35 Fix finally NPE 2016-01-20 15:38:34 +00:00
Kegan Dougal
8dc21ec837 Fix race condition when joining rooms
Problem: Hitting join on a room invite would show spinner, then join room screen
then the messages.

Cause: The UI to show a spinner is set via the "joining" flag. This flag was
only set for the duration of the /join HTTP request. This is insufficient
because it races with actual room info arriving from /sync. If this info does
not arrive before the /join HTTP request returns, "joining" is false but the
current membership state of the user is still invite.

Fix: The "joining" flag is still set when the /join HTTP request is made, but
it is only turned off when the join event arrives from /sync.

Extras: This fix should also work when joining a room not from an invite.
2016-01-20 15:25:40 +00:00
Matthew Hodgson
60a084bdbd Merge branch 'develop' into matthew/roompreview 2016-01-20 14:22:09 +00:00
David Baker
c4d4e9c46e Terminate promise chain 2016-01-19 17:20:23 +00:00
David Baker
4ed130ceac Implement adding email addresses to your profile. 2016-01-19 16:36:54 +00:00
Kegan Dougal
84608ba156 Fix syntax error 2016-01-19 16:18:08 +00:00
Matthew Hodgson
db7d863ce4 set autoPeekDone on finally 2016-01-19 15:18:16 +00:00
Matthew Hodgson
c29ec28dfd fix layout for blunt join msgs 2016-01-18 20:15:12 +00:00
Matthew Hodgson
f22519f10c factor out the peek rule calculation so that we can do it both onNewRoom and if there's a room already. I guess we could do it in react's onStateUpdate too 2016-01-18 20:05:33 +00:00
Matthew Hodgson
765174a600 merge conflict 2016-01-18 19:56:35 +00:00
Matthew Hodgson
491ba94230 WIP: try to support non-guest room peek. Rename visibility permissions in room settings a bit, and fix how they are persisted. 2016-01-18 17:39:23 +00:00
manuroe
33edeccb43 Merge branch 'develop' into push-rules-settings
# Conflicts:
#	src/component-index.js
#	src/components/views/rooms/RoomSettings.js
2016-01-18 18:00:41 +01:00
David Baker
0ac997491e Clarify comment 2016-01-18 14:23:31 +00:00
Matthew Hodgson
51648b9bf0 merge develop 2016-01-18 14:02:19 +00:00
Matthew Hodgson
6e3245a3b0 make linkify userid jump to memberinfo 2016-01-18 01:26:15 +00:00
Matthew Hodgson
f3aeda7af9 merge develop 2016-01-17 23:31:21 +00:00
Matthew Hodgson
1467aacfa4 support saving tag changes (untested) 2016-01-17 12:27:21 +00:00
Matthew Hodgson
5b5bd9aef1 remove create_room for now. lots of stupid bugfixes across the board. 2016-01-17 03:59:31 +00:00
Matthew Hodgson
82a159d651 make roomsettings actually work, including alias editing. (using staged UX rather than direct manipulation). loads of tweaks and fixes across the board 2016-01-17 02:48:55 +00:00
David Baker
7045906d5d Show user settings screen on registration instead of the PostRegister stuff. 2016-01-15 18:58:18 +00:00
David Baker
a90f63f72c null check 2016-01-15 18:49:12 +00:00
David Baker
a849955c51 Merge pull request #93 from matrix-org/registration_field_validate
Do (more) client side validation of registration parameters.
2016-01-15 16:38:46 +00:00
Matthew Hodgson
f476150591 fix changeavatar to avoid duplicate click on label 2016-01-15 16:33:34 +00:00
Matthew Hodgson
293f5c7120 shrink auxpanel a bit for roomsettings 2016-01-15 15:53:53 +00:00
Matthew Hodgson
b8afccd445 fix droptarget behaviour 2016-01-15 15:23:02 +00:00
Matthew Hodgson
4a2c2d9656 fix broken merge and revert some of 243b2e45 and document evil magic numbers 2016-01-15 14:22:17 +00:00
David Baker
b60d14a408 Merge pull request #91 from matrix-org/show_upload_in_current_room_only
Only show uploads that are going to the current room
2016-01-15 13:45:23 +00:00
David Baker
02e41450b4 Do (more) client side validation of registration parameters. 2016-01-15 13:31:41 +00:00
Matthew Hodgson
7cc5925ec4 increase initialSyncLimit enormously to avoid slow gappy /syncs for now 2016-01-15 13:28:41 +00:00
Matthew Hodgson
e1e46be220 apply gemini scrollbar 2016-01-15 13:11:14 +00:00
Matthew Hodgson
828b1f4837 fix up look and feel of UserSettings a bit more 2016-01-15 12:35:30 +00:00
manuroe
f868f7813b Room settings: Added notifications mute checkbox 2016-01-14 19:06:48 +01:00
Kegsay
b491447702 Merge pull request #89 from matrix-org/kegan/slash-command-tab-complete
Implement tab-complete for slash commands
2016-01-14 17:34:20 +00:00
Matthew Hodgson
06ecf78e5f Merge branch 'develop' into matthew/roomsettings2 2016-01-14 16:50:12 +00:00
David Baker
d33d606912 Only show uploads that are going to the current room
Fixes #506
2016-01-14 16:31:42 +00:00
Matthew Hodgson
ffaea371ac Merge branch 'kegan/slash-command-tab-complete' into matthew/roomsettings2 2016-01-14 16:02:29 +00:00
David Baker
7e5d4b8ce8 Send an event at the end of user activity too and use this to send RRs. 2016-01-14 16:01:31 +00:00
Kegan Dougal
b67131f0c8 Add a Command class; add Entry.getFillText()
getFillText() serves to decouple the text displayed in the auto-complete list
via getText() and the text actually filled into the box via getFillText(). This
allows us to display command + args on the list but only fill the command part.

A Command class has been added to provide some structure when extracting the
command name and args. Manually tested and it works.
2016-01-14 14:39:58 +00:00
Kegan Dougal
864d10f412 Make individual Entrys responsible for determining suffixes
This makes it cleaner as CommandEntry always wants a space, but MemberEntry
wants a space or ": " depending on if it is the first word or not.
2016-01-14 11:39:24 +00:00
Matthew Hodgson
123b134d87 use getDomain() 2016-01-13 18:15:59 +00:00
Matthew Hodgson
dc62f639f2 Merge branch 'kegan/slash-command-tab-complete' into matthew/roomsettings2 2016-01-13 18:11:11 +00:00
Matthew Hodgson
7a1e6bbe7e fix merge conflicts 2016-01-13 18:00:04 +00:00
Kegan Dougal
53f31e49da Implement tab-complete for slash commands
This needed a new interface function `getOverrideSuffix()` so we didn't suffix
commands at the start with ": ". All seems to work.
2016-01-13 17:46:36 +00:00
David Baker
11025e2ba9 Make read marker ghost same width as normal one. 2016-01-13 15:18:21 +00:00
Matthew Hodgson
5f763f8ebb merge develop 2016-01-13 14:03:54 +00:00
Kegan Dougal
69cac307d9 Merge branch 'develop' into kegan/guest-peek-then-join 2016-01-13 13:22:58 +00:00
Matthew Hodgson
c9c496f0e5 WIP all new roomsettings 2016-01-13 13:15:13 +00:00
Matthew Hodgson
f715662d18 merge in develop, fixing conflicts 2016-01-13 13:06:27 +00:00
Matthew Hodgson
3934b42ac8 s/m.room.color_scheme/org.matrix.room.color_scheme/g # to make kegan happier 2016-01-13 13:01:00 +00:00
David Baker
67ff769962 Include invites in the badge count 2016-01-13 13:00:03 +00:00
Kegsay
d10c96ede8 Merge pull request #87 from matrix-org/kegan/password-reset
Implement password reset
2016-01-13 10:35:54 +00:00
David Baker
2eb724f1f0 Merge pull request #85 from matrix-org/read_marker_animate
Improve read markers so they show at appropriate times and animate away.
2016-01-12 17:57:14 +00:00
David Baker
848cb30ea4 Remove ill-concieved delay before sending read receipts & instead just wait a bit before removing the ghost read marker. 2016-01-12 17:48:34 +00:00
Kegan Dougal
ec4e0d7687 Implement password reset
This adds a link to the login screen with "Forgot your password?". Clicking it
takes you to a form with fields for an email address and a new password. This
makes the same API calls as the Angular SDK.

Manually tested resetting + not clicking link + invalid email and it all seems
to work.
2016-01-12 17:20:16 +00:00
David Baker
4a8b5dfe3a Don't display read markers (or ghosts) above our own messages. 2016-01-12 17:18:16 +00:00
David Baker
8b730c0a5d PR feedback 2016-01-12 16:38:09 +00:00
David Baker
37f1b4ba8a Tweaked style means we can have 100% width (well 99% otherwise we gain a horizontal scrollbar) 2016-01-12 14:13:42 +00:00
Kegan Dougal
eb955eb371 Add a RoomPreviewBar which asks if you'd like to join a peeked room 2016-01-12 14:11:15 +00:00
manuroe
953e138317 Settings page: Made the push notifications settings a separate component. This component is currently implemented at the app level 2016-01-11 17:05:27 +01:00
Richard van der Hoff
243b2e4587 Make the scrollpanel update itself correctly on video resize.
When we first get video, the video component will resize itself. This will
cause the page to be reflowed, but that doesn't trigger an update on the gemini
scrollbar. We therefore need to force an update on the messagepanel. Implement
this by providing an onResize property on the CallView component.

We need to do the same when we change the maxHeight on the video panel.

The same applies to resizing of the MessageComposer. That was previously
handled with a fugly roomView.forceUpdate() from MessageComposer - make it use
the same mechanism.

Finally: the messageComposer is at least 70 pixels, and up to 100 pixels high -
not 36. Fix the auxPanelMaxHeight calculation - and use a static constant
rather than hardcoding the number to avoid this happening again.
2016-01-11 15:28:59 +00:00
Richard van der Hoff
e7740cbc8b Merge pull request #84 from matrix-org/rav/fix_refs_npes
Fix some races due to promises completing after we've switched rooms
2016-01-11 15:25:17 +00:00
Kegsay
3cd805e71d Merge pull request #82 from matrix-org/kegan/guest-access
Implement guest access and upgrading
2016-01-11 15:19:39 +00:00
Kegan Dougal
fcdfce3760 Toggle auto-reg off when successfully registered as a guest.
Otherwise if you refresh -> auto-reg -> logout, you will get an infinite
spinner as it will think it is auto-registering again.
2016-01-11 15:12:55 +00:00
Richard van der Hoff
c30aeac315 Set our own booleans instead of using isMounted 2016-01-11 11:38:04 +00:00
Matthew Hodgson
aa80a5d494 fix layout bug for general auxPanel 2016-01-10 13:03:37 +00:00
Matthew Hodgson
684255044a switch EditableText to be built on contentEditable rather than switching divs and inputs, so that it can be used for managing multiline content like topics and room names, and use it in RoomHeader/RoomSettings 2016-01-10 12:56:45 +00:00
David Baker
1507b39940 Redundant line. 2016-01-09 00:07:51 +00:00
David Baker
7b2d56f619 Calculate what event we send a read receipt for after the delay so we send a receipt for the one the user actually settles on. 2016-01-08 22:19:51 +00:00
David Baker
7913b0b465 Length of the returned array, not the index of the timeline event. 2016-01-08 21:51:14 +00:00
David Baker
d63f83187f Only show read marker if it's somewhere other than at the bottom, make it animate away and put a short delay before the read marker advances so quickly changing to a room and then away again doesn't advance your read marker. 2016-01-08 21:18:47 +00:00
Richard van der Hoff
223f6f7914 Fix sorting of search result highlights
Make sure that we *actually* give preference to longer search result
highlights; it turns out that the code that looked like it was doing so has
never worked.
2016-01-08 13:25:03 +00:00
Richard van der Hoff
62cf34b58c Fix some races due to promises completing after we've switched rooms
Add a few isMounted() checks to promise handlers so that we don't end up
throwing NPEs.
2016-01-08 12:03:45 +00:00
Matthew Hodgson
ef00a1624d fix up RoomSettings somewhat and implement room colors 2016-01-08 03:22:38 +00:00
Kegan Dougal
a3df50f4c3 Implement guest account upgrading 2016-01-07 17:23:32 +00:00
Kegan Dougal
458d71a496 Attempt to peek into rooms we don't know about.
Also: display an error dialog if we fail to join the room if you click Join Room.
2016-01-07 16:22:17 +00:00
Kegan Dougal
c64f36c81b Merge branch 'develop' into kegan/guest-access 2016-01-07 13:21:06 +00:00
Matthew Hodgson
8170288acb Merge pull request #77 from matrix-org/matthew/dynamic-svg
Make SVGs and CSS dynamically recolourable
2016-01-07 11:42:30 +00:00
David Baker
ef473dec72 Add read-up-to green* line
* not actually green without CSS in vector-web
2016-01-07 11:18:41 +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
Richard van der Hoff
4624e7a485 Address review comments
s/onClick/onSelect/
2016-01-06 16:46:29 +00:00
Kegan Dougal
afbb451d4a Merge branch 'develop' into kegan/guest-access 2016-01-06 13:59:33 +00:00
Matthew Hodgson
f499c60b12 sundry PR feedback 2016-01-06 02:29:08 +00:00
Matthew Hodgson
509ea7c4f3 factor out tintable SVGs into their own component, and use plain DOM onload rather than react synthetic events 2016-01-06 02:11:07 +00:00
Matthew Hodgson
9e8daba8d7 Merge branch 'develop' into matthew/dynamic-svg 2016-01-06 01:11:34 +00:00
Richard van der Hoff
75302b1f97 Factor out a separate SearchResultTile 2016-01-05 17:56:59 +00:00
Kegan Dougal
d729dee31d Make the settings page load for guests. Add checkboxes for guest r/w 2016-01-05 17:34:25 +00:00
Richard van der Hoff
4730179c26 Fix slight mis-merge
We need to return 'true' from our promise of search result pagination.

Also inline _backPaginateSearch which mostly served to confuse, and use
debuglog instead of checking DEBUG_SCROLL
2016-01-05 15:51:16 +00:00
Richard van der Hoff
583d35e39f Merge branch 'develop' into rav/new_search_api
Conflicts:
	src/components/structures/RoomView.js
2016-01-05 15:38:30 +00:00
Richard van der Hoff
6c99fab3dd Highlight the search term in search results
Sometimes we don't get the search term back in the highlights list, so make
sure we add it.
2016-01-05 15:28:32 +00:00
Richard van der Hoff
355cabb7ee Merge pull request #70 from matrix-org/rav/scrollpanel_promises
Make ScrollPanel keep track of when fill requests are happening
2016-01-05 13:52:04 +00:00
Kegan Dougal
ae7b2d54bb Merge branch 'develop' into kegan/guest-access 2016-01-05 11:39:36 +00:00
Richard van der Hoff
2b169b06f5 Make ScrollPanel.isAtBottom more reliable
Given we want to use isAtBottom to figure out whether to show 'unread messages'
counts, we ought to return the current scroll state, rather than the saved one.

This fixes vector-im/vector-web#576
2016-01-05 11:02:18 +00:00
Matthew Hodgson
0e98764d82 oops, no double classNames 2016-01-05 03:51:00 +00:00
Matthew Hodgson
001dc8612b support fixing up dynamically loaded SVGs 2016-01-05 03:34:52 +00:00
Matthew Hodgson
555abdae30 wire up Tinter.js 2016-01-05 00:46:52 +00:00
Richard van der Hoff
e177263d9f Address review comments
Minor fixes post-review
2016-01-04 16:54:27 +00:00
Richard van der Hoff
b5eae891b4 Address review comments
Make onFillRequest always return a promise
2016-01-04 16:28:32 +00:00
Richard van der Hoff
89fcf019e1 Merge branch 'develop' into rav/scrollpanel_promises
Conflicts:
	src/components/structures/RoomView.js
2016-01-04 12:56:39 +00:00
Matthew Hodgson
3009da0b39 move title attributes to the div 2016-01-03 22:34:56 +00:00
Matthew Hodgson
4f915d622e switch SVGs from imgs to objects 2016-01-03 22:30:52 +00:00
Matthew Hodgson
424540e57a fix NPE if messagePanel isn't yet defined 2015-12-28 02:40:17 +00:00
Matthew Hodgson
50ac0ab4cf wire up RoomAlias's homeserver as intended 2015-12-28 02:36:28 +00:00
Richard van der Hoff
93e7f90ae4 ScrollPanel: implement forward-fill 2015-12-24 14:30:49 +00:00
Richard van der Hoff
f2a24521dc Make ScrollPanel keep track of when fill requests are happening
The dance to avoid doing repeated fill requests on every update is common, so
add it to ScrollPanel. Let onFillRequest return a promise, which prevents any
updates until it completes.
2015-12-24 14:15:50 +00:00
Richard van der Hoff
cc72f7ec24 Use new searchRoomEvents and backPaginateRoomEventsSearch methods
MatrixClient now exposes higher-level search APIs, so use them.
2015-12-24 13:33:58 +00:00
Kegan Dougal
5286ec170f Wrangle CSS to get avatar in right place 2015-12-24 09:20:16 +00:00
Kegan Dougal
05d1d7c82d Better error message for failing to set avatars with no connection 2015-12-23 17:30:25 +00:00
Kegan Dougal
abb170ebde Keep one source of truth (the Notifier) when toggling notification state. Fixes notifications. 2015-12-23 17:06:30 +00:00
Kegan Dougal
a279dce027 Get avatar display and uploads working 2015-12-23 16:52:59 +00:00
Kegan Dougal
19bd39b066 More random tweaks
- Make onBlur reset the EditText to show that it hasn't submitted it.
- Add the user ID of the logged in user to Advanced.
- Remove remnants of the Save/Cancel buttons.
2015-12-23 16:02:18 +00:00
Kegan Dougal
72b8cf1be2 Refactor ChangePassword to get it working. Add 'Account' section because trying to make ChangePassword divs part of the same table as the display name is nigh impossible. Feels okay though 2015-12-23 15:38:28 +00:00
Kegan Dougal
6295cf2ec9 Merge branch 'develop' into matthew/settings 2015-12-23 14:19:42 +00:00
Kegan Dougal
e657b40a7e Use ChangeDisplayName for implict display name saving on enter 2015-12-23 14:14:25 +00:00
Kegan Dougal
1af5018597 General code cleanup / tweaks / fixes
- Swap Phases enum to be using string literals
- Swap roomId prop on UserSettings for a more sane onUserSettingsClose and
  make MatrixChat responsible for swapping the room.
- s/then/done/ when terminating Promise chains to avoid subtle errors.
- Rejig render() of UserSettings so we don't need to indent quite so much.
2015-12-23 11:47:56 +00:00
Kegan Dougal
810e8993d6 Merge branch 'develop' into kegan/tab-complete 2015-12-22 17:44:04 +00:00
Kegan Dougal
452c265e6a Implement automatically entering tab complete mode after a short delay
This seems to work. Manually tested for sanity.
2015-12-22 16:49:58 +00:00
Kegan Dougal
460f68caef Move RoomMember[] -> MemberEntry[] conversion somewhere sensible
This is required for automatically entering tab-complete mode because
onKeyDown is NOT called in that case, so we need to make sure to have a
membership list hanging around.
2015-12-22 15:38:23 +00:00
Richard van der Hoff
cdd539c3cd Factor out a separate 'ScrollPanel'
Create an intelligent scrolling list, which doesn't care what it contains, to
try and clean up some of the logic in RoomView.
2015-12-22 15:18:50 +00:00
Kegan Dougal
a20cabb06f Merge branch 'develop' into kegan/tab-complete 2015-12-22 15:16:39 +00:00
David Baker
05d9e1261c Merge remote-tracking branch 'origin/develop' into notif_sync 2015-12-22 14:47:11 +00:00
Kegan Dougal
e541ddb060 Auto-complete clicked suggestions 2015-12-22 11:14:36 +00:00
Richard van der Hoff
cc90f4c0c6 Merge pull request #64 from matrix-org/rav/fix_date_separator
Fix bug with date separator flashing up on scrollback
2015-12-22 11:05:26 +00:00
Richard van der Hoff
360806a8f1 RoomView: add whitespace for disambiguation 2015-12-22 11:04:39 +00:00
Matthew Hodgson
618978d955 add appropriate CSS for the TabCompleteBar 2015-12-22 00:47:04 +00:00
Kegan Dougal
c8aaee46d7 Mark a TODO for timeout handling 2015-12-21 17:58:36 +00:00
Kegan Dougal
4e79c3c4c8 Add allowLooping opt for tab completion. Make peeking work. 2015-12-21 17:16:49 +00:00
Kegan Dougal
41d4c1d14e Add TabComplete.Entry so we can render images AND text(!) - Add peek() option, all broken. 2015-12-21 14:34:25 +00:00
Kegan Dougal
400b5196bb Add TabCompleteBar. Hook up display to whether we are currently tab completing. 2015-12-21 14:11:34 +00:00
Richard van der Hoff
7c285f9ad0 Add a 'No results' marker when there are no search results at all.
Also reword the 'no more results' marker.
2015-12-21 13:46:27 +00:00
Matthew Hodgson
b9ba4475b8 Merge branch 'develop' into matthew/settings 2015-12-21 13:09:33 +00:00
David Baker
6ea3f21a8e Favicon badges 2015-12-21 12:55:13 +00:00
Richard van der Hoff
765e5bdeb1 Add a 'top-of-search' marker
Ugly as hell, pending better suggestions.

This fixes https://github.com/vector-im/vector-web/issues/547
2015-12-21 12:39:10 +00:00
Kegan Dougal
26dc3cc553 Push up instantiation of TabComplete to RoomView
RoomView is the parent component which creates MessageComposer AND the status
bar. By making RoomView instantiate TabComplete we can scope instances
correctly rather than relying on singleton behaviour through dispatches. This
also makes communication between status bar and the MessageComposer infinitely
easier since they are now sharing the same TabComplete object.
2015-12-21 10:59:10 +00:00
Richard van der Hoff
afadb23f89 Fix bug with date separator flashing up on scrollback
Refactor the event-tile generation loop to go forwards rather than backwards,
which makes it easier to figure out whether we are displaying a continuation of
the previous event, and whether we need a date separator.

Also only display the date separator at the top of the room if there's no more
scrollback to be shown.

This fixes vector-im/vector-web#431
2015-12-21 10:49:00 +00:00
Richard van der Hoff
ff6d9454fd Merge pull request #63 from matrix-org/rav/paginate_search
Pagination for search results
2015-12-21 09:16:42 +00:00
Kegan Dougal
d1baf5854c Only display the MessageComposer if you're joined and not viewing search results 2015-12-18 17:23:46 +00:00
Kegan Dougal
a2872deb53 Merge branch 'develop' into kegan/archived-rooms 2015-12-18 16:59:25 +00:00
Kegan Dougal
461e3f46dc Show an ErrorDialog when failing to forget a room 2015-12-18 16:56:37 +00:00
Richard van der Hoff
44c42394ae Fix scroll for search results
Make sure that we save scroll position when searching, and use it to preserve
offset when backfilling.
2015-12-18 16:42:46 +00:00
Matthew Hodgson
831aaec457 Merge pull request #57 from matrix-org/matthew/inbound-calls
Position the inbound call box correctly
2015-12-18 15:59:18 +00:00
Matthew Hodgson
08ffadc2c4 unbreak 2015-12-18 14:04:39 +00:00
Richard van der Hoff
ec32347f43 Request more search results when scroll hits top of window 2015-12-18 11:13:32 +00:00
Richard van der Hoff
4b271a332e Refactor the search stuff in RoomView
* factor out the call to MatrixClient.search to a separate _getSearchBatch (so
  that we can reuse it for paginated results in a bit)
* Don't group cross-room searches by room - just display them in timeline
  order.
2015-12-18 11:11:41 +00:00
Richard van der Hoff
d6c208a275 Reinstate the DnD event listener removals, with comments 2015-12-18 10:19:07 +00:00
Matthew Hodgson
4baf9d5589 Fix paths 2015-12-18 00:40:01 +00:00
Matthew Hodgson
e2ae2dd199 merge stuff from vector 2015-12-18 00:37:56 +00:00
Richard van der Hoff
e0d05d4f4b Initialise the messagepanel correctly after accepting an invite
This should fix vector-im/vector-web#538.

I'm sorry.
2015-12-17 22:07:56 +00:00
Richard van der Hoff
6ee0c72340 Merge pull request #58 from matrix-org/rav/yet_more_scroll_fixes
Fix issue with rooms not scrolling down when new events arrive
2015-12-17 17:40:41 +00:00
Kegan Dougal
8e4d0c0be7 Merge branch 'develop' into kegan/archived-rooms 2015-12-17 17:07:18 +00:00
Kegan Dougal
6e324a0dd1 Whoops, didn't mean to add this 2015-12-17 15:12:09 +00:00
Kegan Dougal
32bd9d155c Pass a new prop 'startingQueryParams' to pluck out the email from the URL
This is preferable to doing the way other QPs are passed (secret, etc) because
the link in the email wants to look like "#/room/<room_id_or_alias>" for guest
read-access (only bouncing you to /login if that room is not readable by guests).
This is hard to do in the current arch because we don't preserve QPs on /room
paths, and we do conditional executions depending on if it is a room ID or
alias. Rather than threading through the email in each section and creating
a fragile mess, just pass the *starting* set of query parameters through to
MatrixChat which can then do the Right Thing when the time comes.
2015-12-17 14:56:55 +00:00
Richard van der Hoff
3ff19dc4db Fix issue with rooms not scrolling down when new events arrive
Remove an optimisation which tried to avoid recalculating the scroll on every
render. The problem is that sometimes, when new events, the number of event
tiles remains the same, but we still need to do a scroll, because the height of
the message list changes.

The optimisation was a bit of a waste of time anyway - the actual render will
always be much more difficult than recalculating the scroll position.
2015-12-17 14:14:26 +00:00
Matthew Hodgson
d979a028a5 position the inbound call box correctly, and fix various issues with when the video preview and callview are shown 2015-12-17 02:49:09 +00:00
Matthew Hodgson
4327a2302d spell out affected versions 2015-12-16 18:05:15 +00:00
Richard van der Hoff
dc13b944bc Hacky fixes to jumpy scroll when backfilling
Keep resetting our scroll offset until the DOM believes us. Hopefully this will
fix vector-im/vector-web#528.
2015-12-16 17:57:32 +00:00
Kegan Dougal
f7aa8be1c1 Add a forget button. Add left rooms to the "historical" tab.
Call /forget when the forget button is clicked. Number of shortcomings:
 - We need to lazy load the historical list (atm we never get the list of left
   rooms; things only go into that list if you leave the room whilst running)
 - Once a room is forgotten we need to physically nuke it from the JS SDK.
 - Need icon for forget room.
2015-12-16 16:06:29 +00:00
Kegsay
186b727303 Merge pull request #54 from matrix-org/kegan/hide-fs-users
Do not show conf user join/parts
2015-12-16 13:56:55 +00:00
Richard van der Hoff
f24b7ba67c use RoomView.ScrollToBottom instead of reimplementing it 2015-12-16 13:31:36 +00:00
Kegan Dougal
09e0d10d32 Do not show conf user join/parts 2015-12-16 11:54:29 +00:00
Matthew Hodgson
8ebacc572b apply class to typing text to fix typing notifs 2015-12-15 15:59:31 +00:00
Kegan Dougal
a670a7e4c4 Don't spam logging 2015-12-15 14:23:58 +00:00
Matthew Hodgson
a8d7810bfc add fullscreen button back 2015-12-15 00:01:47 +00:00
Matthew Hodgson
39c628d4a1 implement the 'correct' voip calling design 2015-12-14 23:37:46 +00:00
Kegan Dougal
4488844ad9 Use getSender() instead of gut wrenching event.user_id for v2 compat 2015-12-14 15:36:34 +00:00
Kegan Dougal
0f62388d3c Don't re-render after each /sync call 2015-12-14 11:32:22 +00:00
Richard van der Hoff
68cdff1159 Fix 'Create room' and 'Settings' buttons
These buttons were broken by PR #49... wire them up correctly.
2015-12-14 11:07:59 +00:00
Matthew Hodgson
ead6d5a25e backfill on accepting invites 2015-12-13 15:18:44 +00:00
Matthew Hodgson
5ce917ba84 merge in develop 2015-12-13 14:47:53 +00:00
Matthew Hodgson
6ad6ed2a49 factor out room-leaving code into MatrixChat for now, and add a dedicated leave button in to the header bar for now 2015-12-13 13:49:28 +00:00
Matthew Hodgson
43ab6074c9 sacrifice a herd of goats to correctly size the remote video element when on a call. turns out flexbox isn't smart enough to let us say that the minimum height of the element should be the (scaled) intrinsic height of the video stream, and that the max height should be ~80% of the height of the normal timeline. so we fudge it with JS instead, which turns out to work fine. after a lot of poking at flexbox i'm fairly convinced this is a fundamental limitation: the implicit height of the video tag can only be used as the minimum height of the auxPanel if you give up on the flexbox shrink/grow being able to constrain it too. there's a chance I made a mistake, but whatever, this works well enough. 2015-12-13 04:32:48 +00:00
Matthew Hodgson
b78add39f4 fix d&d ui 2015-12-12 16:35:40 +00:00
Richard van der Hoff
0d47495e04 RoomView: Remove another redundant unreadMessageCount reset
There's never any need to reset the unreadMessageCount in ComponentDidUpdate,
as an update can never cause there to be *fewer* unread messages. Instead we
rely on the reset in onMessageListScroll.
2015-12-11 11:04:12 +00:00
Matthew Hodgson
3b245f0131 discard stale search results 2015-12-11 03:22:44 +00:00
Matthew Hodgson
af3c43ca76 show result counts 2015-12-11 02:58:59 +00:00
Matthew Hodgson
f38c71d34b update the UI whilst searching 2015-12-11 02:25:33 +00:00
Richard van der Hoff
ee0f0e332a Remove redundant 'waiting_for_paginate' 2015-12-10 22:08:35 +00:00
Richard van der Hoff
a863839063 Don't try to fiddle with the scroll state in search mode 2015-12-10 22:04:52 +00:00
Richard van der Hoff
669fae48ea Merge remote-tracking branch 'origin/develop' into rav/preserve_room_scroll 2015-12-10 21:53:59 +00:00
Richard van der Hoff
b7699c0544 Save scroll state when swapping to non-room pages too 2015-12-10 21:53:14 +00:00
Richard van der Hoff
d9782b35e1 Fix review comments
camelcasing and comments
2015-12-10 21:44:30 +00:00
Richard van der Hoff
1a3fb9aca9 Preserve scroll position when backfilling
Save the scroll state whenever the user does a scroll operation, and use that
to update the scroll after a backfill completes.
2015-12-10 21:34:10 +00:00
Richard van der Hoff
a1d88722aa Avoid kicking off two pagination requests at once
Make sure that we don't end up with two concurrent pagination requests by
firing off the second from the completion handler of the first. This ends up
making the code a bit simpler.
2015-12-10 20:53:21 +00:00
Richard van der Hoff
00656fc1dc Preserve scroll offset when switching rooms
When we change rooms, save the scroll offset, and restore the scroll when we
switch back.

Hopefully this fixes https://github.com/vector-im/vector-web/issues/80.
2015-12-10 16:26:36 +00:00
Erik Johnston
5a1853210e Handle the fact that newer homeservers return lists rather than dicts 2015-12-10 13:58:06 +00:00
Kegan Dougal
b64e5d49cc Add magic flag to say 'dump pending events to the end' 2015-12-07 15:33:58 +00:00
Matthew Hodgson
08d7c0232a svgize images 2015-12-06 22:07:49 +00:00
Kegan Dougal
92cf14d5e9 Support registration as a guest 2015-12-04 15:28:35 +00:00
David Baker
6a67342d02 Comment + 1 2015-12-04 12:02:54 +00:00
David Baker
141d757a01 Don't recalculate atBottom here - we do it in onScroll and it should only be necessary to do it once. Also remove the magic 150px leeway. 2015-12-04 12:00:55 +00:00
Kegan Dougal
d0ec84fe59 Hook up auto-registration as a guest to MatrixChat. 2015-12-04 11:34:50 +00:00
David Baker
c0391145e5 Merge pull request #45 from matrix-org/file_uploads
Improve file uploads
2015-12-03 10:57:55 +00:00
David Baker
e8f5131ed6 Make file uploads cancelable, make them not go weird if you change rooms, error if they fail and move upload status bar out into its own component. 2015-12-02 18:16:16 +00:00
Matthew Hodgson
aeb8e21b5d better typing test :D 2015-12-02 17:38:02 +00:00
Kegan Dougal
673b01267a Use LoginHeader everywhere 2015-12-01 16:29:58 +00:00
Kegan Dougal
05a6121934 Add default LoginHeader 2015-12-01 16:27:48 +00:00
Kegan Dougal
52f3d7f18b Add generic LoginFooter. Remove vector reference 2015-12-01 16:12:13 +00:00
Kegan Dougal
636be0c003 Update getComponent paths 2015-12-01 15:45:11 +00:00
Kegan Dougal
726c893663 Merge branch 'develop' into kegan/vector-components 2015-12-01 15:39:15 +00:00
Kegan Dougal
d5819d54db Fix typos 2015-12-01 15:36:40 +00:00
Kegan Dougal
fe16b221f8 s/vector.im/matrix.org/ 2015-12-01 13:48:53 +00:00
Kegan Dougal
784c1b63dc Move remaining vector molecules to components 2015-12-01 11:19:25 +00:00
Kegan Dougal
1e694da460 Move MatrixChat and login components to react SDK.
Removed Modulator as it is no longer necessary in this form. ConferenceHandler
is injected in src/vector/index.js
2015-11-30 18:11:04 +00:00
Kegan Dougal
02a71b20a9 Merge and move RoomView to /structures. Add Resend.js from vector. 2015-11-30 17:15:57 +00:00
Kegan Dougal
f96e7a0dc8 Add UserSettings structure 2015-11-30 15:52:41 +00:00
Kegan Dougal
cf6b5461cc Move and merge CreateRoom 2015-11-30 10:55:15 +00:00