mapEventToState method

  1. @override
Stream<UserState> mapEventToState(
  1. UserEvent event
)

@Deprecated - Use on

Must be implemented when a class extends Bloc. mapEventToState is called whenever an event is added and is responsible for converting that event into a new state. mapEventToState can yield zero, one, or multiple states for an event.

Implementation

@override
Stream<UserState> mapEventToState(
  UserEvent event,
) async* {
  if (event is UserProfileFetchEvent) {
    emit(UserProfileLoading());
    final localUser = await sessionManager.getCurrentUser();
    if (localUser != null) {
      emit(UserProfileLoadSuccess(user: localUser));
    }
    final response = await controller.getUserProfile();
    if (response.ok && response.response != null) {
      emit(UserProfileLoadSuccess(user: response.response!));
      return;
    }
    emit(UserProfileLoadFailure(
        message: response.message ?? 'An Unknown Error Occurred.'));
  }
  if (event is UserProfileUpdateEvent) {
    yield UserInformationUpdating();
    final result = await controller.userInformationUpdate(
        model: event.userModel, token: event.token);
    if (result.ok) {
      yield UserInformationUpdateSuccess(phone: result.data?.phone ?? '');
      return;
    }
    yield UserInformationUpdateFailure(
        message: result.message ?? 'An unknown error occurred.');
  }
}