async_button_hook
library
Classes
-
AsyncButton
-
A
builder
that wraps a button providing disabled, loading, success and
error states while retaining almost full access to the original Button's
API. This is useful for any long running operations and helps better
improve UX.
-
ButtonState
-
This union class represents the state of the button in either a
Idling
,
Loading, Success or Error state. This can be considered a enum with extra
utilities for ease of use.
-
Error
-
-
Idle
-
-
Loading
-
-
Success
-
Functions
-
useAsyncButton({required Widget child, required AsyncCallback? onPressed, Widget? loadingWidget, Widget? successWidget, Widget? errorWidget, bool showSuccess = true, bool showError = true, EdgeInsets? errorPadding, EdgeInsets? successPadding, ButtonState buttonState = const ButtonState.idle(), Duration duration = const Duration(milliseconds: 250), Duration reverseDuration = const Duration(milliseconds: 250), bool disabled = false, Duration successDuration = const Duration(seconds: 1), Duration errorDuration = const Duration(seconds: 1), AnimatedSwitcherTransitionBuilder loadingTransitionBuilder = AnimatedSwitcher.defaultTransitionBuilder, AnimatedSwitcherTransitionBuilder idleTransitionBuilder = AnimatedSwitcher.defaultTransitionBuilder, AnimatedSwitcherTransitionBuilder successTransitionBuilder = AnimatedSwitcher.defaultTransitionBuilder, AnimatedSwitcherTransitionBuilder errorTransitionBuilder = AnimatedSwitcher.defaultTransitionBuilder, Curve idleSwitchInCurve = Curves.linear, Curve loadingSwitchInCurve = Curves.linear, Curve successSwitchInCurve = Curves.linear, Curve errorSwitchInCurve = Curves.linear, Curve idleSwitchOutCurve = Curves.linear, Curve loadingSwitchOutCurve = Curves.linear, Curve successSwitchOutCurve = Curves.linear, Curve errorSwitchOutCurve = Curves.linear, Curve sizeCurve = Curves.linear, Clip sizeClipBehavior = Clip.hardEdge, Alignment sizeAlignment = Alignment.center, bool animateSize = true})
→ AsyncButtonResult
-
A button that can be used to perform an asynchronous operation.