import 'package:flutter/material.dart'; import '../services/auth_service.dart'; import 'login_screen.dart'; class SettingsScreen extends StatelessWidget { const SettingsScreen({super.key}); @override Widget build(BuildContext context) { final AuthService auth = AuthService(); return Scaffold( backgroundColor: const Color(0xFFF2F4F7), appBar: AppBar( centerTitle: false, titleSpacing: 20, title: const Text( "Pengaturan", style: TextStyle( color: Colors.black, fontWeight: FontWeight.bold, fontSize: 22, ), ), elevation: 0, backgroundColor: Colors.white, foregroundColor: Colors.black, ), body: Padding( padding: const EdgeInsets.all(20), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(20), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.05), blurRadius: 10, offset: const Offset(0, 4), ) ], ), child: ListTile( contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 5), leading: const Icon(Icons.logout_rounded, color: Colors.red), title: const Text( "Keluar", style: TextStyle( fontWeight: FontWeight.bold, color: Colors.red, ), ), trailing: const Icon( Icons.arrow_forward_ios_rounded, size: 16, color: Colors.grey, ), onTap: () => _showLogoutDialog(context, auth), ), ), ], ), ), ); } void _showLogoutDialog(BuildContext context, AuthService auth) { showDialog( context: context, barrierDismissible: false, builder: (BuildContext dialogContext) { return AlertDialog( shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20), ), title: const Text("Konfirmasi"), content: const Text( "Apakah Anda yakin ingin keluar dari aplikasi?", ), actions: [ TextButton( onPressed: () => Navigator.pop(dialogContext), child: const Text( "Batal", style: TextStyle(color: Colors.grey), ), ), TextButton( onPressed: () async { try { await auth.logout(); if (!context.mounted) return; Navigator.pop(dialogContext); Navigator.pushAndRemoveUntil( context, MaterialPageRoute( builder: (context) => const LoginScreen(), ), (route) => false, ); } catch (e) { if (context.mounted) { Navigator.pop(dialogContext); ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text("Gagal keluar: $e"), ), ); } } }, child: const Text( "Oke, Keluar", style: TextStyle( color: Colors.red, fontWeight: FontWeight.bold, ), ), ), ], ); }, ); } }