// lib/views/login_screen.dart import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../view_models/auth_view_model.dart'; class LoginScreen extends StatefulWidget { const LoginScreen({super.key}); @override State createState() => _LoginScreenState(); } class _LoginScreenState extends State { final _emailController = TextEditingController(); final _passwordController = TextEditingController(); @override Widget build(BuildContext context) { final authViewModel = Provider.of(context); return Scaffold( appBar: AppBar(title: const Text('Login')), body: Padding( padding: const EdgeInsets.all(16.0), child: Column( children: [ TextField( controller: _emailController, decoration: const InputDecoration(labelText: 'Email'), ), TextField( controller: _passwordController, decoration: const InputDecoration(labelText: 'Password'), obscureText: true, ), const SizedBox(height: 20), if (authViewModel.isLoading) const CircularProgressIndicator() else ElevatedButton( onPressed: () { authViewModel.login( _emailController.text, _passwordController.text, ); }, child: const Text('Login'), ), if (authViewModel.errorMessage != null) Padding( padding: const EdgeInsets.only(top: 20), child: Text( authViewModel.errorMessage!, style: const TextStyle(color: Colors.red), ), ), if (authViewModel.loggedInUser != null) Padding( padding: const EdgeInsets.only(top: 20), child: Text( 'Welcome, ${authViewModel.loggedInUser!.name}!', style: const TextStyle(color: Colors.green), ), ), ], ), ), ); } }