load method

Future<void> load(
  1. AbstractListLoadEvent event,
  2. Emitter<S> emit
)

Implementation

Future<void> load(AbstractListLoadEvent event, Emitter<S> emit) async {
  if (state is AbstractListFilterableState) {
    (state as AbstractListFilterableState).searchModel = event.searchModel ??
        (initialState() as AbstractListFilterableState).searchModel;
  }

  await onBeforeLoad(event, emit);

  state.resultStatus = ResultStatus.loading;
  updateState(state.copyWith() as S, emit);

  try {
    updateState(
        await convertResultToStateAfterLoad(await resolveData()), emit);
  } catch (e) {
    await for (final result in resolveStreamData()) {
      updateState(await convertResultToStateAfterLoad(result), emit);
      await onAfterLoad(event, emit, result);
    }
  }
}