showInputDialog static method

Future<String?> showInputDialog({
  1. required String title,
  2. required String hintText,
  3. String initialValue = '',
  4. String confirmText = 'OK',
  5. String cancelText = 'Cancel',
})

Implementation

static Future<String?> showInputDialog({
  required String title,
  required String hintText,
  String initialValue = '',
  String confirmText = 'OK',
  String cancelText = 'Cancel',
}) async {
  final ctx = context;
  if (ctx == null) return null;

  String input = initialValue;

  final result = await showDialog<String>(
    context: ctx,
    builder: (_) => AlertDialog(
      title: Text(title),
      content: TextField(
        onChanged: (value) => input = value,
        decoration: InputDecoration(hintText: hintText),
      ),
      actions: [
        TextButton(
          child: Text(cancelText),
          onPressed: () => Navigator.of(ctx).pop(),
        ),
        TextButton(
          child: Text(confirmText),
          onPressed: () => Navigator.of(ctx).pop(input),
        ),
      ],
    ),
  );

  return result;
}