Commit Graph

1125 Commits (4b2a9a6bf77471f261f98084fb3b61e8caedf257)

Author SHA1 Message Date
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 ec0ad93ad7 Merge pull request #1007 from matrix-org/dbkr/propagate_room_join_errors
Propagate room join errors to the UI
2017-06-02 16:09:34 +01:00
David Baker ac0f2f79d1 Remove redundant room_id 2017-06-02 16:02:20 +01:00
David Baker f52035f3cd Set state from dispatch payload unconditionally
As apparently doing it confitionally is bad
2017-06-02 13:41:41 +01:00
Luke Barnard 953a573f81 Merge pull request #1006 from matrix-org/luke/new-guest-access-user-action-chat
Implement /user/@userid:domain?action=chat
2017-06-02 12:03:11 +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 defecb1b14 Implement /user/@userid:domain?action=chat
This is a URL that can be used to start a chat with a user.
 - If the user is a guest, setMxId dialog will appear before anything and a defered action will cause `ChatCreateOrReuseDialog` to appear once they've logged in.
 - If the user is registered, they will not see the setMxId dialog.

fixes https://github.com/vector-im/riot-web/issues/4034
2017-06-02 11:36:18 +01:00
Luke Barnard 7808994b71 Modify RVS test to wait until room loaded
This allows for the alias resolution to occur before a join is attempted. In theory, join_room could in future do an optional view_room-esque thing before attemping a join which would be less fragile than dispatching things in the right order.

Also, make sure the store indicates that it is not loading when a room ID has been used - no alias resolution need take place.
2017-06-02 09:22:48 +01:00
Luke Barnard 16c4c14a16 Fix to show the correct room 2017-06-01 18:01:30 +01:00
Luke Barnard b3a862c2c2 Remove redundant `reset` 2017-05-31 15:32:55 +01:00
Luke Barnard d83f18ab46 Remove cachedPassword from localStorage on_logged_out
Fixes https://github.com/vector-im/riot-web/issues/4101
2017-05-31 10:03:16 +01:00
Matthew Hodgson 44f479c38b Merge pull request #930 from matrix-org/luke/new-guest-access-reset-stores-on-logged-out
Reset store state when logging out
2017-05-26 17:45:32 +01:00
Luke Barnard ac44151e2a Put the reset method in the right scope... 2017-05-26 17:27:31 +01:00
Luke Barnard 9311b9012a Use the same `.reset` as RoomViewStore 2017-05-26 17:23:02 +01:00
Matthew Hodgson fbc3f83625 Merge pull request #928 from matrix-org/luke/new-guest-access-inidicate-joining-early
Use RVS to indicate "joining" when setting a mxid
2017-05-26 17:08:34 +01:00
Luke Barnard 2400efa92b Correct LifecycleStore docs 2017-05-26 11:48:38 +01:00
Luke Barnard 263a51938d Reset store state when logging out
This prevents leaking of state that we do not want to share with the next user
2017-05-25 17:16:16 +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
Luke Barnard dcf2fb68ae Remove console log 2017-05-24 18:02:17 +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
Luke Barnard da3cb0ee48 SessionStore extends flux.Store 2017-05-15 14:52:19 +01:00
Luke Barnard 2b4c87aca6 Remove useless comment 2017-05-12 16:02:38 +01:00
Luke Barnard 536724e7c5 ES6 SessionStore 2017-05-12 15:58:44 +01:00
Luke Barnard 6ffe7ef9b2 Use same singleton impl as MatrixClientPeg for SessionStore 2017-05-12 15:50:01 +01:00
Luke Barnard 1176573f39 Implement SessionStore
This wraps session-related state into a basic flux store. The localStorage item 'mx_pass' is the only thing managed by this store for now but it could easily be extended to track other items (like the teamToken which is passed around through props a lot)
2017-05-12 12:02:45 +01:00