showDialogWithTextFormField static method
void
showDialogWithTextFormField({})
Implementation
static void showDialogWithTextFormField({
required String title,
required String hintText,
required TextEditingController controller,
required GlobalKey<FormState> formKey,
required bool isRequired,
required Function(String) onSubmit,
}) {
showCupertinoDialog(
context: Get.context!,
builder: (context) {
return Material(
type: MaterialType.transparency,
child: CupertinoAlertDialog(
title: GNBoldTextWidget(
title: title,
align: TextAlign.center,
fontsize: NumberConst.SUB_HEADER_FONT_SIZE - 1.sp,
fontcolor: Colors.black,
),
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
const SizedBox(height: 10),
Form(
key: formKey,
child: CustomTextFromFieldNew(
validator: (value) {
return value!.isEmpty || value.trim().isEmpty ? StringConst.FIELD_REQUIRED : null;
},
hintText: hintText,
hintStyle: TextStyle(
fontSize: NumberConst.REGULAR_FONT_SIZE,
fontFamily: FONT_STYLE_QUICK_BOLD,
),
isSuffixIcon: false,
isPrefixIcon: true,
isRequired: true,
margin: EdgeInsets.zero,
contentPadding: EdgeInsets.only(left: CommonSpace.COMMON_HORIZONTAL_SPACE_2W),
readOnly: false,
label: Row(
mainAxisSize: MainAxisSize.min,
children: [
GNMediumTextWidget(
title: hintText,
fontsize: regularFontSize,
),
isRequired
? GNMediumTextWidget(title: StringConst.ASTERISK, fontcolor: Colors.red, fontsize: NumberConst.HEADER_FONT_SIZE)
: Container()
],
),
bgColor: Colors.transparent,
controller: controller,
),
),
],
),
actions: <Widget>[
CupertinoDialogAction(
child: GNBoldTextWidget(
title: StringConst.CANCEL,
fontsize: NumberConst.SUB_HEADER_FONT_SIZE - 1.sp,
fontcolor: Colors.red,
),
onPressed: () {
controller.clear();
Navigator.of(context).pop();
},
),
CupertinoDialogAction(
isDefaultAction: true,
child: GNBoldTextWidget(
title: StringConst.SUBMIT,
fontsize: NumberConst.SUB_HEADER_FONT_SIZE - 1.sp,
fontcolor: Colors.blue,
),
onPressed: () {
if (isRequired && formKey.currentState!.validate()) {
Navigator.of(context).pop();
onSubmit(controller.text);
}
},
),
],
),
);
},
);
}