import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:prosappco/src/components/pop_appbar.dart'; import 'package:prosappco/src/presentation/screens/about.dart'; class ConfiguracionScreen extends StatefulWidget { const ConfiguracionScreen({super.key}); @override State createState() => _ConfiguracionScreenState(); } class _ConfiguracionScreenState extends State { late final FirebaseAuth _auth; @override void initState() { super.initState(); _auth = FirebaseAuth.instance; } Future deleteAccount() async { try { final currentUser = _auth.currentUser; if (currentUser != null) { final uid = currentUser.uid; await FirebaseFirestore.instance.collection('users').doc(uid).delete(); await currentUser.delete(); await _auth.signOut(); Get.snackbar( 'Cuenta Eliminada', 'Tu cuenta ha sido eliminada con éxito.', snackPosition: SnackPosition.BOTTOM, ); } } catch (e) { Get.snackbar( 'Error al Eliminar Cuenta', 'Hubo un error al eliminar tu cuenta. Por favor, inténtalo de nuevo más tarde.', snackPosition: SnackPosition.BOTTOM, ); } } Future _showDeleteAccountConfirmationDialog( BuildContext context) async { return showDialog( context: context, builder: (BuildContext context) { return AlertDialog( title: const Text('Eliminar Cuenta'), content: const Text( '¿Estás seguro de que deseas eliminar tu cuenta? Esta acción no se puede deshacer.'), actions: [ TextButton( onPressed: () { Navigator.of(context).pop(); }, child: const Text('Cancelar'), ), TextButton( onPressed: () { deleteAccount(); Navigator.of(context).pop(); }, child: const Text( 'Eliminar', style: TextStyle(color: Colors.red, fontWeight: FontWeight.w600), ), ), ], ); }, ); } @override Widget build(BuildContext context) { return Scaffold( appBar: PopAppbar( onPressed: () { Navigator.pop(context); }, label: 'Configuración'), body: ListView( children: [ ListTile( onTap: () { Navigator.push( context, CupertinoPageRoute( builder: (BuildContext context) { return const AboutScreen(); }, ), ); }, title: const Text('Acerca de la aplicación'), trailing: const Icon( Icons.keyboard_arrow_right, color: Colors.black, ), ), ListTile( onTap: () { _showDeleteAccountConfirmationDialog(context); }, title: const Text( 'Eliminar cuenta', style: TextStyle(color: Colors.red), ), ), ], ), ); } }