import 'package:flutter/material.dart'; class SignupScreen extends StatefulWidget { final VoidCallback onSwitchToLogin; const SignupScreen({required this.onSwitchToLogin, super.key}); @override State createState() => _SignupScreenState(); } class _SignupScreenState extends State { final _formKey = GlobalKey(); final _usernameController = TextEditingController(); final _emailController = TextEditingController(); final _passwordController = TextEditingController(); void _signup() { if (_formKey.currentState!.validate()) { final username = _usernameController.text; final email = _emailController.text; final password = _passwordController.text; // TODO: Replace with actual signup logic print('Signing up with $username, $email, $password'); } } @override Widget build(BuildContext context) { return Scaffold( //appBar: AppBar(title: Text('Sign Up')), body: Padding( padding: const EdgeInsets.all(24.0), child: Form( key: _formKey, child: Center( child: SingleChildScrollView( child: Column( children: [ Text( 'Create your Fuel Stats account', style: TextStyle( fontSize: 24, fontWeight: FontWeight.bold, ), ), const SizedBox(height: 32), TextFormField( controller: _usernameController, decoration: InputDecoration( labelText: 'Username', prefixIcon: Icon(Icons.person), border: OutlineInputBorder(), ), validator: (value) { if (value == null || value.isEmpty) return 'Please enter a username'; return null; }, ), const SizedBox(height: 16), TextFormField( controller: _emailController, decoration: InputDecoration( labelText: 'Email', prefixIcon: Icon(Icons.email), border: OutlineInputBorder(), ), keyboardType: TextInputType.emailAddress, validator: (value) { if (value == null || value.isEmpty) return 'Please enter an email'; if (!RegExp(r'^[^@]+@[^@]+\.[^@]+').hasMatch(value)) return 'Enter a valid email'; return null; }, ), const SizedBox(height: 16), TextFormField( controller: _passwordController, decoration: InputDecoration( labelText: 'Password', prefixIcon: Icon(Icons.lock), border: OutlineInputBorder(), ), obscureText: true, validator: (value) { if (value == null || value.isEmpty) return 'Please enter a password'; if (value.length < 6) return 'Password must be at least 6 characters'; return null; }, ), const SizedBox(height: 24), ElevatedButton.icon( onPressed: _signup, icon: Icon(Icons.person_add), label: Text('Sign Up'), style: ElevatedButton.styleFrom( backgroundColor: Colors.blue, foregroundColor: Colors.white, padding: EdgeInsets.symmetric(horizontal: 32, vertical: 12), ), ), const SizedBox(height: 12), TextButton( onPressed: widget.onSwitchToLogin, child: Text("Already have an account? Log in"), ), ], ), ), ), ), ), ); } }