build method

  1. @override
Widget build(
  1. BuildContext context
)
override

Implementation

@override
Widget build(BuildContext context) {
  return FutureBuilder<T>(
    future: future,
    initialData: initialData,
    builder: (BuildContext context, AsyncSnapshot<T> snapshot) {
      if (snapshot.hasError) {
        Widget child = ErrorMessage(
          error: snapshot.error,
          stackTrace: snapshot.stackTrace,
        );

        return onError != null
            ? onError!(
                snapshot.error,
                snapshot.stackTrace,
                child,
                snapshot.connectionState,
              )
            : child;
      }

      if (snapshot.hasData) {
        return builder(context, snapshot.data as T, snapshot.connectionState);
      }

      Widget child = WaitingMessage(message: waitingMessage);

      return onWait != null
          ? onWait!(snapshot.connectionState, child)
          : child;
    },
  );
}