profile_view_model.dart 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import 'package:flutter/material.dart';
  2. import '../models/profile_model.dart';
  3. import '../services/profile_service.dart';
  4. class ProfileViewModel extends ChangeNotifier {
  5. Profile _profile = Profile();
  6. bool _isLoading = true;
  7. // Añadir estado de visibilidad para cada campo de contraseña
  8. bool _obscureTextPassActual = true;
  9. bool _obscureTextPassNuevo = true;
  10. bool _obscureTextPassNuevoConfirmar = true;
  11. Profile get profile => _profile;
  12. bool get isLoading => _isLoading;
  13. bool get obscureTextPassActual => _obscureTextPassActual;
  14. bool get obscureTextPassNuevo => _obscureTextPassNuevo;
  15. bool get obscureTextPassNuevoConfirmar => _obscureTextPassNuevoConfirmar;
  16. // Consulta el perfil
  17. Future<void> fetchProfile() async {
  18. _profile = await ProfileService().fetchList();
  19. notifyListeners();
  20. }
  21. void setLoading(bool loading) {
  22. _isLoading = loading;
  23. notifyListeners();
  24. }
  25. // Métodos para cambiar la visibilidad de las contraseñas
  26. void toggleObscureTextPassActual() {
  27. _obscureTextPassActual = !_obscureTextPassActual;
  28. notifyListeners();
  29. }
  30. void toggleObscureTextPassNuevo() {
  31. _obscureTextPassNuevo = !_obscureTextPassNuevo;
  32. notifyListeners();
  33. }
  34. void toggleObscureTextPassNuevoConfirmar() {
  35. _obscureTextPassNuevoConfirmar = !_obscureTextPassNuevoConfirmar;
  36. notifyListeners();
  37. }
  38. // Método para cambiar la contraseña
  39. Future<bool> cambiarContrasena(String claveActual, String nuevaClave) async {
  40. try {
  41. // Asume que ProfileService ya tiene un método cambiarContrasena implementado
  42. bool resultado =
  43. await ProfileService().cambiarContrasena(claveActual, nuevaClave);
  44. return resultado;
  45. } catch (e) {
  46. // Manejo básico de errores, considera mejorar este aspecto
  47. print("Error al cambiar la contraseña: $e");
  48. return false;
  49. }
  50. }
  51. }