spinner<T> static method

Hud<T?> spinner<T>(
  1. BuildContext context,
  2. String text, {
  3. Future<T> operation()?,
  4. Duration? duration,
})

Implementation

static Hud<T?> spinner<T>(BuildContext context, String text,
    {Future<T> operation()?, Duration? duration}) {
  return platformHud.spinner<T?>(context, text, operation: () async {
    if (operation != null) {
      try {
        final result = await Future.wait(
            [operation(), Future.delayed(kDefaultSunnyHudDuration)]);
        return result.first as T?;
      } catch (e) {
        /// Awaiting here caused issues because it was dismissing before returning the value
        dismiss(context);
        return null;
      }
    } else {
      return null;
    }
  });
}