Commit Graph

320 Commits (b7555f49ea49e6f912d9b775d97af767ec470bf3)

Author SHA1 Message Date
Richard van der Hoff 6422f7ecc8 Factor out separate RoomNameEditor and RoomTopicEditor components 2016-03-29 15:21:16 +01:00
Matthew Hodgson 8b67a1059d oops, forgot a sync dispatch on onSearchResultsResize 2016-03-24 02:14:16 +00:00
Matthew Hodgson 151a9994ba WIP fix for image load popping 2016-03-24 00:13:32 +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
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
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 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
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 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 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
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
Matthew Hodgson 50e33d30b6 never try to tab-complete yourself, doofus 2016-03-16 23:35:01 +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 5e050c6276 hopefully fix https://github.com/vector-im/vector-web/issues/819 2016-03-15 00:49:44 +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
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
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 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 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 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
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
David Baker de2eaa3078 Document inviterName 2016-03-02 14:04:51 +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 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
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 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 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 d2a731e255 only resize the video element if not fullscreen 2016-02-19 01:18:53 +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 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
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 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 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
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
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 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
Richard van der Hoff 1d9c88698f Factor the statusbar implementation out of RoomView
... because RoomView must die
2016-02-08 18:08:19 +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 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
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
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