diff --git a/lib/LoginPage.dart b/lib/LoginPage.dart index fdca8a1..4f60ad4 100644 --- a/lib/LoginPage.dart +++ b/lib/LoginPage.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:oggauergemeindetrommler/register.dart'; class LoginPage extends StatefulWidget { LoginPage({Key? key}) : super(key: key); @@ -79,6 +80,11 @@ class _LoginPageState extends State { TextButton( onPressed: () { // Navigiere zur Registrierungsseite + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const RegisterPage()), + ); }, child: const Text('Registrieren'), ), @@ -92,4 +98,3 @@ class _LoginPageState extends State { ); } } - diff --git a/lib/register.dart b/lib/register.dart new file mode 100644 index 0000000..2c6e122 --- /dev/null +++ b/lib/register.dart @@ -0,0 +1,98 @@ +import 'package:flutter/material.dart'; + +class RegisterPage extends StatefulWidget { + const RegisterPage({Key? key}) : super(key: key); + + @override + _RegisterPageState createState() => _RegisterPageState(); +} + +class _RegisterPageState extends State { + final _emailController = TextEditingController(); + final _passwordController = TextEditingController(); + final _confirmPasswordController = TextEditingController(); + + @override + void dispose() { + _emailController.dispose(); + _passwordController.dispose(); + _confirmPasswordController.dispose(); + super.dispose(); + } + + bool isValidEmail(String email) { + // Die gleiche Validierung wie in Ihrer LoginPage + return RegExp(r'^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$').hasMatch(email); + } + + bool arePasswordsMatching(String password, String confirmPassword) { + return password == confirmPassword; + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const SizedBox(height: 16), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 32), + child: Column( + children: [ + TextFormField( + controller: _emailController, + decoration: const InputDecoration( + labelText: 'E-Mail', + ), + validator: (value) { + if (value!.isEmpty) { + return 'Bitte geben Sie eine E-Mail-Adresse ein.'; + } else if (!isValidEmail(value)) { + return 'Bitte geben Sie eine gültige E-Mail-Adresse ein.'; + } + return null; + }, + ), + const SizedBox(height: 16), + TextFormField( + controller: _passwordController, + obscureText: true, + decoration: const InputDecoration( + labelText: 'Passwort', + ), + ), + const SizedBox(height: 16), + TextFormField( + controller: _confirmPasswordController, + obscureText: true, + decoration: const InputDecoration( + labelText: 'Passwort bestätigen', + ), + ), + ElevatedButton( + onPressed: () { + String email = _emailController.text; + String password = _passwordController.text; + String confirmPassword = _confirmPasswordController.text; + if (isValidEmail(email) && arePasswordsMatching(password, confirmPassword)) { + // E-Mail und Passwörter sind gültig, führe die entsprechende Aktion aus + } else { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Ungültige Eingaben'), + duration: Duration(seconds: 2), + ), + ); + } + }, + child: const Text('Registrieren'), + ), + ], + ), + ), + ], + ), + ); + } +}