handleKeyEvent method

void handleKeyEvent(
  1. KeyEvent event
)

Handles option selection and navigation.

Implementation

void handleKeyEvent(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;
      }
    });
  } else if (event.key == 'right' || event.key == 'l' || event.key == 'tab') {
    setState(() {
      controller.focusedIndex =
          (controller.focusedIndex + 1) % controller.options.length;
    });
  } else if (event.key == ' ' ||
      event.key == 'space' ||
      event.key == 'enter' ||
      event.key == '\n' ||
      event.key == '\r') {
    setState(() {
      controller.selectedIndex = controller.focusedIndex;
    });
  }
}