handleKeyEvent method

  1. @override
bool handleKeyEvent(
  1. KeyEvent event
)
override

Handles option selection and navigation.

Implementation

@override
bool handleKeyEvent(term.KeyEvent event) {
  final controller = widget.controller;
  if (event.key == 'left' || event.key == 'h' || event.key == 'backtab') {
    setState(() {
      controller.focusedIndex =
          (controller.focusedIndex - 1) % controller.options.length;
      if (controller.focusedIndex < 0) {
        controller.focusedIndex += controller.options.length;
      }
    });
    return true;
  } else if (event.key == 'right' || event.key == 'l' || event.key == 'tab') {
    setState(() {
      controller.focusedIndex =
          (controller.focusedIndex + 1) % controller.options.length;
    });
    return true;
  } else if (event.key == ' ' ||
      event.key == 'space' ||
      event.key == 'enter' ||
      event.key == '\n' ||
      event.key == '\r') {
    setState(() {
      controller.selectedIndex = controller.focusedIndex;
    });
    return true;
  }
  return false;
}