snapWidgetHelper<T> function

Widget snapWidgetHelper<T>(
  1. AsyncSnapshot<T> snap, {
  2. Widget? errorWidget,
  3. Widget? loadingWidget,
  4. String? defaultErrorMessage,
  5. @Deprecated('Do not use this') bool checkHasData = false,
  6. Widget errorBuilder(
    1. String
    )?,
  7. bool showErrorLog = false,
})

Handle error and loading widget when using FutureBuilder or StreamBuilder

Implementation

Widget snapWidgetHelper<T>(
  AsyncSnapshot<T> snap, {
  Widget? errorWidget,
  Widget? loadingWidget,
  String? defaultErrorMessage,
  @Deprecated('Do not use this') bool checkHasData = false,
  Widget Function(String)? errorBuilder,
  bool showErrorLog = false,
}) {
  if (snap.hasError) {
    if (showErrorLog) log('nb_utils->snapWidgetHelper(): ${snap.error}');
    if (errorBuilder != null) {
      return errorBuilder.call(defaultErrorMessage ?? snap.error.toString());
    }
    return errorWidget ??
        Text(
          defaultErrorMessage ?? snap.error.toString(),
          style: primaryTextStyle(),
        ).center();
  } else if (!snap.hasData) {
    return loadingWidget ?? Loader();
  } else {
    return SizedBox();
  }
}