import 'package:flutter/material.dart';

class UIDialogs {

  static Future<String?> showTextInput(BuildContext context, String title, String hintText) {
    var _textFieldController = TextEditingController();

    return showDialog(
      context: context,
      builder: (context) => AlertDialog(
        title: Text(title),
        content: TextField(
          autofocus: true,
          controller: _textFieldController,
          decoration: InputDecoration(hintText: hintText),
        ),
        actions: [
          TextButton(
            onPressed: () => Navigator.of(context).pop(),
            child: Text('Cancel'),
          ),
          TextButton(
            onPressed: () => Navigator.of(context).pop(_textFieldController.text),
            child: Text('OK'),
          ),
        ],
      ),
    );
  }

  static Future<bool> showConfirmDialog(BuildContext context, String title, {String? text, String? okText, String? cancelText}) {
    return showDialog<bool>(
      context: context,
      builder: (context) => AlertDialog(
        title: Text(title),
        content: (text != null) ? Text(text) : null,
        actions: [
          TextButton(
            onPressed: () => Navigator.of(context).pop(false),
            child: Text(cancelText ?? 'Cancel'),
          ),
          TextButton(
            onPressed: () => Navigator.of(context).pop(true),
            child: Text(okText ?? 'OK'),
          ),
        ],
      ),
    ).then((value) => value ?? false);
  }

}