Commit graph

558 commits

Author SHA1 Message Date
Richard Lewis
f410112983 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into rxl881/snapshot 2017-12-15 10:18:56 +00:00
David Baker
0d38e7510d
Merge pull request #1600 from matrix-org/dbkr/udd_no_auto_show
Don't Auto-show UnknownDeviceDialog
2017-12-08 16:33:25 +00:00
Richard Lewis
c9b8aab0e0 Workings for future posterity - Can't access iframe content from parent. iframe needs to initiate. Postmessage data up the stack. 2017-12-03 19:44:59 +00:00
Luke Barnard
363fe04a10 isCtrlOrCmdKeyEvent -> isOnlyCtrlOrCmdKeyEvent 2017-12-01 10:44:00 +00:00
Luke Barnard
fe81fcb8c6 Factor out isCtrlOrCmdKeyEvent, use that in TagPanel
as opposed to the incorrect ctrl || meta
2017-12-01 10:30:49 +00:00
David Baker
196eafdc7f Merge remote-tracking branch 'origin/develop' into dbkr/udd_no_auto_show 2017-11-16 15:59:16 +00:00
Luke Barnard
dad797d4a2 Run linting --fix 2017-11-16 13:19:36 +00:00
David Baker
f8fc6dc83e Merge remote-tracking branch 'origin/develop' into dbkr/udd_no_auto_show 2017-11-15 12:11:33 +00:00
David Baker
b1ec430523 Remove now-unused dispatches 2017-11-09 16:09:12 +00:00
David Baker
820d9c1c25 Show staus bar on Unknown Device Error
Don't pop up the dialog as soon as we can't send a message.

Also removes dispatches used to keep the RoomStatusBar up to date.
We can get the same events straight from the js-sdk via the
pending events event.
2017-11-09 15:58:15 +00:00
Travis Ralston
289b0c2b6a
Merge branch 'develop' into travis/granular-settings 2017-11-07 14:55:12 -07:00
Richard Lewis
f1db564506
Merge pull request #1533 from anoadragon453/develop
Remember whether widget drawer was hidden per-room
2017-11-06 14:29:25 +00:00
Travis Ralston
358298e4ee Support room color in settings
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-04 16:10:25 -06:00
Travis Ralston
893c39bfbe Merge branch 'develop' into travis/granular-settings 2017-11-03 22:00:07 -06:00
David Baker
4953d4de4d Give autocomplete providers the room they're in
Removes the gut-wrenching that RoomView does to jam the user list
into the user autocomplete provider.
2017-11-02 17:51:08 +00:00
Travis Ralston
786bd87fec Support URL previews (with bugs)
Known issues at this point:
* The room-level setting accepts the current user's default, which is wrong
* The checkboxes on RoomSettings are not independent
* The checkboxes in RoomSettings need some layout fixes

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-29 21:48:29 -06:00
Travis Ralston
ae10a11ac4 Convert synced settings to granular settings
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-29 01:43:52 -06:00
Andrew (anoa)
b4868a6846
showWidget->hideWidgetDrawer and remove logs
Signed-off-by: Andrew (anoa) <anoa@openmailbox.org>
2017-10-26 11:27:58 -07:00
Luke Barnard
b1f2a6c1e9 Dramatically simplify use of mx_fadable
by applying it to parent elements of things that need to be faded.
2017-10-25 15:15:49 +01:00
Luke Barnard
2f8f2ce76e Swap from ui_opacity to panel_disabled
to simplify the process of disabling panels in the UI.
2017-10-25 11:23:51 +01:00
Andrew (anoa)
f032284eff
Remember whether widget drawer was hidden per-room
Fixes #4850

Signed-off-by: Andrew (anoa) <anoa@openmailbox.org>
2017-10-24 16:28:10 -07:00
Travis Ralston
c34b55c6c7 Merge branch 'develop' into travis/pinned_messages 2017-10-14 16:10:32 -06:00
Matthew Hodgson
9f64261707 Merge branch 'develop' into travis/alone_warning 2017-10-14 22:43:36 +01:00
Travis Ralston
df7f1b46bf Stop peeking if anything went wrong, not just explicit failure
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-12 07:24:20 -06:00
Travis Ralston
f1032bb115 Set isPeeking to false if peeking failed
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-12 07:05:09 -06:00
Travis Ralston
f3b1baa3c0 Suggest to invite people when speaking in an empty room
Adds vector-im/riot-web#1053

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-11 21:15:00 -06:00
Travis Ralston
6ce7eb952a Don't send RR or RM when peeking at a room
Fixes vector-im/riot-web#696

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-11 18:43:24 -06:00
Luke Barnard
e0e5d51451 Merge pull request #1460 from matrix-org/dbkr/show_send_message_error
Show failures when sending messages
2017-10-11 19:46:32 +02:00
Luke Barnard
d3f9a3aeb5 Run eslint --fix
Fixing 1000s of lint issues. Some rules cannot be `--fix`ed but this goes some way to linting the entire codebase.
2017-10-11 17:56:17 +01:00
David Baker
5626c06b3c Show failures when sending messages
This is useful for the spam checking where otherwise you don't
really know why your message has failed to send
2017-10-11 17:42:54 +01:00
Travis Ralston
f71e07670d Send toggle handler for the cancel button in the pinned events pane
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-09-29 08:56:21 -06:00
Travis Ralston
874d383a8f Add dock for pinned messages at the top of the room
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-09-29 08:56:21 -06:00
David Baker
c265ec9571 Fix RoomView stuck in 'accept invite' state
After accepting a 3pid invite.

Rather than clear the joining flag when the join request completes,
leave it so the RoomView can see that we're expecting the user to
be joined in the various stages that might go through (waiting for
join request, waiting for room object, waiting for 'joined' member
event). The problem in this case was that we had to wait a bit for
the last one, and there was no bit of state to represent it.

This hopefully also makes the logic somewhat simpler.

Fixes https://github.com/vector-im/riot-web/issues/5041
2017-09-15 15:07:09 +01:00
David Baker
6cb98d7196 Hopefully make comment clearer 2017-09-11 18:39:30 +01:00
David Baker
531fc3ac54 Fix 'Failed to load timeline position' regression
Ignore the update that comes in from the RoomViewStore when the
current room changes or we save our scoll state against the new
room rather than the old one.

Fixes https://github.com/vector-im/riot-web/issues/5010
2017-09-11 17:57:52 +01:00
David Baker
aee2f3cdef Rename onHaveRoom
And move some code out of it which didn't really have any reason
to be hanging out there rather than just be where we set the room
a few lines above.
2017-09-08 18:11:13 +01:00
David Baker
bf982004f6 Give onHaveRoom the info it needs explicitly
Rather than giving it a state object which is not actually the
whole state but happens to be everything it actually wants
(currently)
2017-09-08 17:56:53 +01:00
David Baker
03dcded72f Blank line to make comment clearer 2017-09-08 17:39:10 +01:00
David Baker
1be35a77ec Don't wait for setState to run onHaveRoom
onHaveRoom sets some more state (among other things) so putting it
in the setState callback so it could observe the new state caused
us to have to re-render again unnecessarily. Just give it the new
state as a parameter.
2017-09-08 17:06:46 +01:00
David Baker
59c54d3756 Remove redundant code 2017-09-08 13:39:22 +01:00
David Baker
82d1afcc47 Correct comment 2017-09-07 17:16:32 +01:00
David Baker
408b8c18ea Introduce a RoomScrollStateStore
to keep the place we're scrolled to in rooms. This mainly eleimates
the extra, superfluous onRoomViewStoreUpdate callback that
happened when the previous room saved back its scroll state.
Moving the scroll state to a separate store means we can have this
not emit events because nothing needs to know when the scroll state
changes.
2017-09-07 17:08:36 +01:00
David Baker
32b33c66b9 Merge pull request #1346 from matrix-org/t3chguy/shouldHideEvent_RoomStatusBar
apply shouldHideEvent fn to onRoomTimeline for RoomStatusBar
2017-08-30 13:58:40 +01:00
Michael Telatynski
05c232c8c3
revert fancy indents
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-30 13:32:07 +01:00
Michael Telatynski
282618d5a1
separate concepts of showing and managing RRs to fix regression 2017-08-30 13:18:14 +01:00
Michael Telatynski
315f7a3ae7
apply shouldHideEvent fn to onRoomTimeline for RoomStatusBar
prevents N new message(s) when a hidden message comes in.
2017-08-28 13:46:09 +01:00
Michael Telatynski
56ea528f43
don't track error messages .2
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-10 15:17:52 +01:00
Michael Telatynski
24599ace32
don't track error messages
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-10 13:49:11 +01:00
Michael Telatynski
bf98c0da7c
un-i18n Modal Analytics
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-07-27 17:19:18 +01:00
Richard van der Hoff
086304532e Merge pull request #1213 from matrix-org/rav/bluebird
Switch matrix-react-sdk to bluebird
2017-07-13 12:06:11 +01:00
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