simpleBuilder<T> static method
Widget
simpleBuilder<T>({
- Key? key,
- required FutureOr<
T> action(), - List<
ScrollController> scrollControllers = const [], - int maxWaitFrames = 5,
- bool waitForEndOfFrame = true,
- int endOfFramePasses = 2,
- Duration? timeout,
- Widget? loading,
- Widget errorBuilder(
- PostFrameResult<
T> result
- PostFrameResult<
- Widget dataBuilder(
- PostFrameResult<
T> result
- PostFrameResult<
Convenience builder returning common loading/data/error widgets.
Implementation
static Widget simpleBuilder<T>({
Key? key,
required FutureOr<T> Function() action,
List<ScrollController> scrollControllers = const [],
int maxWaitFrames = 5,
bool waitForEndOfFrame = true,
int endOfFramePasses = 2,
Duration? timeout,
Widget? loading,
Widget Function(PostFrameResult<T> result)? errorBuilder,
Widget Function(PostFrameResult<T> result)? dataBuilder,
}) {
return builder<T>(
action: action,
scrollControllers: scrollControllers,
maxWaitFrames: maxWaitFrames,
waitForEndOfFrame: waitForEndOfFrame,
endOfFramePasses: endOfFramePasses,
timeout: timeout,
builder: (context, snapshot) {
if (!snapshot.hasData) {
return loading ?? const Center(child: CircularProgressIndicator());
}
final result = snapshot.data!;
if (result.canceled) {
return errorBuilder?.call(result) ?? const Text('Canceled');
}
if (result.hasError) {
return errorBuilder?.call(result) ?? Text('Error: ${result.error}');
}
return dataBuilder?.call(result) ?? Text('Value: ${result.value}');
},
);
}