Commit graph

747 commits

Author SHA1 Message Date
J. Ryan Stinnett
d72dedb0ce Cache room alias to room ID mapping in memory
This adds very basic cache (literally just a `Map` for now) to store room alias
to room ID mappings. The improves the perceived performance of Riot when
switching rooms via browser navigation (back / forward), as we no longer try to
resolve the room alias every time.

The cache is only in memory, so reloading manually or as part of the clear cache
process will start afresh.

Fixes https://github.com/vector-im/riot-web/issues/10020
2019-11-12 11:54:41 +00:00
J. Ryan Stinnett
0e8dc24c3f Add a basic error boundary for the entire app
This adds a basic error boundary around the entire app to catch errors during
rendering and present the user with the options on how to proceed. This is not
implemented as a modal so that it could be used selectively in portions of the
app as well, such as just the `RoomView`.

Fixes https://github.com/vector-im/riot-web/issues/11009
2019-10-02 17:31:22 +01:00
Bruno Windels
c8c4dc29d1
Merge pull request #3503 from matrix-org/bwindels/custom-themes-mvp
Custom theming MVP
2019-10-02 09:14:07 +00:00
Bruno Windels
558f8daeeb support custom themes from setting
also move theme setting code from MatrixChat to own file.
2019-10-01 15:21:22 +02:00
Michael Telatynski
ce78de2185 re-order imports
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-27 10:05:08 +01:00
Michael Telatynski
8d1d3090f3 Improve keyboard accessibility using :focus-visible CSS polyfill
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-27 09:00:54 +01:00
Matthew Hodgson
df33d0f74c Remove debug for https://github.com/vector-im/riot-web/issues/10940 2019-09-24 14:57:45 +01:00
Bruno Windels
26a8398a0e make sure client exists while logging out 2019-09-24 12:53:33 +02:00
Matthew Hodgson
3ce47a0181 notify new screen after setting state 2019-09-24 01:51:21 +01:00
Matthew Hodgson
b85dc7b5a8 add debug for vector-im/riot-web#10940 2019-09-24 01:35:43 +01:00
Matthew Hodgson
54355c0e28 put the room name in the title tag
should fix https://github.com/vector-im/riot-web/issues/4454
2019-09-23 22:01:52 +01:00
Bruno Windels
157a3388a5 change name to Field, no_federate to switch
also construct room create options in dialog,
instead of MatrixChat, as we'll have more to come
2019-09-23 11:22:30 +02:00
Michael Telatynski
c633df3c15 Use same initial device name rules for SSO login as password login
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-18 12:16:41 +01:00
Michael Telatynski
abf111ecbd Migrate away from React.createClass for non-auth structures. React 16 :D
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-30 10:34:59 +01:00
Travis Ralston
51946d2a74 Persist and maintain identity server in account data
Fixes https://github.com/vector-im/riot-web/issues/10094

MSC: https://github.com/matrix-org/matrix-doc/pull/2230
2019-08-16 13:10:41 -06:00
Michael Telatynski
49c7730503 change Modal async/await signature to use raw promises
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-09 17:29:22 +01:00
Michael Telatynski
7fe078c07a Modal.createX return thenable which extends onFinished, for async/await
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-09 16:47:22 +01:00
Travis Ralston
24705d02b7 Replace DM logic in view_start_chat_or_reuse
Part of https://github.com/vector-im/riot-web/issues/10416

This code is used by the welcome bot logic and the groups/communities section of the app. goHomeOnCancel can be removed because no matter what happens we'll end up in a room with the user (and we aren't showing a dialog anymore).
2019-08-07 12:13:59 -06:00
Bruno Windels
ceb53dc0bb Revert "remove unnessary manual focussing of composer"
This reverts commit 57abbc4273.
2019-07-23 09:13:51 +02:00
Bruno Windels
57abbc4273 remove unnessary manual focussing of composer
now that composer is focused automatically when no other shortcuts
apply, remove the manual focusing we have in place where it's not needed
2019-07-15 18:21:10 +02:00
Travis Ralston
041379fa3c Don't refuse the soft logout page if the user is soft logged out 2019-07-09 23:44:14 -06:00
Travis Ralston
1eb60ef1c4 Support SSO for rehydrating a soft-logged-out session.
Fixes https://github.com/vector-im/riot-web/issues/10238
2019-07-09 20:16:44 -06:00
Travis Ralston
7b869f2824
Merge pull request #3182 from matrix-org/travis/soft-logout-rehydrate
Ask for the user's password to rehydrate their soft logged out session
2019-07-09 11:31:51 -06:00
Travis Ralston
03cbd7e8bb Ensure links off the forgot password page land you at soft logout 2019-07-04 16:51:55 -06:00
Travis Ralston
89131be438 Require that users go to the soft logout page if they're soft logged out
Fixes https://github.com/vector-im/riot-web/issues/10234
2019-07-04 15:14:00 -06:00
Travis Ralston
8ea46a8c4d Remove unneeded page types 2019-07-04 09:59:20 -06:00
Travis Ralston
5e5bf21281 Remove irrelevant debugging 2019-07-04 09:59:07 -06:00
Travis Ralston
42e6287bdb Implement basic soft logout handling
Fixes https://github.com/vector-im/riot-web/issues/10235

CSS and copy are left as an exercise for a later iteration.

Login page handling is left for https://github.com/vector-im/riot-web/issues/10236

This implementation reuses as much of the Lifecycle flow as it can without causing problems. Most importantly, it requires https://github.com/matrix-org/matrix-js-sdk/pull/975 to be able to detect a soft logout and react to it. When it comes time to starting/stopping the Lifecycle, additional parameters are provided so that the auxiliary services can (re)start themselves without the client starting to sync.
2019-07-03 16:46:37 -06:00
David Baker
6eddce8c32 lint 2019-06-19 12:13:17 +01:00
David Baker
edd43a2706 Fix favicon/title badge count
This was using a separate function (in MatrixChat) that didn't
take into account whether we were supposed to be hiding the badge
for rooms so would include notifs that were hidden everywhere else.

Also make it a function & put it in RoomNotifs with all its friends.

Fixes https://github.com/vector-im/riot-web/issues/3060
2019-06-19 12:06:32 +01:00
David Baker
c8e121dc70 Restore warning for if you're already logged in
...when clicking an email link. Although now we can complete the
registration because we can do so without replacing your session.
2019-06-18 18:43:14 +01:00
David Baker
4c036c98ee Fix double-spinner
On registering, we showed a spinner, and then another spinner on
top of the spinner, which led to an interesting spinner-in-box
effect.

Suppress the second type of spinner when we know we already have one.
2019-06-14 17:21:07 +01:00
David Baker
794b04b89a take the debugging out 2019-06-14 16:41:30 +01:00
David Baker
30726d6cf9 Pull out welcome user chat code to a separate function
also expand on comment
2019-06-14 16:29:26 +01:00
David Baker
929e9dc653 Don't forget to show the homepage if no welcome user 2019-06-14 16:04:09 +01:00
David Baker
8fa50b26a6 Fix welcome user
https://github.com/matrix-org/matrix-react-sdk/pull/3101 meant we
don't get logged straight in after registering if using an email
address, but this was the point at which we made a chat with the
welcome user. Instead, set a flag in memory that we should try &
make a chat with the welcome user for that user ID if we get a
session for them.

Of course, if the user logs in on both tabs, this would mean each
would make a chat with the welcome user (although actually this
was a problem with the old code too). Check our m.direct to see if
we've started a chat with the welcome user before making one (which
also means we have to make sure the cached sync is up to date...
see comments).
2019-06-14 15:31:19 +01:00
David Baker
1139f68de8 Pass in object of the right type 2019-06-12 18:11:58 +01:00
David Baker
10377b42e9 Fix registration with email + non-default HS
We were ignoring the hs/is from the query parameters so after
clicking the link, the new client tried to use the wrong server.

Broken by https://github.com/matrix-org/matrix-react-sdk/pull/2941
Fixes https://github.com/vector-im/riot-web/issues/9659
2019-06-12 17:42:09 +01:00
David Baker
80812db466 Remember we were trying to accept an invite
When the user was on an invite page and clicked the sign up/sign in
buttons, remember that invite so we can show it again after they're
done signing up/in.

https://github.com/vector-im/riot-web/issues/9816
2019-06-10 10:24:06 +01:00
Travis Ralston
7ecab35062 Add a null guard for serverConfig
This is often null while the component is on its first render, and is called during that render. It is eventually populated by React, and the function re-called - we just have to be patient.
2019-05-20 20:10:10 -06:00
Travis Ralston
34719b9a2e Only expose the fallback_hs_url if the homeserver is the default HS
See https://github.com/vector-im/riot-web/issues/9290
2019-05-14 13:10:02 -06:00
Travis Ralston
4c1ac38dd4 Merge branch 'develop' into travis/feature/wellknown2 2019-05-14 10:53:01 -06:00
David Baker
c11d26d809 Fix email registration, pt. 2
Regressed in https://github.com/matrix-org/matrix-react-sdk/pull/2768
where we check for an existing stored account first and restore that
instead if it exist, telling the user. We usually make a guest account
when the user first hits the page though, so this just restored this
guest account.

Don't restore the account if it's just a guest account (which, as per
comment, is not perfect, but is definitely better than the current
behaviour).

Fixes https://github.com/vector-im/riot-web/issues/9581
2019-05-14 11:59:38 +01:00
David Baker
a0ecd89c94 Fix email registration: pt. 1
We look to see if there's already a user logged in and if there is,
restore that session instead of logging the user in as their new
account. We still set this 'is_registered' flag though, even though
in that case it's not a newly registered account that's being restored,
so don't set in that case.
2019-05-14 11:44:00 +01:00
Travis Ralston
58b9eb4cb2 Add a serverConfig property to MatrixChat for unit tests 2019-05-03 16:25:54 -06:00
Travis Ralston
a4b6464902 Appease the linter 2019-05-03 11:34:30 -06:00
Travis Ralston
1f527e71b1 Bring server config juggling into MatrixChat
This way the server config is consistent across login, password reset, and registration. This also brings the code into a more generic place for all 3 duplicated efforts.
2019-05-03 11:34:30 -06:00
Travis Ralston
35ad68751b Remove unused skipServerDetails prop from registration 2019-05-03 11:13:36 -06:00
Travis Ralston
5a204edf90 Remove timeline explosion rageshake prompt
Concludes https://github.com/vector-im/riot-web/issues/8593

We are no longer seeing this error being triggered, and are considering it fixed. As a result, the dialog can be removed to reduce the amount of dead code in the project.
2019-05-01 13:37:57 -06:00
Bruno Windels
190143ca6c dispatch for user screen 2019-04-17 18:26:07 +02:00