updateKeybindings method

void updateKeybindings()

Update keybindings based on state.

Implementation

void updateKeybindings() {
  switch (_filterState) {
    case FilterState.filtering:
      keyMap.cursorUp.disable();
      keyMap.cursorDown.disable();
      keyMap.nextPage.disable();
      keyMap.prevPage.disable();
      keyMap.goToStart.disable();
      keyMap.goToEnd.disable();
      keyMap.filter.disable();
      keyMap.clearFilter.disable();
      keyMap.cancelWhileFiltering.enable();
      keyMap.acceptWhileFiltering.enabled = filterInput.value.isNotEmpty;
      keyMap.quit.disable();
      keyMap.showFullHelp.disable();
      keyMap.closeFullHelp.disable();
      break;

    default:
      final hasItems = _items.isNotEmpty;
      keyMap.cursorUp.enabled = hasItems;
      keyMap.cursorDown.enabled = hasItems;

      final hasPages = paginator.totalPages > 1;
      keyMap.nextPage.enabled = hasPages;
      keyMap.prevPage.enabled = hasPages;

      keyMap.goToStart.enabled = hasItems;
      keyMap.goToEnd.enabled = hasItems;

      keyMap.filter.enabled = filteringEnabled && hasItems;
      keyMap.clearFilter.enabled = _filterState == FilterState.filterApplied;
      keyMap.cancelWhileFiltering.disable();
      keyMap.acceptWhileFiltering.disable();
      keyMap.quit.enabled = !_disableQuitKeybindings;
      keyMap.showFullHelp.enable();
      keyMap.closeFullHelp.enable();
      break;
  }
}