render method
Implementation
@override
void render(Rect area, Buffer buffer, RenderContext ctx) {
final entry = ctx.async_.useFuture<Result<T, E>>(key, future);
Widget widget;
switch (entry.status) {
case AsyncStatus.success:
final r = entry.value as Result<T, E>;
widget = switch (r) {
Ok(:final value) => onSuccess(value),
Err(:final error) => onFailure(error),
};
case AsyncStatus.error:
widget = onError(entry.error ?? 'unknown', entry.stack);
case AsyncStatus.loading:
case AsyncStatus.unknown:
case AsyncStatus.failure:
widget = onLoading();
}
ctx.draw(widget, area);
}