diff --git a/lib/providers/professional_form_provider.dart b/lib/providers/professional_form_provider.dart index 4179a6d..16a30c7 100644 --- a/lib/providers/professional_form_provider.dart +++ b/lib/providers/professional_form_provider.dart @@ -97,11 +97,6 @@ class ProfessionalFormProvider with ChangeNotifier { NotificationsService.showSnackbar('Error al guardar: $e'); return false; } - try { - final data = await _api.get('/professionals/me'); - profesional = Profesional.fromDocument(data as Map); - notifyListeners(); - } catch (_) {} NotificationsService.showSnackbar('Información actualizada'); return true; } diff --git a/lib/ui/views/professional_profile_view.dart b/lib/ui/views/professional_profile_view.dart index 26d2e2e..195850d 100644 --- a/lib/ui/views/professional_profile_view.dart +++ b/lib/ui/views/professional_profile_view.dart @@ -1,6 +1,7 @@ import 'dart:typed_data'; import 'package:file_picker/file_picker.dart'; import 'package:prosapp_web_app/models/location_preferences.dart'; +import 'package:prosapp_web_app/models/profesional.dart'; import 'package:prosapp_web_app/models/schedules_entity.dart'; import 'package:prosapp_web_app/models/usuario.dart'; import 'package:prosapp_web_app/providers/auth_provider.dart'; @@ -49,10 +50,13 @@ 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 + // Don't clear fp.profesional — if it's already loaded (e.g. navigating from + // schedule page) the form renders immediately with no spinner. If it's null + // the Consumer already shows the spinner until the future resolves. Provider.of(context, listen: false) .getProfessional(auth.user!.id) - .then(fp.setProfesional); + .then(fp.setProfesional) + .catchError((_) => fp.setProfesional(Profesional.empty())); } @override @@ -383,17 +387,20 @@ class _ProfileFormState extends State<_ProfileForm> { child: ElevatedButton( onPressed: _saving ? null : () async { setState(() => _saving = true); - LocationPreferences lp; - if (_delivery && _office) { - lp = LocationPreferences.both; - } else if (_delivery) { - lp = LocationPreferences.delivery; - } else { - lp = LocationPreferences.office; + try { + LocationPreferences lp; + if (_delivery && _office) { + lp = LocationPreferences.both; + } else if (_delivery) { + lp = LocationPreferences.delivery; + } else { + lp = LocationPreferences.office; + } + fp.copyProfesionalWith(locationPreferences: lp, ratePreferences: _rateEnabled); + await fp.updateProfesionalProfileInfo(user.id); + } finally { + if (mounted) setState(() => _saving = false); } - fp.copyProfesionalWith(locationPreferences: lp, ratePreferences: _rateEnabled); - await fp.updateProfesionalProfileInfo(user.id); - if (mounted) setState(() => _saving = false); }, style: ElevatedButton.styleFrom( backgroundColor: _kPrimary,