Commit graph

70 commits

Author SHA1 Message Date
Travis Ralston
d56f0f2a25 Convert many imports to handle ES6 exports
Reliant upon https://github.com/matrix-org/matrix-react-sdk/pull/3761
2019-12-22 21:04:42 -07:00
Travis Ralston
20a615396b Implementation of new potential skinning mechanism
With a switch to Only One Webpack™ we need a way to help developers generate the component index without a concurrent watch task. The best way to do this is to have developers import their components, but how do they do that when we support skins? The answer in this commit is to change skinning.

Skinning now expects to receive your list of overrides instead of the react-sdk+branded components. For Riot this means we send over *only* the Vector components and not Vector+react-sdk. 

Components can then be annotated with the `replaceComponent` decorator to have them be skinnable. The decorator must take a string with the dot path of the component because we can't reliably calculate it ourselves, sadly. 

The decorator does a call to `getComponent` which is where the important part of the branded components not including the react-sdk is important: if the branded app includes the react-sdk then the decorator gets executed before the skin has finished loading, leading to all kinds of fun errors. This is also why the skinner lazily loads the react-sdk components to avoid importing them too early, breaking the app.

The decorator will end up receiving null for a component because of the getComponent loop mentioned: the require() call is still in progress when the decorator is called, therefore we can't error out. All usages of getComponent() within the app are safe to not need such an error (the return won't be null, and developers shouldn't use getComponent() after this commit anyways).

The AuthPage, being a prominent component, has been converted to demonstrate this working. Changes to riot-web are required to have this work.

The reskindex script has also been altered to reflect these skinning changes - it no longer should set the react-sdk as a parent. The eventual end goal is to get rid of `getComponent()` entirely as it'll be easily replaced by imports.
2019-12-12 19:48:45 -07:00
Michael Telatynski
6121420113
Merge branch 'develop' into t3chguy/remove_bluebird 2019-11-20 15:21:23 +00:00
J. Ryan Stinnett
d5d2f7f936
Merge pull request #3588 from matrix-org/jryans/identity-disco-opt
Relax identity server discovery error handling
2019-11-18 17:09:08 +00:00
Michael Telatynski
5c172a383d Merge branch 't3chguy/remove_bluebird_2' of https://github.com/matrix-org/matrix-react-sdk into t3chguy/remove_bluebird
 Conflicts:
	src/components/views/right_panel/UserInfo.js
2019-11-18 10:36:43 +00:00
Michael Telatynski
d4d51dc61f Rip out the remainder of Bluebird 2019-11-18 10:03:05 +00:00
J. Ryan Stinnett
413b90328f Show server details on login for unreachable homeserver
This fixes the login page to be more helpful when the current homeserver is
unreachable: it reveals the server change field, so you have some chance to
progress forward.

Fixes https://github.com/vector-im/riot-web/issues/11077
2019-11-14 15:23:04 +00:00
Michael Telatynski
168b1b68bb Revert "s/.done(/.then(/ since modern es6 track unhandled promise exceptions"
This reverts commit 09a8fec2
2019-11-12 11:56:21 +00:00
Michael Telatynski
09a8fec261 s/.done(/.then(/ since modern es6 track unhandled promise exceptions 2019-11-12 11:51:23 +00:00
J. Ryan Stinnett
446e21c2e1 Relax identity server discovery error handling
If discovery results in a warning for the identity server (as in can't be found
or is malformed), this allows you to continue signing in and shows the warning
above the form.

Fixes https://github.com/vector-im/riot-web/issues/11102
2019-11-01 12:27:56 +00:00
Michael Telatynski
a4a85dc541 Hide the change HS url button on SSO login flow if custom urls disabled
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-11 23:02:52 +01:00
Michael Telatynski
6f736e8407 Apply PR feedback
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-11 17:44:04 +01:00
Michael Telatynski
76e4363452 Login: Add way to change HS from SSO Homeserver
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-11 17:44:04 +01:00
Michael Telatynski
f1ea5ff6f3 Login: don't assume supported flows, prevent login flash on SSO servers
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-11 17:44:04 +01:00
Michael Telatynski
2e1fb4533c Migrate away from React.createClass for auth and views/auth. React 16 :D
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-30 10:27:51 +01:00
Bruno Windels
7a5167b1a3 Let user know their account has been deactivated upon trying to login 2019-08-05 13:48:25 +02:00
Travis Ralston
2bc0e8e151 Don't rely on React being fast 2019-07-15 10:51:08 -06:00
Travis Ralston
c6a18b11f0 Check for liveliness on submission when the server was previously dead
Fixes https://github.com/vector-im/riot-web/issues/10017

Specifically the `return` at the end of the diff fixes the problem, but it seems worthwhile to check for liveliness when we know the server has been dead in previous attempts.
2019-07-14 23:23:48 -06:00
J. Ryan Stinnett
21099052fc Clear the login busy state after .well-known discovery
This always clear the login busy state after .well-known discovery without
waiting for the resulting server config. This is important for the case where
the HS that a full MXID resolves to matches the default HS, as without it we'd
be stuck in a busy state forever.

Fixes https://github.com/vector-im/riot-web/issues/10014
2019-06-11 15:41:47 +01:00
Travis Ralston
aacb942d57 Don't handle identity server failure as fatal, and use the right message
Fixes https://github.com/vector-im/riot-web/issues/10002
2019-06-10 19:28:32 -06:00
Travis Ralston
d59ad605a6 Allow the login form to be submitted, and clarify other things 2019-06-06 12:18:41 -06:00
Travis Ralston
ace1bde238 Implement design and copy for errors 2019-06-05 11:32:02 -06:00
Travis Ralston
e2fdeec71a Fail more softly on homeserver liveliness errors
This performs liveliness checks on the auth pages to try and show a friendlier error. Earlier checks in the app startup are expected to not block the app from loading on such failures.

See https://github.com/vector-im/riot-web/issues/9828
2019-06-04 23:42:38 -06:00
David Baker
9897e99195 Fix login page breaking on wrong password
Fixes https://github.com/vector-im/riot-web/issues/9942
2019-06-04 13:51:33 +01:00
David Baker
e1fa53e5d4 Remove unused errorText prop
Login is only used from MatrixChat and that doesn't specify it
2019-06-04 13:30:36 +01:00
Travis Ralston
595b490fd7 Don't act busy on the login page for moving your cursor
If you were in the username field and simply tabbed out without entering anything, the form would become "busy" and not let you submit. We should only be doing this if we have work to do, like .well-known discovery of the homeserver.
2019-05-20 20:10:10 -06:00
Travis Ralston
1ea5b42cf5
Merge branch 'travis/feature/wellknown2' into travis/wk/mxid 2019-05-16 12:47:37 -06:00
Travis Ralston
9b5830bb08 Restore use of full mxid login
See https://github.com/vector-im/riot-web/issues/9290
2019-05-14 15:01:22 -06:00
Travis Ralston
ee33a4e9ba Refactor "Next" button into ServerConfig components
TODO still remains about making ModularServerConfig extend ServerConfig instead of duplicating everything.

See https://github.com/vector-im/riot-web/issues/9290
2019-05-13 16:30:34 -06:00
Travis Ralston
eab209a26b Log in to the right homeserver when changing the homeserver 2019-05-06 12:00:48 -06:00
Travis Ralston
0b1a0c77b7 Make login pass around server config objects
Very similar to password resets and registration, the components pass around a server config for usage by other components. Login is a bit more complicated and needs a few more changes to pull the logic out to a more generic layer.
2019-05-03 11:33:36 -06:00
Travis Ralston
9d55d0c897 Add strings for js-sdk autodiscovery errors
For https://github.com/matrix-org/matrix-js-sdk/pull/894
2019-04-11 15:54:37 -06:00
Travis Ralston
650185e578 Remove 'try the app' link from login
Fixes https://github.com/vector-im/riot-web/issues/8384

This will be re-addressed in https://github.com/vector-im/riot-web/issues/9388 or similar. Because the implementation is undefined, the dead code is being removed instead of just left dead.
2019-04-05 10:35:11 -06:00
J. Ryan Stinnett
f4b7180087 Display default server name in login
If a default server name is set and the current HS URL is the default HS URL,
we'll display that name in the "sign in to" text on the login form.

This can be a bit more user friendly, especially when the HS is delegated to
somewhere such as Modular, since you'll then see "example.com" instead of
"example.modular.im", which you have no direct relationship with as a user.

This is the key bit of https://github.com/vector-im/riot-web/issues/8763 for
login.
2019-02-20 17:33:59 +00:00
J. Ryan Stinnett
a61de03a88 Remove left over TODO 2019-02-06 16:32:22 +00:00
J. Ryan Stinnett
b20f1d1240 Convert forgot password to phases like the other flows 2019-02-06 16:30:53 +00:00
J. Ryan Stinnett
6549ae1ce5 Remove unused props from login 2019-02-05 16:11:32 +00:00
J. Ryan Stinnett
02a20fa668 Tweak login wording to match design 2019-02-05 15:36:00 +00:00
J. Ryan Stinnett
dbe14c5527 Enable phases for login, but start on the login phase by default 2019-02-05 14:43:29 +00:00
J. Ryan Stinnett
4e152f82e7 Remove server types from login 2019-02-05 14:30:45 +00:00
J. Ryan Stinnett
5432b09478 Default to registration phase when custom URLs disabled 2019-02-05 05:25:13 +00:00
J. Ryan Stinnett
fb39ba1ffc
Merge pull request #2547 from jryans/auth-well-known-state
Ensure correct server URLs with .well-known and server type
2019-02-01 08:28:33 -06:00
J. Ryan Stinnett
68ae72f855 Spell homeserver correctly 2019-01-31 18:52:39 -06:00
J. Ryan Stinnett
f58055c778 Skip .well-known discovery for free server type 2019-01-31 12:01:58 -06:00
J. Ryan Stinnett
6597db6328 Simplify login server URL state 2019-01-31 12:01:17 -06:00
J. Ryan Stinnett
2f006939f2 Use mx_AuthBody prefix for consistency 2019-01-31 10:06:35 -06:00
J. Ryan Stinnett
eafd7e12d0 Validate login phone number on blur 2019-01-31 10:05:39 -06:00
J. Ryan Stinnett
cfe19d710b Avoid hsName for auth headers which can be outdated
`hsName` uses only the default HS, so that can easily be outdated if the HS URL
is customized.
2019-01-31 10:05:39 -06:00
J. Ryan Stinnett
f5e3b90fc3 Clear out discovery errors on each try 2019-01-31 10:05:39 -06:00
J. Ryan Stinnett
36d162cb25 Validate server URLs on blur instead of change 2019-01-31 10:05:39 -06:00