easyDialog<T> method

Future<T?> easyDialog<T>({
  1. EdgeInsets? padding,
  2. EdgeInsets? contentPadding,
  3. Color backgroundColor = Colors.white,
  4. Color barrierColor = Colors.black54,
  5. List<Widget> children = const [],
  6. bool barrierDismissible = true,
  7. bool useSafeArea = true,
  8. CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center,
  9. MainAxisAlignment mainAxisAlignment = MainAxisAlignment.start,
  10. Widget? closeIcon,
  11. bool closeIconVisible = true,
})

default padding is (context.w * 0.16).padSH default content padding is [10, 10].padSHV On tap to close dialog is default on closeIcon

Implementation

Future<T?> easyDialog<T>({
  EdgeInsets? padding,
  EdgeInsets? contentPadding,
  Color backgroundColor = Colors.white,
  Color barrierColor = Colors.black54,
  List<Widget> children = const [],
  bool barrierDismissible = true,
  bool useSafeArea = true,
  CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center,
  MainAxisAlignment mainAxisAlignment = MainAxisAlignment.start,
  Widget? closeIcon,
  bool closeIconVisible = true,
}) {
  return showDialog<T>(
    context: context,
    barrierColor: barrierColor,
    barrierDismissible: barrierDismissible,
    useSafeArea: useSafeArea,
    builder: (context) {
      return Dialog(
        insetPadding: padding ?? (context.w * 0.16).padSH,
        elevation: 0,
        backgroundColor: backgroundColor,
        shape: RoundedRectangleBorder(
          borderRadius: 4.cBorderRadius,
        ),
        child: Column(
          crossAxisAlignment: crossAxisAlignment,
          mainAxisAlignment: mainAxisAlignment,
          mainAxisSize: MainAxisSize.min,
          children: [
            if (closeIconVisible) ...[
              MouseRegion(
                cursor: SystemMouseCursors.click,
                child: (closeIcon ??
                        Icon(
                          Icons.close,
                          color: Colors.grey[400],
                          size: 16.hWise,
                        ))
                    .onTap(() => back)
                    .alignTR,
              ),
              5.hGap,
            ],
            ...children,
          ],
        ).padd(contentPadding ?? [10.wWise, 10.hWise].padSHV),
      );
    },
  );
}