import 'package:flutter/material.dart'; import '../models/profile_model.dart'; import '../services/profile_service.dart'; class ProfileViewModel extends ChangeNotifier { Profile _profile = Profile(); bool _isLoading = true; // Añadir estado de visibilidad para cada campo de contraseña bool _obscureTextPassActual = true; bool _obscureTextPassNuevo = true; bool _obscureTextPassNuevoConfirmar = true; Profile get profile => _profile; bool get isLoading => _isLoading; bool get obscureTextPassActual => _obscureTextPassActual; bool get obscureTextPassNuevo => _obscureTextPassNuevo; bool get obscureTextPassNuevoConfirmar => _obscureTextPassNuevoConfirmar; // Consulta el perfil Future fetchProfile() async { _profile = await ProfileService().fetchList(); notifyListeners(); } void setLoading(bool loading) { _isLoading = loading; notifyListeners(); } // Métodos para cambiar la visibilidad de las contraseñas void toggleObscureTextPassActual() { _obscureTextPassActual = !_obscureTextPassActual; notifyListeners(); } void toggleObscureTextPassNuevo() { _obscureTextPassNuevo = !_obscureTextPassNuevo; notifyListeners(); } void toggleObscureTextPassNuevoConfirmar() { _obscureTextPassNuevoConfirmar = !_obscureTextPassNuevoConfirmar; notifyListeners(); } // Método para cambiar la contraseña Future cambiarContrasena(String claveActual, String nuevaClave) async { try { // Asume que ProfileService ya tiene un método cambiarContrasena implementado bool resultado = await ProfileService().cambiarContrasena(claveActual, nuevaClave); return resultado; } catch (e) { // Manejo básico de errores, considera mejorar este aspecto print("Error al cambiar la contraseña: $e"); return false; } } }