futureOr<V> function

Widget futureOr<V>(
  1. BuildContext context,
  2. FutureOr<V> waitFor,
  3. Widget builder(
    1. BuildContext context,
    2. V? resolved
    ), {
  4. Widget spinner(
    1. BuildContext context
    )?,
  5. String? key,
  6. bool allowNull = false,
})

// Given a record, will ensure that the data is loaded, and will optionally track changes if watch is set

Implementation

//Widget resolve<V extends Entity>(
//  BuildContext context,
//  Record<V> record,
//  Widget builder(BuildContext context, V resolved), {
//  bool watch = false,
//}) {
//  if (record == null) return builder(context, null);
//  if (!record.isResolved) {
//    return future<V>(context, waitFor: record.future, builder: (context, V data) {
//      return watch
//          ? observe(context, "record-${record.debugName}", (_) {
//              return builder(context, record.value);
//            })
//          : builder(context, record.value);
//    });
//  } else {
//    return watch
//        ? observe(context, "record-${record.debugName}", (_) {
//            return builder(context, record.value);
//          })
//        : builder(context, record.value);
//  }
//}
//
//Widget resolveColumn<V extends Entity>(
//  BuildContext context,
//  Record<V> record,
//  Iterable<Widget> builder(BuildContext context, V resolved),
//) {
//  return future<V>(
//    context,
//    observerName: "record-${uncapitalize(V.toString())}-${record.id}",
//    waitFor: record.future,
//    builder: (context, V data) {
//      return column([...builder(context, record.value)]);
//    },
//  );
//}

Widget futureOr<V>(
  BuildContext context,
  FutureOr<V> waitFor,
  Widget builder(BuildContext context, V? resolved), {
  Widget spinner(BuildContext context)?,
  String? key,
  bool allowNull = false,
}) {
  return future<V>(
    context,
    waitFor: waitFor,
    key: key,
    allowNull: allowNull,
    builder: builder,
    spinner: spinner,
  );
}