diff options
Diffstat (limited to 'lib/screens/login_screen.dart')
| -rw-r--r-- | lib/screens/login_screen.dart | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/lib/screens/login_screen.dart b/lib/screens/login_screen.dart new file mode 100644 index 0000000..9716df0 --- /dev/null +++ b/lib/screens/login_screen.dart @@ -0,0 +1,97 @@ +import 'package:flutter/material.dart'; +import 'chat_list_screen.dart'; +import 'signup_screen.dart'; + +class LoginScreen extends StatefulWidget { + const LoginScreen({super.key}); + + @override + State<LoginScreen> createState() => _LoginScreenState(); +} + +class _LoginScreenState extends State<LoginScreen> { + final _emailController = TextEditingController(); + final _passwordController = TextEditingController(); + + void _login() { + // Navigate to chat list on successful login + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const ChatListScreen()), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Center( + child: SingleChildScrollView( + padding: const EdgeInsets.all(24.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const Icon( + Icons.chat_bubble_outline, + size: 100, + color: Color(0xFF2AABEE), + ), + const SizedBox(height: 32), + const Text( + 'Log in to Messenger', + style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold), + textAlign: TextAlign.center, + ), + const SizedBox(height: 8), + const Text( + 'Please enter your email and password.', + style: TextStyle(color: Colors.grey), + textAlign: TextAlign.center, + ), + const SizedBox(height: 32), + TextField( + controller: _emailController, + keyboardType: TextInputType.emailAddress, + decoration: const InputDecoration( + labelText: 'Email', + border: OutlineInputBorder(), + prefixIcon: Icon(Icons.email), + ), + ), + const SizedBox(height: 16), + TextField( + controller: _passwordController, + obscureText: true, + decoration: const InputDecoration( + labelText: 'Password', + border: OutlineInputBorder(), + prefixIcon: Icon(Icons.lock), + ), + ), + const SizedBox(height: 24), + ElevatedButton( + onPressed: _login, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF2AABEE), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(vertical: 16), + ), + child: const Text('Log In', style: TextStyle(fontSize: 16)), + ), + const SizedBox(height: 16), + TextButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const SignupScreen()), + ); + }, + child: const Text('Don\'t have an account? Sign up'), + ), + ], + ), + ), + ), + ); + } +} |
