diff --git a/lib/src/localization/app_de.arb b/lib/src/localization/app_de.arb index c409217..0c8c787 100644 --- a/lib/src/localization/app_de.arb +++ b/lib/src/localization/app_de.arb @@ -19,7 +19,7 @@ "onboardingTryForFree": "Jetzt registrieren", "registerUsernameSlogan": "Bitte wähle einen Benutzernamen, damit dich andere finden können!", "registerUsernameDecoration": "Benutzername", - "registerUsernameLimits": "Der Benutzername muss 3 bis 12 Zeichen lang sein und darf nur aus Buchstaben (a-z) und Zahlen (0-9) bestehen.", + "registerUsernameLimits": "Der Benutzername muss mindestens 3 Zeichen lang sein.", "registerSubmitButton": "Jetzt registrieren!", "registerTwonlyCodeText": "Hast du einen twonly-Code erhalten? Dann löse ihn entweder direkt hier oder später ein!", "registerTwonlyCodeLabel": "twonly-Code", diff --git a/lib/src/localization/app_en.arb b/lib/src/localization/app_en.arb index a6e2e15..39dbc72 100644 --- a/lib/src/localization/app_en.arb +++ b/lib/src/localization/app_en.arb @@ -38,7 +38,7 @@ "@registerUsernameSlogan": {}, "registerUsernameDecoration": "Username", "@registerUsernameDecoration": {}, - "registerUsernameLimits": "Username must be 3 to 12 characters long, consisting only of letters (a-z) and numbers (0-9).", + "registerUsernameLimits": "Your username must be at least 3 characters long.", "@registerUsernameLimits": {}, "registerSubmitButton": "Register now!", "@registerSubmitButton": {}, diff --git a/lib/src/localization/generated/app_localizations.dart b/lib/src/localization/generated/app_localizations.dart index 03cf127..82a1c1d 100644 --- a/lib/src/localization/generated/app_localizations.dart +++ b/lib/src/localization/generated/app_localizations.dart @@ -215,7 +215,7 @@ abstract class AppLocalizations { /// No description provided for @registerUsernameLimits. /// /// In en, this message translates to: - /// **'Username must be 3 to 12 characters long, consisting only of letters (a-z) and numbers (0-9).'** + /// **'Your username must be at least 3 characters long.'** String get registerUsernameLimits; /// No description provided for @registerSubmitButton. diff --git a/lib/src/localization/generated/app_localizations_de.dart b/lib/src/localization/generated/app_localizations_de.dart index 8fd90d4..6e0e7ca 100644 --- a/lib/src/localization/generated/app_localizations_de.dart +++ b/lib/src/localization/generated/app_localizations_de.dart @@ -77,7 +77,7 @@ class AppLocalizationsDe extends AppLocalizations { @override String get registerUsernameLimits => - 'Der Benutzername muss 3 bis 12 Zeichen lang sein und darf nur aus Buchstaben (a-z) und Zahlen (0-9) bestehen.'; + 'Der Benutzername muss mindestens 3 Zeichen lang sein.'; @override String get registerSubmitButton => 'Jetzt registrieren!'; diff --git a/lib/src/localization/generated/app_localizations_en.dart b/lib/src/localization/generated/app_localizations_en.dart index 43b0f18..b7f41e0 100644 --- a/lib/src/localization/generated/app_localizations_en.dart +++ b/lib/src/localization/generated/app_localizations_en.dart @@ -76,7 +76,7 @@ class AppLocalizationsEn extends AppLocalizations { @override String get registerUsernameLimits => - 'Username must be 3 to 12 characters long, consisting only of letters (a-z) and numbers (0-9).'; + 'Your username must be at least 3 characters long.'; @override String get registerSubmitButton => 'Register now!'; diff --git a/lib/src/views/onboarding/register.view.dart b/lib/src/views/onboarding/register.view.dart index eb2bdeb..6b584ee 100644 --- a/lib/src/views/onboarding/register.view.dart +++ b/lib/src/views/onboarding/register.view.dart @@ -31,13 +31,21 @@ class _RegisterViewState extends State { bool _isTryingToRegister = false; bool _isValidUserName = false; + bool _showUserNameError = false; Future createNewUser({bool isDemoAccount = false}) async { + if (!_isValidUserName) { + setState(() { + _showUserNameError = true; + }); + return; + } final username = isDemoAccount ? '' : usernameController.text; final inviteCode = inviteCodeController.text; setState(() { _isTryingToRegister = true; + _showUserNameError = false; }); await createIfNotExistsSignalIdentity(); @@ -56,6 +64,9 @@ class _RegisterViewState extends State { return createNewUser(); } if (mounted) { + setState(() { + _isTryingToRegister = false; + }); await showAlertDialog( context, 'Oh no!', @@ -152,6 +163,15 @@ class _RegisterViewState extends State { context.lang.registerUsernameDecoration, ), ), + const SizedBox(height: 10), + Text( + context.lang.registerUsernameLimits, + style: TextStyle( + color: _showUserNameError ? Colors.red : Colors.transparent, + fontSize: 12, + ), + textAlign: TextAlign.center, + ), // const SizedBox(height: 5), // Center( // child: Padding( @@ -163,19 +183,19 @@ class _RegisterViewState extends State { // ), // ), // ), - const SizedBox(height: 30), - Center( - child: Text( - context.lang.registerTwonlyCodeText, - textAlign: TextAlign.center, - ), - ), - const SizedBox(height: 10), - TextField( - controller: inviteCodeController, - decoration: - getInputDecoration(context.lang.registerTwonlyCodeLabel), - ), + // const SizedBox(height: 30), + // Center( + // child: Text( + // context.lang.registerTwonlyCodeText, + // textAlign: TextAlign.center, + // ), + // ), + // const SizedBox(height: 10), + // TextField( + // controller: inviteCodeController, + // decoration: + // getInputDecoration(context.lang.registerTwonlyCodeLabel), + // ), const SizedBox(height: 30), Column(children: [ FilledButton.icon( @@ -189,7 +209,7 @@ class _RegisterViewState extends State { ), ) : const Icon(Icons.group), - onPressed: _isValidUserName ? createNewUser : null, + onPressed: createNewUser, style: ButtonStyle( padding: WidgetStateProperty.all( const EdgeInsets.symmetric( @@ -208,12 +228,12 @@ class _RegisterViewState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ - OutlinedButton.icon( - onPressed: () { - createNewUser(isDemoAccount: true); - }, - label: const Text('Demo'), - ), + // OutlinedButton.icon( + // onPressed: () { + // createNewUser(isDemoAccount: true); + // }, + // label: const Text('Demo'), + // ), OutlinedButton.icon( onPressed: () { Navigator.push(context, MaterialPageRoute(