showCustomDialog static method

Future<bool?> showCustomDialog(
  1. dynamic context,
  2. dynamic message, {
  3. dynamic title,
  4. dynamic isActionCancel = false,
  5. dynamic lblOK,
  6. dynamic lblCancel,
  7. dynamic alignMessageText = TextAlign.center,
})

Implementation

static Future<bool?> showCustomDialog(context, message, {title, isActionCancel = false,
  lblOK, lblCancel, alignMessageText = TextAlign.center}) {
  final LanguageKey languageKey = LanguageKey();
  title ??= MultiLanguage.get(languageKey.ttlWarning);
  lblOK ??= MultiLanguage.get(languageKey.btnOK);
  if (isActionCancel && lblCancel == null) lblCancel = MultiLanguage.get(languageKey.btnCancel);

  return showDialog(barrierDismissible: false, context: context,
      builder: (context) => Dialog(shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.all(Radius.circular(30.sp))),
          child: Column(mainAxisSize: MainAxisSize.min, children: [
            Container(width: 1.sw, decoration: BoxDecoration(color: const Color(0xFFF2F2F2),
                borderRadius: BorderRadius.only(
                    topLeft: Radius.circular(30.sp), topRight: Radius.circular(30.sp))),
                child: Padding(padding: EdgeInsets.all(40.sp), child: Stack(children: [
                  Align(alignment: Alignment.topRight, child: GestureDetector(
                      onTap: () => Navigator.of(context).pop(null),
                      child: const Icon(Icons.close, color: Color(0xFF626262)))),
                  Center(child: LabelCustom(title, color: const Color(0xFF191919), size: 60.sp))
                ]))),
            Flexible(child: SingleChildScrollView(child: Padding(
                padding: EdgeInsets.fromLTRB(20.sp, 40.sp, 20.sp, 40.sp),
                child: LabelCustom(message, align: alignMessageText,
                    color: const Color(0xFF1F1F1F), weight: FontWeight.normal)))),
            Row(crossAxisAlignment: CrossAxisAlignment.center,
                mainAxisAlignment: MainAxisAlignment.center, children: [
                  if (isActionCancel) Padding(padding: EdgeInsets.only(right: 40.sp),
                      child: ElevatedButton(style: ElevatedButton.styleFrom(backgroundColor: const Color(0xFFB7B7B7)),
                      child: LabelCustom(lblCancel), onPressed: () => Navigator.of(context).pop(false))),
                  ElevatedButton(style: ElevatedButton.styleFrom(backgroundColor: StyleCustom.buttonColor),
                      child: LabelCustom(lblOK), onPressed: () => Navigator.of(context).pop(true))
                ]),
            SizedBox(height: 40.sp)
          ])));
}