handleInput method

  1. @override
bool handleInput(
  1. String input
)
override

Handle input from the user during the interactive session Returns true if input was handled, false if session should exit

Implementation

@override
bool handleInput(String input) {
  if (!_isActive) return false;

  input = input.trim();

  if (input.toLowerCase() == 'q' || input.toLowerCase() == 'quit') {
    _outputStream.writeln(green.wrap("Exiting interactive mode"));
    exit();
    return false;
  }

  if (_waitingForAction) {
    return _handleActionInput(input);
  }

  if (input.toLowerCase() == 'l' || input.toLowerCase() == 'list') {
    _showKeyList();
    return true;
  }

  final index = int.tryParse(input);
  if (index == null || index < 1 || index > _keys.length) {
    _outputStream.writeln(red.wrap("Invalid selection. Enter a number 1-${_keys.length}, 'l' to relist, or 'q' to quit."));
    return true;
  }

  final selectedKey = _keys[index - 1];
  _outputStream.writeln(green.wrap("Selected: ${selectedKey.toString()}"));
  _outputStream.writeln(cyan.wrap("Enter 'v' to view or 'd' to delete:"));

  _waitingForAction = true;
  _selectedKeyIndex = index - 1;

  return true;
}