promptTextTui function

Future<String?> promptTextTui(
  1. Future<TuiPromptAnswer?> prompt(
    1. TuiPromptSpec
    ),
  2. String? initial, {
  3. required String header,
  4. required String question,
  5. bool secret = false,
})

Opens a TextPromptSpec through prompt and returns the trimmed text answer. Returns initial as-is when provided (no prompt needed), or null on cancel/unexpected result.

Implementation

Future<String?> promptTextTui(
  Future<TuiPromptAnswer?> Function(TuiPromptSpec) prompt,
  String? initial, {
  required String header,
  required String question,
  bool secret = false,
}) async {
  if (initial != null) return initial;
  final result = await prompt(
    TextPromptSpec(header: header, question: question, secret: secret),
  );
  if (result == null || result is! TextPromptAnswer) return null;
  return result.value.trim();
}