Mobile registration optimizations and tests (#62)
* Mobile registration optimizations - don't autocaptialize or autocorrect on username field - show each password field in their own row - improve position of tooltip on mobile so that it's visible * Use optional prop rather than default prop. * Redirect to welcome screen if mobile_registration is requested but not enabled in the config. * autocorrect value should be "off" * Add unit tests for mobile registration * Fix test typo * Fix typo
This commit is contained in:
parent
4be533813e
commit
1f5571062e
9 changed files with 142 additions and 19 deletions
|
@ -952,18 +952,20 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
|
|||
}
|
||||
|
||||
private async startRegistration(params: { [key: string]: string }, isMobileRegistration?: boolean): Promise<void> {
|
||||
if (!SettingsStore.getValue(UIFeature.Registration)) {
|
||||
// If registration is disabled or mobile registration is requested but not enabled in settings redirect to the welcome screen
|
||||
if (
|
||||
!SettingsStore.getValue(UIFeature.Registration) ||
|
||||
(isMobileRegistration && !SettingsStore.getValue("Registration.mobileRegistrationHelper"))
|
||||
) {
|
||||
this.showScreen("welcome");
|
||||
return;
|
||||
}
|
||||
const isMobileRegistrationAllowed =
|
||||
isMobileRegistration && SettingsStore.getValue("Registration.mobileRegistrationHelper");
|
||||
|
||||
const newState: Partial<IState> = {
|
||||
view: Views.REGISTER,
|
||||
};
|
||||
|
||||
if (isMobileRegistrationAllowed && params.hs_url) {
|
||||
if (isMobileRegistration && params.hs_url) {
|
||||
try {
|
||||
const config = await AutoDiscoveryUtils.validateServerConfigWithStaticUrls(params.hs_url);
|
||||
newState.serverConfig = config;
|
||||
|
@ -992,12 +994,12 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
|
|||
newState.register_id_sid = params.sid;
|
||||
}
|
||||
|
||||
newState.isMobileRegistration = isMobileRegistrationAllowed;
|
||||
newState.isMobileRegistration = isMobileRegistration;
|
||||
|
||||
this.setStateForNewView(newState);
|
||||
ThemeController.isLogin = true;
|
||||
this.themeWatcher.recheck();
|
||||
this.notifyNewScreen(isMobileRegistrationAllowed ? "mobile_register" : "register");
|
||||
this.notifyNewScreen(isMobileRegistration ? "mobile_register" : "register");
|
||||
}
|
||||
|
||||
// switch view to the given room
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue