import 'package:flutter/material.dart'; import 'dialog_standard_container_design_model.dart'; class DialogStandardContainer extends StatelessWidget { final Color? backgroundColor; final Image? closeImage; final bool? showCloseImage; final VoidCallback? closeCallback; final Widget child; const DialogStandardContainer({ Key? key, this.backgroundColor, this.closeImage, this.showCloseImage = false, this.closeCallback, required this.child, }) :super(key: key); DialogStandardDesignSpec get designSpec => DialogStandardDesignSpec.get(); DialogStandardContainerDesignSpec get contentSpec => designSpec.contentSpec; @override Widget build(BuildContext context) { return Center( child: Container( decoration: BoxDecoration( color: backgroundColor ?? Colors.white, borderRadius: contentSpec.cardRadius, ), width: contentSpec.measuredSize.width, child: showCloseImage == null || showCloseImage == false ? child : Stack( fit: StackFit.loose, alignment: AlignmentDirectional.topCenter, children: [ child, Positioned( left: contentSpec.closeIconInsets.left, top: contentSpec.closeIconInsets.top, child: GestureDetector( onTap: () { closeCallback?.call(); }, child: closeImage ?? Image( image: const AssetImage("assets/icons/ic_close_dark.png", package: "guru_ui"), width: contentSpec.closeIconSize.height, height: contentSpec.closeIconSize.height, ))) ], ), )); } }