choose method
Requests a choice from the user after a prompt.
final choice = console.choose(
'Choose a number:'.consoleText(),
items: [
ConsoleChooseItem('One'.consoleText(), 1),
ConsoleChooseItem('Two'.consoleText(), 2),
ConsoleChooseItem('Three'.consoleText(), 3),
],
);
console.plain('You chose: $choice');
The above code outputs:
Choose a number:
1) One
2) Two
3) Three
> 2
You chose: 2
Implementation
T choose(ConsoleText prompt, {required List<ConsoleChooseItem<T>> items}) {
output(prompt, newline: true);
for (var i = 0; i < items.length; i++) {
final item = items[i];
output(ConsoleText('${i + 1}) ') + item.text, newline: true);
}
output(ConsoleText('> '));
while (true) {
final input = this.input(secure: false);
final index = int.tryParse(input);
if (index != null && index > 0 && index <= items.length) {
return items[index - 1].value;
}
output(
ConsoleText('Please enter a number between 1 and ${items.length} > '),
newline: false,
);
}
}