import 'package:flutter/material.dart'; import 'package:frontend/api_services/api_services.dart'; // Pastikan path-nya sesuai class ForgotPasswordPage extends StatefulWidget { @override _ForgotPasswordPageState createState() => _ForgotPasswordPageState(); } class _ForgotPasswordPageState extends State { final TextEditingController emailController = TextEditingController(); final TextEditingController passwordController = TextEditingController(); final ApiService apiService = ApiService(); bool isLoading = false; void handleForgotPassword() async { setState(() { isLoading = true; }); try { await apiService.forgotPassword( email: emailController.text.trim(), newPassword: passwordController.text.trim(), ); showDialog( context: context, builder: (_) => AlertDialog( title: Text('Berhasil'), content: Text('Password berhasil direset.'), actions: [ TextButton( child: Text('OK'), onPressed: () { Navigator.of(context).pop(); // tutup dialog Navigator.of(context).pop(); // kembali ke halaman sebelumnya }, ), ], ), ); } catch (e) { ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text(e.toString())), ); } finally { setState(() { isLoading = false; }); } } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Color(0xFF9DC08D), appBar: AppBar( backgroundColor: Color(0xFF9DC08D), title: Text('Lupa Password'), ), body: Center( child: SingleChildScrollView( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 20.0), child: Card( shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(15), ), elevation: 5, child: Padding( padding: const EdgeInsets.all(20.0), child: Column( children: [ TextField( controller: emailController, decoration: InputDecoration( labelText: 'Email', border: OutlineInputBorder( borderRadius: BorderRadius.circular(10), ), ), ), SizedBox(height: 20), TextField( controller: passwordController, obscureText: true, decoration: InputDecoration( labelText: 'Password Baru', border: OutlineInputBorder( borderRadius: BorderRadius.circular(10), ), ), ), SizedBox(height: 20), SizedBox( width: double.infinity, height: 50, child: ElevatedButton( style: ElevatedButton.styleFrom( backgroundColor: Colors.green, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10), ), ), onPressed: isLoading ? null : handleForgotPassword, child: isLoading ? CircularProgressIndicator(color: Colors.white) : Text( 'Reset Password', style: TextStyle( color: Colors.white, fontSize: 16, fontWeight: FontWeight.bold, ), ), ), ), ], ), ), ), ), ), ), ); } }