Files
prosappco/lib/blocs/profile_bloc/profile_bloc.dart
T
2024-03-13 15:09:41 -05:00

41 lines
1.2 KiB
Dart

import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:user_repository/user_repository.dart';
part 'profile_event.dart';
part 'profile_state.dart';
class ProfileBloc extends Bloc<ProfileEvent, ProfileState> {
final UserRepository _userRepository;
// final AuthBloc _authBloc; // lo nuevo
ProfileBloc({
required UserRepository userRepository,
// required AuthBloc authBloc
}) : _userRepository = userRepository,
// _authBloc = authBloc,
super(UpdateUserInfoInitial()) {
on<UpdateUserInfo>(_onUpdateUserInfo);
}
void _onUpdateUserInfo(
UpdateUserInfo event, Emitter<ProfileState> emit) async {
emit(UpdateUserInfoLoading());
try {
final userImageUrl = event.filePicture != null
? await _userRepository.uploadPicture(
event.filePicture!, event.myUser.id)
: null;
final myUser = userImageUrl == null
? event.myUser
: event.myUser.copyWith(picture: userImageUrl);
await _userRepository.updateUserInfo(myUser);
emit(const UpdateUserInfoSuccess());
} catch (e) {
emit(UpdateUserInfoFailure());
}
}
}