SimpleFutureListBuilder<T> constructor
SimpleFutureListBuilder<T> ({
- required Future<
List< future,T> > - required DataBuilder<
List< builder,T> ?> - WidgetBuilder? nullBuilder,
- List<
T> ? initialData, - ErrorBuilder? error,
- WidgetBuilder? loading,
- WidgetBuilder? empty,
Implementation
SimpleFutureListBuilder({
required Future<List<T>> future,
required DataBuilder<List<T>?> builder,
WidgetBuilder? nullBuilder,
List<T>? initialData,
ErrorBuilder? error,
WidgetBuilder? loading,
WidgetBuilder? empty,
}) : super(
future: future,
builder: (context, snapshot) {
late Widget widget;
switch (snapshot.connectionState) {
case ConnectionState.none:
case ConnectionState.waiting:
if (loading != null) {
widget = loading(context);
} else {
widget = Container();
}
break;
case ConnectionState.active:
case ConnectionState.done:
if (snapshot.hasError) {
if (error != null) {
widget = error(context, snapshot.error);
} else {
widget = Text('${snapshot.error}');
}
} else {
if (snapshot.hasData) {
if (snapshot.data!.isEmpty) {
if (empty != null) {
widget = empty(context);
} else {
widget = builder(context, snapshot.data);
}
} else {
widget = builder(context, snapshot.data);
}
} else {
if (nullBuilder != null) {
widget = nullBuilder(context);
} else {
widget = builder(context, snapshot.data);
}
}
}
break;
}
return widget;
},
);