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(_onUploadPicture); on(_onUpdateUserInfo); } void _onUploadPicture(UploadPicture event, Emitter emit) async { emit(UploadPictureLoading()); try { String userImage = await _userRepository.uploadPicture(event.file, event.userId); emit(UploadPictureSuccess(userImage)); } catch (e) { emit(UploadPictureFailure()); } } void _onUpdateUserInfo( UpdateUserInfo event, Emitter emit) async { emit(UpdateUserInfoLoading()); try { await _userRepository.updateUserInfo(event.userId, { 'name': event.name, }); emit(const UpdateUserInfoSuccess()); } catch (e) { emit(UpdateUserInfoFailure()); } } }