AsyncBuilder<T> function
Widget
AsyncBuilder<T>({
- required Future<
T> future, - required Widget builder(
- BuildContext,
- T
- Widget waiting()?,
- Widget failed()?,
- T? initValue,
Implementation
Widget AsyncBuilder<T>({
required Future<T> future,
required Widget Function(BuildContext, T) builder,
Widget Function(BuildContext)? waiting,
Widget Function(BuildContext)? failed,
T? initValue,
}) {
return FutureBuilder<T>(
future: future,
initialData: initValue,
builder: (BuildContext context, AsyncSnapshot<T> snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.waiting || ConnectionState.none || ConnectionState.active:
return waiting?.call(context) ?? CircularProgressIndicator().centered();
case ConnectionState.done:
if (snapshot.hasData) {
return builder(context, snapshot.requireData);
} else {
return failed?.call(context) ?? Icons.error_outline.icon(color: Colors.orangeAccent).centered();
}
}
},
);
}