This commit is contained in:
otsmr 2025-07-17 20:53:23 +02:00
parent f33aa673f8
commit 3fbf29b4e2
6 changed files with 45 additions and 25 deletions

View file

@ -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",

View file

@ -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": {},

View file

@ -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.

View file

@ -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!';

View file

@ -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!';

View file

@ -31,13 +31,21 @@ class _RegisterViewState extends State<RegisterView> {
bool _isTryingToRegister = false;
bool _isValidUserName = false;
bool _showUserNameError = false;
Future<void> createNewUser({bool isDemoAccount = false}) async {
if (!_isValidUserName) {
setState(() {
_showUserNameError = true;
});
return;
}
final username = isDemoAccount ? '<demo>' : usernameController.text;
final inviteCode = inviteCodeController.text;
setState(() {
_isTryingToRegister = true;
_showUserNameError = false;
});
await createIfNotExistsSignalIdentity();
@ -56,6 +64,9 @@ class _RegisterViewState extends State<RegisterView> {
return createNewUser();
}
if (mounted) {
setState(() {
_isTryingToRegister = false;
});
await showAlertDialog(
context,
'Oh no!',
@ -152,6 +163,15 @@ class _RegisterViewState extends State<RegisterView> {
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<RegisterView> {
// ),
// ),
// ),
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<RegisterView> {
),
)
: const Icon(Icons.group),
onPressed: _isValidUserName ? createNewUser : null,
onPressed: createNewUser,
style: ButtonStyle(
padding: WidgetStateProperty.all<EdgeInsets>(
const EdgeInsets.symmetric(
@ -208,12 +228,12 @@ class _RegisterViewState extends State<RegisterView> {
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(