Skip to content

Instantly share code, notes, and snippets.

@pagetronic
Created November 1, 2023 10:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pagetronic/899b5d2eca961810e4a1596b32ef2e8b to your computer and use it in GitHub Desktop.
Save pagetronic/899b5d2eca961810e4a1596b32ef2e8b to your computer and use it in GitHub Desktop.
FutureOrBuilder
import 'dart:async';
import 'package:flutter/widgets.dart';
class FutureOrBuilder<T> extends StatelessWidget {
final FutureOr<T?> future;
final Widget Function(BuildContext context, AsyncSnapshot<T?> snapshot) builder;
const FutureOrBuilder({super.key, required this.builder, required this.future});
@override
Widget build(BuildContext context) {
if (future is T?) {
return builder(context, AsyncSnapshot.withData(ConnectionState.done, future as T?));
}
return FutureBuilder(future: future as Future<T?>, builder: builder);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment