Commit graph

1474 commits

Author SHA1 Message Date
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
David Baker
8840625045 Merge pull request #1097 from matrix-org/luke/attempt-fix-peeking-regression
Luke/attempt fix peeking regression
2017-06-14 17:33:45 +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
Richard van der Hoff
5d649626b0 Merge remote-tracking branch 'origin/develop' into rav/no_resume_client_on_login 2017-06-14 11:08:16 +01:00
Richard van der Hoff
498ea53995 Don't create a guest login if user went to /login
This fixes an unintuitive behaviour where, if you follow a link to
riot.im/app/#/login, we take you to the login page, but not before we've
registered a guest account (or restarted the MatrixClient with the stored
creds).

This actually ends up simplifying some of the startup dance, as we special-case
the registration flows earlier on.
2017-06-14 11:02:38 +01:00
Luke Barnard
040f28463d Merge pull request #1045 from ollieh/issues/4009
Fixed pagination infinite loop caused by long messages
2017-06-14 10:40:02 +01:00
Richard van der Hoff
9e70884415 Merge pull request #1085 from matrix-org/rav/clear_storage_on_login
Clear persistent storage on login and logout
2017-06-14 10:34:26 +01:00
Richard van der Hoff
392cd7861d Merge pull request #1084 from matrix-org/rav/remove_roomstore_listener
remove RoomViewStore listener from MatrixChat on unmount
2017-06-13 13:10:49 +01:00
Richard van der Hoff
68e1a7be74 Clear persistent storage on login and logout
Make sure that we don't end up with sensitive data sitting around in the stores
from a previous session.
2017-06-13 12:51:47 +01:00
Richard van der Hoff
1ea9ed5d8c remove RoomViewStore listener from MatrixChat on unmount
... to avoid spurious warnings from the tests.
2017-06-13 12:39:26 +01:00
Michael Telatynski
c1d1a1377c allow forcing of TURN, pass account val per-call until UX is designed.
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-12 20:20:27 +01:00
Richard van der Hoff
cc74a09abd Remove start_upgrade_registration dispatch handler
This dispatch is no longer raised anywhere, so we may as well get rid of the
code that it executes, as well as the state which is only set there.
2017-06-12 08:38:29 +01:00
Richard van der Hoff
9e96e8e87f Remove guest-only bits of UserSettings
There is now no way to open UserSettings as a guest, so we might as well lose
the dead code.
2017-06-12 08:36:41 +01:00
Richard van der Hoff
56efe7d2f2 Merge pull request #1064 from matrix-org/rav/delinting
Delinting
2017-06-12 08:34:58 +01:00
Luke Barnard
ecc8abbfc9 When ChatCreateOrReuseDialog is cancelled by a guest, go home 2017-06-09 13:46:45 +01:00
David Baker
924c08b143 Merge pull request #1067 from matrix-org/luke/fix-forgetting-last-room
Goto /home when forgetting the last room
2017-06-09 11:03:14 +01:00
Luke Barnard
19bb879fbf Handle only 1 room in the list 2017-06-09 10:54:42 +01:00
Luke Barnard
c7229967a6 Goto /home when forgetting the last room 2017-06-09 10:28:45 +01:00
Luke Barnard
a21b6e61a6 Default to home page when settings is closed
If the current room isn't set.
2017-06-09 10:08:26 +01:00
Richard van der Hoff
105c6b2b87 delint MatrixChat
once more. with feeling.
2017-06-09 03:09:03 +01:00
Richard van der Hoff
20bdae6079 delint UserSettings.js 2017-06-09 03:08:57 +01:00
Luke Barnard
ce0977373e Merge pull request #1058 from matrix-org/luke/fix-event-id-state
Control currently viewed event via RoomViewStore
2017-06-08 18:10:29 +01:00
Luke Barnard
5588e115eb Clarify doc for highlighted 2017-06-08 17:57:37 +01:00
Luke Barnard
9892566007 Highlighted means highlighted 2017-06-08 17:54:41 +01:00
Luke Barnard
c02dbd1cdc Rename initial state variables 2017-06-08 17:26:08 +01:00
David Baker
5e55b6a643 PR feedback 2017-06-08 16:23:43 +01:00
David Baker
9def0bb5c2 Oops, fix email check 2017-06-08 16:08:19 +01:00
David Baker
8dc20606c8 Use comma for list of three things 2017-06-08 16:07:29 +01:00
Luke Barnard
000a045e35 Rename RVS state (event -> initialEvent) and redocument 2017-06-08 15:52:21 +01:00
David Baker
d691c891e7 Move all login error string generation into view
This makes all the various hits done by login report the same
useful error messages and gets rid of the broken ones like printing
the http status code even if it was undefined. Also add text for
the case of overzealous browser extensions because lots of people
get bitten by it.
2017-06-08 15:49:48 +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
2e82bf40fb Explain setting of highlighted in room/$eventId showScreen handling. 2017-06-08 15:34:20 +01:00
Luke Barnard
8ddc38c9b1 Doc _viewRoom highlighted 2017-06-08 15:32:31 +01:00
Luke Barnard
aa20ad706e Remove redundant currentRoomAlias 2017-06-08 15:30:43 +01:00
Luke Barnard
ea97d16aa2 Merge branch 'develop' into luke/fix-event-id-state
Conflicts:
	src/components/structures/MatrixChat.js
2017-06-08 14:33:58 +01:00
Luke Barnard
f320f7d475 Remove redundant action id 2017-06-08 14:30:45 +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
David Baker
6d1fa775a0 Formatting 2017-06-08 14:14:45 +01:00
Richard van der Hoff
566fb2caeb Add some logging around switching rooms
... which I wish had been there when I was staring at a rageshake.
2017-06-07 22:41:02 +01:00