Commit graph

658 commits

Author SHA1 Message Date
Luke Barnard
04dd98e6e9 Remove references to tabComplete, which are now redundant
(since the old composer has been removed)
2017-07-13 10:16:59 +01:00
Richard van der Hoff
0254d2b3a2 q(...) -> Promise.resolve
```
find src test -name '*.js' | xargs perl -i -pe 's/\b[qQ]\(/Promise.resolve(/'
```
2017-07-12 18:05:08 +01:00
Richard van der Hoff
a06bd84213 replace imports of q with bluebird
update `package.json`

```
find src test -name '*.js' |
   xargs perl -i -pe 'if (/require\(.[qQ].\)/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'

find src test -name '*.js' |
   xargs perl -i -pe 'if (/import [qQ]/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'
```
2017-07-12 18:05:08 +01:00
David Baker
53316a76f4 Sandbox app iframes 2017-07-12 10:22:14 +01:00
Kegsay
cf158530f5 Implement new widget API (#1201)
* Implement new widget API

This allows clients to see who provisioned which widgets.

* Update to make state_key the wid

* Update to latest API

* Only show widgets which have required fields

* Don't constantly show apps dialog

* Fix example to include data key
2017-07-11 12:15:27 +01:00
Richard Lewis
ff1636aaf5 Simplify boolean assignment. 2017-06-28 12:21:05 +01:00
Richard Lewis
06dafdc099 Remove unused state variable. 2017-06-28 12:20:07 +01:00
Richard Lewis
bf2a4afce5 Change to allow setting of DEBUG at run-time. 2017-06-28 12:02:07 +01:00
Richard Lewis
8dfd047f03 Don't show widgets when editing room settings and lint fixes. 2017-06-27 17:39:29 +01:00
Richard Lewis
ad9a3d9ddc Remove unused case statement. 2017-06-27 11:55:32 +01:00
Richard Lewis
89f051e693 Fix automerge error. 2017-06-27 11:52:49 +01:00
Richard Lewis
ddc0da396d Merge in changes from develop 2017-06-27 11:44:36 +01:00
Luke Barnard
ddb84f034e Update tab-complete state onRoom received after joining
As opposed to doing it when the component mounts.

Fixes https://github.com/vector-im/riot-web/issues/3700 (hopefully)
2017-06-23 17:52:50 +01:00
Luke Barnard
87609582c6 Merge branch 'develop' into rte-fixes2
Conflicts:
	package.json
	src/autocomplete/CommandProvider.js
	src/autocomplete/UserProvider.js
	src/components/structures/RoomView.js
	src/components/structures/UserSettings.js
	src/components/views/rooms/MessageComposerInput.js
2017-06-23 15:30:06 +01:00
Matthew Hodgson
032650e095 Merge branch 'develop' into t3chguy/fix_forwarding 2017-06-19 01:53:35 +01:00
Luke Barnard
be58e1095e Don't peek when creating a room
This causes a race between receiving the room when starting to peek and receiving the room from joining it - https://github.com/vector-im/riot-web/issues/4330, https://github.com/matrix-org/riot-web-rageshakes/issues/196
2017-06-16 18:24:07 +01:00
Michael Telatynski
7b4cd31124 make forward_message be friendly with the RVS stuffs
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-16 16:12:52 +01:00
David Baker
64b555dfe3 Merge pull request #1107 from matrix-org/luke/fix-use-room-alias-in-preview
Make sure to pass the roomAlias to the preview header if we have it
2017-06-16 11:21:03 +01:00
Luke Barnard
807f01b57e Make sure to pass the roomAlias to the preview header if we have it 2017-06-16 11:10:55 +01:00
David Baker
af6392d7ca Fix URL previews
and also things like the unsent message error and encryption
warning.

Stuff that we need to do at room view mount time had got moved into
a clause of the if statement in onHaveRoom and so wasn't being
executed.

Fixes https://github.com/vector-im/riot-web/issues/4327
2017-06-15 22:57:41 +01:00
Luke Barnard
9d74001f4f Show a spinner when accepting an invite and waitingForRoom 2017-06-15 15:32:01 +01:00
Luke Barnard
cc46fd34d7 Only stop peeking if at some point we were joined 2017-06-15 14:21:23 +01:00
Luke Barnard
5c37d591b0 Unbreak auto joining 2017-06-15 13:35:19 +01:00
Luke Barnard
fc7da536d6 Add forceUpdate for memberships !== join 2017-06-15 13:32:56 +01:00
Luke Barnard
30566beb43 Fix if-statement thinko 2017-06-15 13:28:52 +01:00
Luke Barnard
d55d61e456 Remove redundant isUserJoined 2017-06-15 12:37:01 +01:00
Luke Barnard
b90ceaa111 Display a spinner until new room object after join success
If we successfully join, display a spinner until the js-sdk indicates (via room membership event or room event) that we can start using the room normally. A room event indicates we have never seen that room which means we need to use the new room object to clobber state.room. This is to make sure we replace the room that is set up for peeking with the room that can be used normally. For historical rooms, this isn't a problem.

This is a workaround for the fact that when peeking, the js-sdk calls onRoom, which is difficult to handle from the clients perspective because onRoom should only be called for rooms that you've never seen before. But if you peek a room that you've joined and left and get an onRoom, you run into trouble. You also can't just always use onRoomMembership because this won't be triggered for the first time you see the room. So we end up using a combination of both.

See https://github.com/matrix-org/matrix-js-sdk/issues/464 for discussion on improving this
2017-06-15 12:01:16 +01:00
Luke Barnard
58554cce53 Remove racey condition
joining might become false before we get the room down the sync
2017-06-14 17:13:13 +01:00
Luke Barnard
ed5f01d46f Add logging for diagnosis 2017-06-14 16:53:21 +01:00
Luke Barnard
b5fd78a97f Only attempt to peek once in the lifetime of RoomView 2017-06-14 16:50:46 +01:00
Luke Barnard
2d6ba056d1 Attempt to follow closely what RoomView did pre-ILAG
In terms of peeking and what happens to the state when joining. This is another attempt to mitigate https://github.com/vector-im/riot-web/issues/4307
2017-06-14 16:48:34 +01:00
Robert Swain
03ba3bd431 Merge branch 'rxl881/apps' into rob/apps 2017-06-13 15:41:52 +02:00
Robert Swain
e2759774fc RoomView: Correctly pass userId from matrix client
It isn't set in the state anywhere.
2017-06-13 15:19:38 +02:00
Robert Swain
99b1de7f0e RoomView: Display AppsDrawer if apps in room state 2017-06-13 15:19:06 +02:00
Richard Lewis
876899948f Merge in upstream changes 2017-06-13 11:44:23 +01:00
Richard Lewis
f9f924bbd6 Merge branch 'master' of https://github.com/matrix-org/matrix-react-sdk into rxl881/apps 2017-06-12 14:50:25 +01:00
Robert Swain
9e0b476b72 Merge branch 'develop' into rob/apps 2017-06-09 12:06:44 +02:00
Luke Barnard
c02dbd1cdc Rename initial state variables 2017-06-08 17:26:08 +01:00
Luke Barnard
000a045e35 Rename RVS state (event -> initialEvent) and redocument 2017-06-08 15:52:21 +01:00
Luke Barnard
1792fa45f4 Null-guard roomId before sending a dispatch to update scroll state
Otherwise we pointlessly assign the null key to something
2017-06-08 15:45:50 +01:00
Luke Barnard
59e649f326 Add comment about roomId potentially not being resolved following an update from RoomViewStore 2017-06-08 15:43:45 +01:00
Luke Barnard
e58e4db628 Explain why search results are cleared when eventId changes 2017-06-08 15:38:58 +01:00
Luke Barnard
dca2be6325 Add RoomView initial state and docs 2017-06-08 15:37:30 +01:00
Luke Barnard
d3cf78ff5a Control currently viewied event via RoomViewStore
Fix for https://github.com/vector-im/riot-web/issues/4224

Due to the way `MatrixChat` does a state update when the `view_room` dispatch fires and a second update when `RoomViewStore` sends an update, the current event ID and room ID were becoming out of sync. The solution devised was to have the event ID managed by the `RoomViewStore` itself and do any defaulting there (for when we revisit a room that we saved scroll state for previously).

This required a few changes:
 - The addition of `update_scroll_state` in `RoomViewStore` allows the `RoomView` to save scroll state for a room before swapping to another one. Previously the caching of scroll state was done in `RoomView`.
 - The `view_room` dispatch now accepts an `event_id`, which dictates which event is supposed to be scrolled to in the `MessagePanel` when a new room is viewed. It also accepts `event_offset`, but currently, this isn't passed in by a dispatch in the app, but it is clobbered when loading the default position when an `event_id` isn't specified. Finally, `highlighted` was added to distinguish whether the initial event being scrolled to is also highlighted. This flag is also used by `viewRoom` in `MatrixChat` in order to decide whether to `notifyNewScreen` with the specified `event_id`.
2017-06-08 14:17:49 +01:00
Luke Barnard
53ea41e8a5 Merge branch 'develop' into new-guest-access 2017-06-07 12:08:37 +01:00
David Baker
1dbdbc163b Cancel 'join room' action if 'log in' is clicked
or 'choose different server'

We canceled the deferred action in the MatrixChat SetMxId dialog
but not the one in roomview.

Fixes https://github.com/vector-im/riot-web/issues/4217
2017-06-07 11:55:24 +01:00
Kegan Dougal
4127e7121c Translate src/components/structures
Includes some pluralisation! Tested them manually to make sure they work.
2017-06-07 11:40:46 +01:00
Richard Lewis
dc4f321707 Pass room and user id to apps draw 2017-06-05 18:21:31 +01:00
Luke Barnard
239874ccce Introduce state peekLoading to avoid collision with roomLoading
The room loading spinner will now be displayed if the alias is being resolved (roomLoading) or if the peek is being loaded for the room `peekLoading`.
2017-06-05 09:52:39 +01:00
David Baker
2cc9f9c403 Fix accepting a 3pid invite
Fixes https://github.com/vector-im/riot-web/issues/4123
2017-06-02 16:25:14 +01:00
David Baker
03f4f269ce Propagate room join errors to the UI
Dispatch so we can set the state in RoomViewStore. Show the error
when the room join fails (unsure if it's better to do this from
the component or the store). Remove unused joinError from roomview.
2017-06-02 11:53:10 +01:00
Luke Barnard
16c4c14a16 Fix to show the correct room 2017-06-01 18:01:30 +01:00
Matthew Hodgson
e30e45a82c Merge branch 'develop' into new-guest-access 2017-05-30 21:05:07 +01:00
Michael Telatynski
ee6789ed15 change aux order so room settings is top most, forwarding could go weird
if you clicked roomsettings whilst forwarding

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-30 11:22:27 +01:00
Michael Telatynski
baba2e12e2 fix weird indentation
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-30 11:21:33 +01:00
Michael Telatynski
ff9141e424 add a hideCancel flag as some things have own cancel etc on RoomHeader
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-30 11:20:41 +01:00
Matthew Hodgson
df599890c5 add login link to SetMxIdDialog 2017-05-29 01:32:31 +01:00
Matthew Hodgson
5c885922d9 Merge branch 'develop' into new-guest-access 2017-05-28 22:58:18 +01:00
Matthew Hodgson
accc17a39a Merge pull request #812 from t3chguy/forward_message
Message Forwarding
2017-05-28 02:37:31 +01:00
David Baker
2d6bf5fa91 Remove messages with HTML formatting
The translations strings are not HTML and it gets escaped.
2017-05-25 20:04:28 +01:00
David Baker
443ab1add7 Put back default strings on dialogs
But make them work by calling _t in render rather than
getDefaultProps().

Also sort out some 'Warning!' strings
2017-05-25 18:20:48 +01:00
Luke Barnard
91edc06441 Use RVS to indicate "joining" when setting a mxid
This prevents RoomView from doing any peeking whilst the join/registration is in progress, causing weirdness with TimelinePanel getPendingEventList (which throws an error if called when peeking).
2017-05-25 17:04:42 +01:00
David Baker
5c359e63ab Bulk change counterpart imports
to use languageHandler wrapper func
2017-05-25 11:39:08 +01:00
Luke Barnard
298c5e4df3 Implement a store for RoomView
This allows for a truely flux-y way of storing the currently viewed room, making some callbacks (like onRoomIdResolved) redundant and making sure that the currently viewed room (ID) is only stored in one place as opposed to the previous many places.

This was required for the `join_room` action which can be dispatched to join the currently viewed room.

Another change was to introduce `LifeCycleStore` which is a start at encorporating state related to the lifecycle of the app into a flux store. Currently it only contains an action which will be dispatched when the sync state has become PREPARED. This was necessary to do a deferred dispatch of `join_room` following the registration of a PWLU (PassWord-Less User).

The following actions are introduced:
 - RoomViewStore:
    - `view_room`: dispatch to change the currently viewed room ID
    - `join_room`: dispatch to join the currently viewed room
 - LifecycleStore:
    - `do_after_sync_prepared`: dispatch to store an action which will be dispatched when `sync_state` is dispatched with `state = 'PREPARED'`
 - MatrixChat:
    - `sync_state`: dispatched when the sync state changes. Ideally there'd be a SyncStateStore that emitted an `update` upon receiving this, but for now the `LifecycleStore` will listen for `sync_state` directly.
2017-05-24 16:56:13 +01:00
David Baker
d419c42a4f Squash merge https://github.com/matrix-org/matrix-react-sdk/pull/801 2017-05-23 15:16:31 +01:00
Luke Barnard
05aaa599cc Merge branch 'develop' into new-guest-access
Conflicts:
	src/components/structures/MatrixChat.js
2017-05-22 16:19:10 +01:00
Michael Telatynski
cc7edbf86d allow for sending arbitrary events, also override highlight with
event currently being forwarded while forwardingEvent is set

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-19 01:29:11 +01:00
Michael Telatynski
a2ab36f598 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into forward_message
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-19 00:33:36 +01:00
Richard Lewis
7e1de2ac35 Show/hide apps panel and misc formatting and lint fixes 2017-05-17 21:15:57 +01:00
Luke Barnard
f199f3599e Replace NeedToRegisterDialog /w SetMxIdDialog
This uses MatrixChat's `view_set_mxid`
2017-05-15 17:31:26 +01:00
Michael Telatynski
5e4467adce hide settings/search appropriately
pass inRoom prop to RoomHeader (defaults to false)
remove default onSettingsClick, handle if it is passed EVERYWHERE

if onSettingsClick is passes, show that button
show search button only if we are in the room, seems to fail otherwise
this seems to handle all cases I could throw at it. Give it your best

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-11 17:35:06 +01:00
Luke Barnard
5151264f60 Merge branch 'develop' into new-guest-access
Conflicts:
	src/component-index.js
2017-05-11 13:22:30 +01:00
Luke Barnard
ad2ed12980 Redesign mxID chooser, add availability checking
Requires https://github.com/matrix-org/matrix-js-sdk/pull/432 for availability checking.

Changes:
 - Redesign the dialog to look more like https://github.com/vector-im/riot-web/issues/3604#issuecomment-299226875
 - Attempt to fix wrong password being stored by generating one per SetMxIdDialog (there's no issue tracking this for now, I shall open one if it persists)
 - Backwards compatible with servers that don't support register/availability - a spinner will appear the first time a username is checked because server support can only be determined after a request.
 - Rate-limited by a 2s debounce
 - General style improvements
2017-05-10 14:22:17 +01:00
Luke Barnard
fe121126f5 Merge branch 'develop' into rte-fixes
Conflicts:
	src/UserSettingsStore.js
	src/autocomplete/EmojiProvider.js
	src/components/views/rooms/MessageComposerInput.js
2017-05-08 17:08:59 +01:00
Michael Telatynski
9d92f93fcb consolidate call onPageUnload handler into RoomView
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-03 16:39:19 +01:00
Michael Telatynski
daae3bd1ec warn on unload when uploading file(s)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-29 06:27:06 +01:00
Luke Barnard
5a5768a4ec Try to fix tests 2017-04-28 13:38:35 +01:00
Luke Barnard
d12b1903f2 Fix defer promise logic 2017-04-28 13:29:30 +01:00
Luke Barnard
6dff4a4415 Return early after cancelled mxid dialog 2017-04-28 13:28:34 +01:00
Luke Barnard
8774100508 Initial implementation: SetDisplayName -> SetMxIdDialog
- Replaces SetDisplayNameDialog with SetMxIdDialog. This new dialog will use InteractiveAuth to authenticate a user with their chosen mxid.

De-scoped:
 - style tweaks for the InteractiveAuth in the dialog (capcha) and error message.
 - checking for mxid availability
2017-04-28 13:22:55 +01:00
Luke Barnard
8f7359fce1 Only show jumpToReadMarker bar when RM !== RR
If RM !== RR, use the pos. of the RM to determine whether it is visible, as before.
2017-04-27 14:03:54 +01:00
Luke Barnard
96e7479d8b Show "jump to message" when message is not paginated 2017-04-25 17:19:36 +01:00
Michael Telatynski
bfba25f3da we don't care about rhs state anymore as we can just restore it sanely
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-24 22:10:14 +01:00
Michael Telatynski
ee560a969a upon forwarding message to current room, explicitly remove clear from aux
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-24 20:17:29 +01:00
Michael Telatynski
fbca0e0d0d correct cancel appearing when it shouldn't
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-24 20:03:07 +01:00
Michael Telatynski
4285c395f5 Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into forward_message
Conflicts:
	src/components/structures/RoomView.js
2017-04-24 18:36:33 +01:00
Matthew Hodgson
a2be764681 display err.message to user if available in error msgs 2017-04-23 01:48:27 +01:00
Michael Telatynski
33e841a786 move user settings outward and use built in read receipts disabling
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-22 15:40:29 +01:00
Michael Telatynski
fdc26a490a On return to RoomView from auxPanel, send focus back to Composer
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-21 18:45:28 +01:00
Michael Telatynski
b6ca16fc2f add RoomView state for message being forwarded
add RoomView action handler for message forward
clear forwardingMessage onCancelClick RoomView
change var into const in render RoomView
load ForwardMessage from rooms.ForwardMessage
if there is a messageForwarding object in state show panel in aux

Create ForwardMessage class

Modify RoomHeader so that it shows the cancel button more greedily

reskindex

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-21 13:50:22 +01:00
Michael Telatynski
be9b858193 focus on composer after jumping to bottom
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-21 01:06:00 +01:00
Kegan Dougal
4cebded04f Add canResetTimeline callback and thread it through to TimelinePanel 2017-03-22 15:06:52 +00:00
Luke Barnard
17c9fcbb85 Merge branch 'develop' into luke/UDE-file-upload 2017-03-14 13:59:04 +00:00
Matthew Hodgson
3aaf37df1a beautify a tonne more errors 2017-03-12 22:59:41 +00:00
Matthew Hodgson
71e0780eee beautify search fail error 2017-03-12 22:24:16 +00:00
Luke Barnard
4f7914813d Make UDD appear when UDE on uploading a file
This has highlighted the fact that an unsent image looks very much like a sent image (https://github.com/vector-im/riot-web/issues/3391). Also, the "Resend" status bar doesn't appear when an image is unsent.
2017-03-09 10:44:09 +00:00
Aviral Dasgupta
0653343319
order User completions by last spoken 2017-03-07 04:09:26 +05:30
David Baker
0035a91596 Merge pull request #731 from matrix-org/luke/warn-users-e2e-first-time
Warn users about using e2e for the first time
2017-03-02 13:28:15 +00:00
Luke Barnard
b7bd93c613 var -> const 2017-03-01 15:55:15 +00:00
Luke Barnard
187c91b76a Adjust warning message 2017-03-01 15:42:05 +00:00
Luke Barnard
6d296a0e7a Warn users about using e2e for the first time 2017-03-01 15:41:13 +00:00
Luke Barnard
7221900497 Refactor remove resend_all_events and cancel_all_events dispatches 2017-02-27 13:39:12 +00:00
Luke Barnard
c13ff254b1 Add "Retry" button to UDE 2017-02-22 10:21:43 +00:00
Matthew Hodgson
8990e770b7 fix colouring in voip dark theme 2017-02-20 01:43:55 +02:00
David Baker
de4773ba93 Show when you've been kicked or banned
Update the room state when you've been kicked or banned, and show
a message in the preview bar, including the reason.
2017-02-17 15:50:30 +00:00
David Baker
b2344ceb74 Update the room view on room name change 2017-02-17 11:44:56 +00:00
Luke Barnard
103710728f Do not show "+1 other"
Instead show a user name or avatar.
2017-02-09 10:30:06 +00:00
Matthew Hodgson
e825a4af3c show better error msg after UnkDevDialog
should fix https://github.com/vector-im/riot-web/issues/3122
2017-02-03 00:45:33 +00:00
Luke Barnard
f462bd8f99 Expand status *area* unless status *bar* not visible (#655) 2017-01-26 18:07:42 +00:00
Luke Barnard
9c99dafba5 Guard onStatusBarVisible/Hidden with this.unmounted 2017-01-26 17:03:01 +00:00
David Baker
e567162d28 Merge pull request #648 from matrix-org/rav/fix_set_displayname
Fix SetDisplayNameDialog
2017-01-25 14:32:52 +00:00
Richard van der Hoff
29b4dde878 Fix SetDisplayNameDialog
SetDisplayNameDialog got broken by the changes to support asynchronous loading
of dialogs.

Rather than poking into its internals via a ref, make it return its result via
onFinished.

Fixes https://github.com/vector-im/riot-web/issues/3047
2017-01-25 08:01:45 +00:00
Luke Barnard
7c66d1c867 Sync typing indication with avatar typing indication
Follow the same rules for displaying "is typing" as with the typing avatars.
2017-01-24 16:01:39 +00:00
Luke Barnard
a06ecb87bc Hide RoomStatusBar when it displays nothing (#615)
Use CSS class `mx_RoomView_statusArea_expanded` to indicate an expanded status bar. Without this, the status bar may be hidden from view. A 10s debounce will prevent it from bouncing frequently.
2017-01-23 16:01:39 +01:00
David Baker
18d4d3392a Fix a bunch of linting errors
eslint --fix and a few manual ones
2017-01-20 14:22:27 +00:00
Richard van der Hoff
42de77e588 Remove "Cannot re-join empty room" error
This is a lying error message. burn it with fire
2016-12-27 19:17:48 +00:00
David Baker
a008f5010a Fix the ctrl+e mute camera shortcut
* Fixes the altgr+e shortcut on Windows
   (Fixes https://github.com/vector-im/vector-web/issues/2561)
 * Fixes the shortcuts to be cmd+e on mac rather than ctrl+e
   which is more normal and doesn't clobber ctrl+e which old
   school unix types use for go-to-end-of-line.
2016-11-08 18:04:22 +00:00
Richard van der Hoff
cb5b311e44 Move saveScrollState into RoomView
It fits much more naturally here than in LoggedInView.
2016-11-04 09:28:35 +00:00
David Baker
32ebd8083b Stray comma 2016-10-26 15:32:09 +01:00
David Baker
a2eb0a9cf0 Fix CPU spin on joining rooms
Ratelimit roomheader's updates and move some other things into
rate limited functions.
2016-10-26 13:09:53 +01:00
Richard van der Hoff
4f901f1894 Keyboard shortcuts to mute microphone/camera
Same as hangouts: ctrl-d for mute microphone; ctrl-e to mute camera.
2016-10-17 14:13:56 +01:00
David Baker
d1a5e54a69 Check if a room looks like a DM rooms on joining
and mark it as one if so.

Also change the heuristic to only count rooms with 2 total members rather than 2 joined members, otherwise this is going to mark any room as a DM if someone creates a room, invites a bunch of people and you happen to be first to join.
2016-09-20 17:59:46 +01:00
David Baker
b66c449bd7 Comment typo
and out comment in more sensible place
2016-09-20 16:08:11 +01:00
Matthew Hodgson
a28aab42c4 fix NPE in guest access 2016-09-16 16:45:43 +01:00
Matthew Hodgson
17cf2fc745 Merge pull request #470 from matrix-org/matthew/right-panel-collapse
Matthew/right panel collapse
2016-09-13 19:09:18 +01:00
Matthew Hodgson
eb6a4f97ba make it work 2016-09-13 19:00:35 +01:00
Matthew Hodgson
3b52081092 wip for collapsable RHS 2016-09-13 12:18:22 +01:00
David Baker
2943db1072 Flag incoming DMs as such
* Add the 'is_direct' flag to rooms created for DMs
 * For invites, look for the DM flag when getting the DM user ID for a room
 * When accepting an invite, look for the flag and mark the room as a DM room if appropriate.
2016-09-12 18:32:44 +01:00
Matthew Hodgson
f4d939da81 null checks on room in onRoomTimeline 2016-09-09 02:09:12 +01:00
Matthew Hodgson
4aef352a5c update to use new API based on js-sdk PR input 2016-09-08 22:48:44 +01:00
Matthew Hodgson
f88ba9df11 fix comment & use room.getUnfilteredTimelineSet() 2016-09-08 14:38:34 +01:00
Matthew Hodgson
e7074ef9af apply FilePanel css and fix filtering 2016-09-07 22:54:37 +01:00
Matthew Hodgson
e22d0a53b6 WIP switch-over of TimePanel from taking Rooms to taking EventTimelineSets 2016-09-07 22:54:37 +01:00
David Baker
df1cc8748f Change references to MatrixTools to Rooms
or remove where they were unused
2016-09-07 11:33:58 +01:00
Richard van der Hoff
8fe470bce1 Cancel calls to rate-limited funcs on unmount
The tests were throwing up warnings about state being accessed, and null
MatrixClients being called, after component unmount.
2016-08-10 13:39:47 +01:00
David Baker
09993cd3bc Add comment back 2016-07-26 18:19:25 +01:00
David Baker
31399254b6 Fix onRoomStateMember debouncing
Don't have debounced functions take arsg, because they won't be the same for each invocation.
2016-07-26 18:15:26 +01:00
David Baker
4ecf5f6372 Fix bug where vector freezes on power level event
Make rate_limited_function accept functions with args so we can just ratelimit the event handler & be done with it.

Fixes https://github.com/vector-im/vector-web/issues/1877
2016-07-26 17:58:19 +01:00
David Baker
030652f289 Add removeLisatener for account data listener 2016-07-21 13:49:31 +01:00
Matthew Hodgson
165b0810cc remove debug 2016-07-20 18:17:09 +01:00
Matthew Hodgson
bc87fc575b remove debug 2016-07-20 18:16:54 +01:00
Matthew Hodgson
d6415aceca handle accountData changes, and errors on toggling URL previews 2016-07-20 18:14:16 +01:00
David Baker
fb964be072 Merge pull request #356 from matrix-org/matthew/disable-url-previews
Support for disabling/enabling URL previews per-user, per-room and per-user-per-room
2016-07-20 16:43:08 +01:00
Matthew Hodgson
1365f18829 many stupid thinkos and bugfixes; make it work 2016-07-20 12:03:13 +01:00
Matthew Hodgson
6bf5499289 typos 2016-07-18 10:47:03 +01:00
Matthew Hodgson
f13bb5f656 typos 2016-07-18 01:39:24 +01:00
Matthew Hodgson
ebdac4ee50 first cut (untested) 2016-07-18 01:35:42 +01:00
David Baker
5c566cae5c typo 2016-07-15 18:10:56 +01:00
David Baker
327015ba0f Tidy up autocomplete updating
..into a function
2016-07-15 17:03:53 +01:00
David Baker
7d712d06a1 Move code to make diff less confusing 2016-07-15 16:14:05 +01:00
David Baker
d5bed78a54 Rejig tab complete to make it faster
Now do a lot less when people speak. Also move more of the tab completion logic into TabComplete.js and out of RoomView.
2016-07-15 16:10:27 +01:00
David Baker
f1d72296b7 Fix last-spoke order
Turns out this timeline is the other way around, so loop through the other way
2016-07-14 14:06:31 +01:00
David Baker
0dde891d4c Order tab complete by most recently spoke
Fixes https://github.com/vector-im/vector-web/issues/1741
2016-07-14 11:25:45 +01:00
David Baker
ac58520b3b Update tab completion list when we have a room
Fixes https://github.com/vector-im/vector-web/issues/1737
2016-07-12 18:30:37 +01:00
Aviral Dasgupta
30b7efd585 fix: code cleanup, fix getCurrentCommand 2016-07-04 21:44:35 +05:30
Aviral Dasgupta
cd928fe6f5 Merge remote-tracking branch 'upstream/develop' into feature-autocomplete 2016-07-03 00:00:02 +05:30
David Baker
e8337b2119 More PR feedback 2016-06-28 17:11:47 +01:00
David Baker
548c392236 PR feedback 2016-06-28 14:59:45 +01:00
David Baker
98c03869a7 Display an error message if room not found
Fixes https://github.com/vector-im/vector-web/issues/1012
2016-06-24 15:34:07 +01:00
David Baker
4c214119b2 Fix PR feedback 2016-06-20 18:05:58 +01:00
David Baker
d8dedae084 Fix /join to be consistent with the other code
Plus a number of other tidyups:

 * Fix /join to dispatch a view_room for the room alias
   with the additional auto_join parameter
 * Make RoomView automatically join the room if the auto_join
   parameter is true and the user isn't already in it
 * Tidy up RoomView's peeking code, also fixing
   https://github.com/vector-im/vector-web/issues/1220
   in react-sdk (although it still requires a synapse change
   to actually fix, but react-sdk does 'the right thing').
 * Remove duplication of usage text from /join command
 * Amalgamate MatrixChat::_viewRoom's many, many parameters
   into an object and sort out case consistency a little.
2016-06-20 16:30:51 +01:00
Aviral Dasgupta
4af983ed90 Style changes and improvements in autocomplete 2016-06-20 13:52:55 +05:30
David Baker
40b1b99c38 underscore prefix internal method 2016-06-14 14:40:03 +01:00
David Baker
a95d8b5ed6 Move init logic into componentWillMount
to simplify getInitialState
2016-06-14 14:38:45 +01:00
David Baker
b8eee08d69 Fix member list vanishing
Add a callback to RoomView that it can give the room ID to once it's resolved it, since this lookup is now the responsibility of the roomview and only the roomview. The view_room action now has either an alias or an ID, not both. Also fix RoomView to load the room properly and not try to peek when it shouldn't.
2016-06-14 12:56:37 +01:00
David Baker
11a38fce48 Fix peeking
Sorts out more of the room joining mess. currentRoom which held the room ID is now more appropriately called currentRoomId. RoomView will now take a roomID or alias as before but will now look up the room ID as required if given the alias. Also, now look up the alias every time you click on it so it's never stale, rather than looking in your current rooms for a room that thinks it has that ID.
2016-06-14 11:37:04 +01:00
David Baker
b60ab9d695 Remove XXX now it's fixed (yay!) 2016-06-09 18:50:18 +01:00
David Baker
72b3ce200d Make the room directory join rooms by alias
Also makes some improvement on the multiple code path mess for joining rooms
2016-06-09 18:49:06 +01:00
Matthew Hodgson
c3fc76cdaa warn guests to register nicely to upload files 2016-05-31 23:59:36 +01:00
Matthew Hodgson
7879be1704 implement basic local echo for resetting unread message count when opening a room without a scroll offset. hopefully largely fixes https://github.com/vector-im/vector-web/issues/967 2016-05-17 20:28:11 +01:00
Richard van der Hoff
0fd0b0c5f3 Whitespace fixes
Fix some trailing whitespace
2016-04-22 17:05:48 +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
009781dac7 prep for RightPanel full collapse 2016-04-15 18:45:40 +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
93a142480c RoomView: Handle joining federated rooms
This hopefully fixes an issue where joining a federated room via the directory
would get stuck at a spinner of doom, due to us not recognising the room in
question when it came down the /sync. We now catch the room id in the response
from the /join, and use it to match up the room in onRoom.

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

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

 * Everything that needs a room ID now has to get it from state.room.roomId.
2016-04-13 08:59:28 +01:00
Matthew Hodgson
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
Matthew Hodgson
38d27cdbb0 improve 'no known servers' error 2016-04-12 13:00:52 +01:00
Matthew Hodgson
7884c13d0d Merge branch 'develop' into matthew/preview_urls 2016-04-07 17:25:48 +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
Matthew Hodgson
4388334e30 fix up scroll behaviour when loading widgets 2016-04-02 00:36:19 +01:00
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