inputDialog static method
Future<String?>
inputDialog({
- required BuildContext context,
- required String title,
- String? defaultValue,
- String okButtonName = 'OK',
- String hintText = 'Type here',
- FormFieldValidator<
String> ? validator,
Implementation
static Future<String?> inputDialog({required BuildContext context, required String title,
String? defaultValue, String okButtonName = 'OK', String hintText = 'Type here',
FormFieldValidator<String>? validator
})
{
TextEditingController controller = TextEditingController();
GlobalKey<FormState> formKey = GlobalKey();
if (defaultValue.hasValue) {
controller.text = defaultValue!;
}
return showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text(title),
content: Form(
key: formKey,
child: TextFormField(
controller: controller,
validator: validator,
decoration: InputDecoration(
icon: const Icon(Icons.edit_note),
hintText: hintText
),
),
),
actions: [
TextButton(onPressed: () {
if (!formKey.currentState!.validate()) {
return;
}
context.navigator.pop(controller.text);
}, child: Text(okButtonName)),
TextButton(onPressed: () => context.navigator.pop(), child: const Text('Cancel'))
]
);
}
);
}