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 { final UserRepository _userRepository; ProfileBloc({required UserRepository userRepository,}) : _userRepository = userRepository, super(UpdateUserInfoInitial()) { on(_onUpdateUserInfo); } void _onUpdateUserInfo(UpdateUserInfo event, Emitter 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()); } } }