confirm method

Future<bool?> confirm(
  1. String message, {
  2. bool? defaultValue,
})

Asks a yes/no question.

Returns null when cancelled. Empty input uses defaultValue when set.

Implementation

Future<bool?> confirm(String message, {bool? defaultValue}) async {
  while (true) {
    final answer = await text(_confirmMessage(message, defaultValue));
    if (answer == null) return null;

    final normalized = answer.trim().toLowerCase();
    if (normalized.isEmpty && defaultValue != null) {
      return defaultValue;
    }
    if (normalized == 'y' || normalized == 'yes') return true;
    if (normalized == 'n' || normalized == 'no') return false;

    message = 'Please answer yes or no';
  }
}