feat: filtrar profesionales por ciudad del usuario al cargar lista
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
a2bcc8d86d
commit
b8b56c4aaa
+4
-1
@@ -48,7 +48,10 @@ class AppState extends StatelessWidget {
|
||||
ChangeNotifierProvider(lazy: false, create: (_) => SettingsProvider()),
|
||||
ChangeNotifierProvider(create: (_) => ProfileFormProvider()),
|
||||
ChangeNotifierProvider(create: (_) => ProfessionalFormProvider()),
|
||||
ChangeNotifierProvider(create: (_) => ProfessionalsProvider()),
|
||||
ChangeNotifierProxyProvider<AuthProvider, ProfessionalsProvider>(
|
||||
create: (_) => ProfessionalsProvider(),
|
||||
update: (_, auth, prev) => prev!..updateCity(auth.user?.city),
|
||||
),
|
||||
ChangeNotifierProvider(create: (_) => ServicesProvider()),
|
||||
ChangeNotifierProvider(create: (_) => CalendarServicesProvider()),
|
||||
ChangeNotifierProvider(create: (_) => CitiesProvider()),
|
||||
|
||||
@@ -5,15 +5,24 @@ import 'package:prosapp_web_app/services/api_service.dart';
|
||||
class ProfessionalsProvider extends ChangeNotifier {
|
||||
List<UsuarioProfesional> professionals = [];
|
||||
bool isLoading = true;
|
||||
String? _city;
|
||||
final _api = ApiService.instance;
|
||||
|
||||
ProfessionalsProvider() {
|
||||
getProfessionals();
|
||||
void updateCity(String? city) {
|
||||
if (_city != city) {
|
||||
_city = city;
|
||||
getProfessionals();
|
||||
}
|
||||
}
|
||||
|
||||
getProfessionals() async {
|
||||
isLoading = true;
|
||||
notifyListeners();
|
||||
try {
|
||||
final res = await _api.get('/professionals');
|
||||
final path = (_city != null && _city!.isNotEmpty)
|
||||
? '/professionals?city=${Uri.encodeComponent(_city!)}'
|
||||
: '/professionals';
|
||||
final res = await _api.get(path);
|
||||
final list = (res is Map ? res['data'] : res) as List;
|
||||
professionals = list
|
||||
.map((e) => UsuarioProfesional.fromDocument(e as Map<String, dynamic>))
|
||||
|
||||
Reference in New Issue
Block a user