info pro
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:professional_repository/professional_repository.dart';
|
||||
import 'package:user_repository/user_repository.dart';
|
||||
|
||||
part 'professional_list_event.dart';
|
||||
part 'professional_list_state.dart';
|
||||
|
||||
class ProfessionalListBloc
|
||||
extends Bloc<ProfessionalListEvent, ProfessionalListState> {
|
||||
final UserRepository _userRepository;
|
||||
final FirebaseProfessionalRepository _firebaseProfessionalRepository;
|
||||
|
||||
ProfessionalListBloc({
|
||||
required UserRepository userRepository,
|
||||
required FirebaseProfessionalRepository firebaseProfessonalRepository,
|
||||
}) : _userRepository = userRepository,
|
||||
_firebaseProfessionalRepository = firebaseProfessonalRepository,
|
||||
super(ProfessionalListInitial()) {
|
||||
on<ProfessionalListFetch>(_onProfessionalListFetch);
|
||||
}
|
||||
|
||||
void _onProfessionalListFetch(ProfessionalListFetch event, Emitter<ProfessionalListState> emit) async {
|
||||
emit(ProfessionalListLoading());
|
||||
final users = await _userRepository.getUsersProfessionalActive();
|
||||
|
||||
final professionals = await _firebaseProfessionalRepository.getProfessionalInfo();
|
||||
|
||||
final professionalInfoMap = {for (var doc in professionals) doc.id: doc};
|
||||
|
||||
final usersMap = users
|
||||
.map((user) => UserProfessional(
|
||||
myUser: user,
|
||||
professionalInfo: professionalInfoMap[user.id]!,
|
||||
))
|
||||
.toList();
|
||||
|
||||
emit(ProfessionalListSuccess(users: usersMap));
|
||||
}
|
||||
}
|
||||
|
||||
class UserProfessional {
|
||||
final MyUser myUser;
|
||||
final ProfessionalEntity professionalInfo;
|
||||
|
||||
UserProfessional({required this.myUser, required this.professionalInfo});
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return '''UserProfessional{
|
||||
myUser: $myUser,
|
||||
professionalInfo: $professionalInfo
|
||||
}''';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
part of 'professional_list_bloc.dart';
|
||||
|
||||
abstract class ProfessionalListEvent extends Equatable {
|
||||
const ProfessionalListEvent();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class ProfessionalListFetch extends ProfessionalListEvent {
|
||||
const ProfessionalListFetch();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
part of 'professional_list_bloc.dart';
|
||||
|
||||
abstract class ProfessionalListState extends Equatable {
|
||||
const ProfessionalListState();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class ProfessionalListInitial extends ProfessionalListState {}
|
||||
|
||||
class ProfessionalListLoading extends ProfessionalListState {}
|
||||
|
||||
class ProfessionalListSuccess extends ProfessionalListState {
|
||||
final List<UserProfessional> users;
|
||||
|
||||
const ProfessionalListSuccess({required this.users});
|
||||
|
||||
@override
|
||||
List<Object> get props => [users];
|
||||
}
|
||||
@@ -10,6 +10,9 @@ class ProfileBloc extends Bloc<ProfileEvent, ProfileState> {
|
||||
|
||||
ProfileBloc({required UserRepository userRepository,}) : _userRepository = userRepository,
|
||||
super(UpdateUserInfoInitial()) {
|
||||
|
||||
|
||||
|
||||
on<UpdateUserInfo>(_onUpdateUserInfo);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user