buildContent method

Widget? buildContent(
  1. BuildContext context,
  2. Iterable<T>? source
)

Implementation

Widget? buildContent(BuildContext context, Iterable<T>? source) {
  //from stream builder or from refresh
  if (source == null ||
      (source.isEmpty &&
          sourceList.indicatorStatus == IndicatorStatus.fullScreenBusying)) {
    if (source == null || !sourceList.isLoading) {
      if (autoRefresh) {
        // first load
        if (this is SliverListConfig) {
          final SliverListConfig<dynamic> sliverListConfig =
              this as SliverListConfig<dynamic>;
          // prevent lock list load
          if (sliverListConfig.actualLock) {
            return const SliverToBoxAdapter(child: SizedBox.shrink());
          }
        }
        sourceList.refresh();
      }
    }
    Widget? widget;
    if (indicatorBuilder != null) {
      widget = indicatorBuilder!(context, IndicatorStatus.fullScreenBusying);
    }
    widget = widget ??
        IndicatorWidget(
          IndicatorStatus.fullScreenBusying,
          isSliver: isSliver,
        );
    return widget;
  } else if (source.isEmpty &&
      (sourceList.indicatorStatus == IndicatorStatus.empty ||
          sourceList.indicatorStatus == IndicatorStatus.fullScreenError)) {
    Widget? widget1;
    if (indicatorBuilder != null)
      widget1 = indicatorBuilder!(context, sourceList.indicatorStatus);
    widget1 = widget1 ??
        IndicatorWidget(
          sourceList.indicatorStatus,
          isSliver: isSliver,
          tryAgain:
              sourceList.indicatorStatus == IndicatorStatus.fullScreenError
                  ? sourceList.errorRefresh
                  : null,
        );
    return widget1;
  }
  return null;
}