import 'package:customer/themes/responsive.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../controllers/theme_controller.dart'; import 'app_them_data.dart'; class CustomDialogBox extends StatelessWidget { final String title, descriptions, positiveString, negativeString; final Widget? img; final Function() positiveClick; final Function() negativeClick; const CustomDialogBox({ super.key, required this.title, required this.descriptions, required this.img, required this.positiveClick, required this.negativeClick, required this.positiveString, required this.negativeString, }); @override Widget build(BuildContext context) { final ThemeController themeController = Get.find(); return Obx(() { final isDark = themeController.isDark.value; return Dialog(shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)), elevation: 0, backgroundColor: Colors.transparent, child: contentBox(context, isDark)); }); } Widget contentBox(BuildContext context, bool isDark) { return Container( padding: const EdgeInsets.all(20), decoration: BoxDecoration(shape: BoxShape.rectangle, color: isDark ? AppThemeData.greyDark100 : AppThemeData.grey100, borderRadius: BorderRadius.circular(20)), child: Column( mainAxisSize: MainAxisSize.min, children: [ img ?? const SizedBox(), const SizedBox(height: 20), if (title.isNotEmpty) Text(title.tr(), style: AppThemeData.boldTextStyle(fontSize: 20, color: isDark ? AppThemeData.greyDark900 : AppThemeData.grey900)), const SizedBox(height: 5), if (descriptions.isNotEmpty) Text(descriptions.tr(), textAlign: TextAlign.center, style: AppThemeData.regularTextStyle(fontSize: 14, color: isDark ? AppThemeData.greyDark900 : AppThemeData.grey900)), const SizedBox(height: 20), Row( children: [ Expanded( child: InkWell( onTap: negativeClick, child: Container( width: Responsive.width(100, context), height: Responsive.height(5, context), decoration: BoxDecoration(color: isDark ? AppThemeData.greyDark900 : AppThemeData.grey900, borderRadius: BorderRadius.circular(200)), child: Center( child: Text(negativeString.tr(), textAlign: TextAlign.center, style: AppThemeData.mediumTextStyle(fontSize: 14, color: isDark ? AppThemeData.greyDark100 : AppThemeData.grey100)), ), ), ), ), const SizedBox(width: 10), Expanded( child: InkWell( onTap: positiveClick, child: Container( width: Responsive.width(100, context), height: Responsive.height(5, context), decoration: BoxDecoration(color: AppThemeData.success300, borderRadius: BorderRadius.circular(200)), child: Center(child: Text('Confirm'.tr(), textAlign: TextAlign.center, style: AppThemeData.mediumTextStyle(fontSize: 14, color: AppThemeData.grey100))), ), ), ), ], ), ], ), ); } }