onKey method

  1. @override
bool onKey(
  1. KeyEvent event,
  2. RenderContext ctx
)
override

Implementation

@override
bool onKey(KeyEvent event, RenderContext ctx) {
  if (rows.isEmpty) return false;
  if (event.key == NamedKey.arrowDown || event.char == 'j') {
    state.selectedRow = (state.selectedRow + 1).clamp(0, rows.length - 1);
    return true;
  }
  if (event.key == NamedKey.arrowUp || event.char == 'k') {
    state.selectedRow = (state.selectedRow - 1).clamp(0, rows.length - 1);
    return true;
  }
  if (event.key == NamedKey.home) {
    state.selectedRow = 0;
    return true;
  }
  if (event.key == NamedKey.end) {
    state.selectedRow = rows.length - 1;
    return true;
  }
  return false;
}