mapEventToState method

Must be implemented when a class extends BidirectionalBloc. mapEventToState is called whenever an event is added and will convert that event into a new BloC state. It can yield zero, one or several states for an event.

Implementation

@override
Stream<FastAppSettingsBlocState> mapEventToState(
  FastAppSettingsBlocEvent event,
) async* {
  final payload = event.payload;
  final type = event.type;

  _logger.debug('Event received: $type');

  if (type == FastAppSettingsBlocEventType.init) {
    yield* handleInitEvent(payload);
  } else if (type == FastAppSettingsBlocEventType.initialized) {
    yield* handleInitializedEvent(payload);
  } else if (isInitialized) {
    switch (type) {
      case FastAppSettingsBlocEventType.languageCodeChanged:
        yield* handleLanguageCodeChangedEvent(payload);
      case FastAppSettingsBlocEventType.themeChanged:
        yield* handleThemeChangedEvent(payload);
      case FastAppSettingsBlocEventType.countryCodeChanged:
        yield* handleCountryCodeChangedEvent(payload);
      case FastAppSettingsBlocEventType.primaryCurrencyCodeChanged:
        yield* handlePrimaryCurrencyCodeChangedEvent(payload);
      case FastAppSettingsBlocEventType.secondaryCurrencyCodeChanged:
        yield* handleSecondaryCurrencyCodeChangedEvent(payload);
      case FastAppSettingsBlocEventType.saveEntryChanged:
        yield* handleSaveEntryChangedEvent(payload);
      case FastAppSettingsBlocEventType.use24HourFormatChanged:
        yield* handleuse24HourFormatChangedEvent(payload);
      default:
        break;
    }
  } else {
    assert(false, 'FastAppSettingsBloc is not initialized yet.');
  }
}