searchableList static method

KeyBindings searchableList({
  1. required void onUp(),
  2. required void onDown(),
  3. required void onSearchToggle(),
  4. required TextInputBuffer searchBuffer,
  5. required bool isSearchEnabled(),
  6. void onSearchInput()?,
  7. void onToggle()?,
  8. bool hasMultiSelect = false,
  9. KeyActionResult onConfirm()?,
  10. void onCancel()?,
})

Creates searchable list bindings: navigation + search toggle + conditional text input + prompt.

Implementation

static KeyBindings searchableList({
  required void Function() onUp,
  required void Function() onDown,
  required void Function() onSearchToggle,
  required TextInputBuffer searchBuffer,
  required bool Function() isSearchEnabled,
  void Function()? onSearchInput,
  void Function()? onToggle,
  bool hasMultiSelect = false,
  KeyActionResult Function()? onConfirm,
  void Function()? onCancel,
}) {
  var bindings = verticalNavigation(onUp: onUp, onDown: onDown) +
      searchToggle(onToggle: onSearchToggle) +
      conditionalTextInput(
        buffer: searchBuffer,
        isEnabled: isSearchEnabled,
        onInput: onSearchInput,
      );

  if (hasMultiSelect && onToggle != null) {
    bindings = bindings +
        conditionalToggle(
          isEnabled: () => true,
          onToggle: onToggle,
        );
  }

  return bindings +
      confirm(onConfirm: onConfirm) +
      cancel(onCancel: onCancel);
}