Skip to content

altive/awaitable_button

Repository files navigation

Awaitable Button

Features

Button with indicator display during processing to prevent consecutive hits.

Web demo for awaitable_button/example

You can try out the interactive buttons on the demo page below.

https://altive.github.io/awaitable_button/

Getting started

awaitable_button: any

Usage

import 'package:awaitable_button/awaitable_button.dart';

This package includes the following buttons. Use them according to your style.

  • AwaitableElevatedButton
  • AwaitableOutlinedButton
  • AwaitableTextButton
  • AwaitableFilledButton
  • AwaitableFilledTonalButton
@override
Widget build(BuildContext context) {
    return AwaitableElevatedButton<String>(
      // Required
      onPressed: () {
        // do something
      },
      // Optional
      whenComplete: (value) {
        // do something
      },
      // Optional
      onError: (exception, stackTrace) {
        // do something
      },
      // Optional
      buttonStyle: ElevatedButton.styleFrom(),
      // Optional
      indicator: CircularProgressIndicator(),
      // Optional
      indicatorColor: Colors.green,
      // Optional
      indicatorSize: Size.square(24),
      // Optional
      executingChild: const Text('Executing...'),
      // Required
      child: const Text('Button'),
    );
}

AwaitableOutlinedButton, AwaitableTextButton, AwaitableFilledButton and AwaitableFilledTonalButton is exactly the same as for AwaitableElevatedButton.

@override
Widget build(BuildContext context) {
    return AwaitableIconButton<String>(
      // Required
      onPressed: () {
        // do something
      },
      // Optional
      whenComplete: (value) {
        // do something
      },
      // Optional
      onError: (exception, stackTrace) {
        // do something
      },
      // Optional
      iconSize: 24,
      // Optional
      indicator: CircularProgressIndicator(),
      // Optional
      indicatorColor: Colors.green,
      // Optional
      indicatorSize: Size.square(24),
      // Optional
      executingIcon: const Icon(Icons.timer_sharp),
      // Required
      icon: const Icon(Icons.timer),
    );
}

About

A button that displays an indicator during asynchronous processing and allows callbacks to be executed after completion or exception catch.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

 
 
 

Contributors