From b31ff136570c57f95680cc3dda3f7eb9da0be01b Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Thu, 2 Jul 2026 21:44:16 -0500 Subject: [PATCH] fix: professional profile not loading or saving correctly - Fix typo aditional_address -> additional_address in toDocument() and fromDocument() - Clear ProfessionalFormProvider before fetch in initState() so TextFormField initialValue always applies to fresh data - Add clear() to ProfessionalFormProvider; call it on logout to avoid leaking data between users Co-Authored-By: Claude Sonnet 4.6 --- lib/models/profesional.dart | 4 ++-- lib/providers/auth_provider.dart | 2 ++ lib/providers/professional_form_provider.dart | 5 +++++ lib/ui/views/professional_profile_view.dart | 1 + 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/models/profesional.dart b/lib/models/profesional.dart index b9f880c..b4f4b73 100644 --- a/lib/models/profesional.dart +++ b/lib/models/profesional.dart @@ -132,7 +132,7 @@ class Profesional { rethusCode: (doc['rethus_code'] as String?) ?? '', rethusValidated: (doc['rethus_validated'] as bool?) ?? false, address: (doc['address'] as String?) ?? '', - aditionalAddress: (doc['aditional_address'] as String?) ?? '', + aditionalAddress: (doc['additional_address'] as String?) ?? '', profession: (doc['profession'] as String?) ?? '', ratePreferences: (doc['rate_preferences'] as bool?) ?? false, rate: (doc['rate'] as num?)?.toString() ?? '', @@ -202,7 +202,7 @@ class Profesional { 'rethus_code': rethusCode, 'rethus_validated': rethusValidated, 'address': address, - 'aditional_address': aditionalAddress, + 'additional_address': aditionalAddress, 'profession': profession, 'rate_preferences': ratePreferences, 'rate': double.tryParse(rate) ?? 0.0, diff --git a/lib/providers/auth_provider.dart b/lib/providers/auth_provider.dart index 6d5953d..f7c2c6c 100644 --- a/lib/providers/auth_provider.dart +++ b/lib/providers/auth_provider.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:prosapp_web_app/models/usuario.dart'; +import 'package:prosapp_web_app/providers/professional_form_provider.dart'; import 'package:prosapp_web_app/providers/professional_provider.dart'; import 'package:prosapp_web_app/providers/services_provider.dart'; import 'package:prosapp_web_app/router/router.dart'; @@ -205,6 +206,7 @@ class AuthProvider extends ChangeNotifier { final ctx = NavigationService.navigatorKey.currentContext!; Provider.of(ctx, listen: false).logout(); Provider.of(ctx, listen: false).logout(); + Provider.of(ctx, listen: false).clear(); NavigationService.replaceTo(Flurorouter.phoneLoginRoute); } diff --git a/lib/providers/professional_form_provider.dart b/lib/providers/professional_form_provider.dart index 27b8aa7..5d9603a 100644 --- a/lib/providers/professional_form_provider.dart +++ b/lib/providers/professional_form_provider.dart @@ -60,6 +60,11 @@ class ProfessionalFormProvider with ChangeNotifier { bool _validForm() => formKey.currentState!.validate(); bool _validProfileForm() => profileFormKey.currentState!.validate(); + void clear() { + profesional = null; + notifyListeners(); + } + setProfesional(Profesional p) { profesional = p; notifyListeners(); diff --git a/lib/ui/views/professional_profile_view.dart b/lib/ui/views/professional_profile_view.dart index ee80456..26d2e2e 100644 --- a/lib/ui/views/professional_profile_view.dart +++ b/lib/ui/views/professional_profile_view.dart @@ -49,6 +49,7 @@ class _ProfessionalProfileViewState extends State { final pfp = Provider.of(context, listen: false); final fp = Provider.of(context, listen: false); pfp.user = auth.user; + fp.clear(); // force spinner so TextFormField initialValue applies to fresh data Provider.of(context, listen: false) .getProfessional(auth.user!.id) .then(fp.setProfesional);