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}) {
  title ??= "Cảnh Báo";
  lblOK ??= "Đồng Ý";
  if (isActionCancel && lblCancel == null) lblCancel = "Hủy";

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