part of '../async_action_button.dart'; class AsyncFab extends StatelessWidget { final AsyncActionCallback? onPressed; final IconData icon; final Color? backgroundColor; final Color? foregroundColor; final Object? heroTag; final AsyncActionController? controller; final AsyncErrorBuilder? errorBuilder; final void Function(String message)? onError; final VoidCallback? onSuccess; final bool mini; const AsyncFab({ required this.onPressed, required this.icon, this.backgroundColor, this.foregroundColor, this.heroTag, this.controller, this.errorBuilder, this.onError, this.onSuccess, this.mini = false, super.key, }); @override Widget build(BuildContext context) => _AsyncMixin( onPressed: onPressed, controller: controller, errorBuilder: errorBuilder, onError: onError, onSuccess: onSuccess, builder: (context, busy, handler) { final fg = foregroundColor ?? Theme.of(context).colorScheme.onPrimary; return FloatingActionButton( heroTag: heroTag, backgroundColor: backgroundColor, foregroundColor: fg, mini: mini, onPressed: handler, child: busy ? AppProgressIndicator.small(color: fg) : Icon(icon), ); }, ); }