inputDialog static method

Future inputDialog({
  1. required BuildContext context,
  2. required String title,
  3. String? defaultValue,
  4. String okButtonName = 'OK',
  5. String hintText = 'Type here',
})

Implementation

static Future<dynamic> inputDialog({required BuildContext context, required String title,
  String? defaultValue, String okButtonName = 'OK', String hintText = 'Type here'})
{
  TextEditingController controller = TextEditingController();

  if (defaultValue.hasValue) {
    controller.text = defaultValue!;
  }

  return showDialog(
    context: context,
    builder: (context) {
      return AlertDialog(
        title: Text(title),
        content: TextField(
          controller: controller,
          decoration: InputDecoration(
              icon: const Icon(Icons.edit_note),
              hintText: hintText
          ),
        ),
        actions: [
          TextButton(onPressed: () {
            context.navigator.pop(controller.text);
          }, child: Text(okButtonName)),
          TextButton(onPressed: () => context.navigator.pop(), child: Text('Cancel'))
        ],
      );
    },
  );

}