onActionPressed property

void Function()? get onActionPressed

Implementation

void Function()? get onActionPressed => !enabled ||
        _currentState == FDBState.disabled ||
        _currentState == FDBState.running && !abortCanBePressed && isAbortable
    ? null
    : () async {
        if (debounceDuration != Duration.zero) {
          abortCanBePressed = false;
        } else {
          abortCanBePressed = true;
        }
        newState = FDBState.running;
        future = onPressed().then((T value) {
          if (_currentState == FDBState.running) {
            newState = FDBState.success;
            onSuccess?.call(value);
          }
        }).onError((error, stackTrace) {
          newState = FDBState.error;
          onError?.call(error, stackTrace);
        });

        if (timeout != null) {
          future?.timeout(timeout!, onTimeout: () {
            newState = FDBState.error;

            onError?.call(
                TimeoutException('Request timed out', timeout), null);
          });
        }
        if (debounceDuration != Duration.zero) {
          Future.delayed(debounceDuration).then((value) {
            abortCanBePressed = true;
            // ignore: invalid_use_of_protected_member
            if (obj.mounted) obj.setState(() {});
          });
        }
      };