async_button

A button builder widget that handles asynchronous button operations, providing a convenient way to display a loading state while the async task is being performed.

Features

  • Asynchronous Handling: Run async functions when the button is pressed.
  • Loading State: Automatically disables the button and displays a loading indicator while the task is running.
  • Customizable: Fully customizable button appearance and behavior through a builder function.

Installation

Add the following line to your pubspec.yaml under dependencies:

dependencies:
  async_button: ^1.0.0

Then run:

flutter pub get

Usage

AsyncButton allows you to easily handle button press events that involve asynchronous operations (such as network requests). You can customize the button's appearance using the buttonBuilder function.

AsyncButton(
  onPressedAsync: () async {
    await Future.delayed(const Duration(seconds: 2)); // Async operation
  },
  buttonBuilder: (context, onPressed, working) {
    return ElevatedButton(
      onPressed: onPressed,
      child: working 
        ? CircularProgressIndicator() 
        : Text('Submit'),
    );
  },
)

Libraries

async_button_build