| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- import 'package:flutter/material.dart';
- import 'package:flutter_screenutil/flutter_screenutil.dart';
- import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
- import 'package:location/resource/assets.gen.dart';
- import 'package:location/utils/common_style.dart';
- class CommonConfirmDialog {
- static const String _tag = "CommonConfirmDialog";
- static void show(
- {required Widget titleWidget,
- required Widget descWidget,
- required String confirmText,
- VoidCallback? cancelOnTap,
- required VoidCallback confirmOnTap,
- String tag = _tag}) {
- SmartDialog.show(
- tag: _tag,
- builder: (_) {
- return _CommonConfirmDialog(
- titleWidget: titleWidget,
- descWidget: descWidget,
- confirmText: confirmText,
- cancelOnTap: cancelOnTap,
- confirmOnTap: confirmOnTap);
- });
- }
- static void dismiss({String tag = _tag}) {
- SmartDialog.dismiss(tag: _tag);
- }
- }
- class _CommonConfirmDialog extends Dialog {
- final Widget titleWidget;
- final Widget descWidget;
- final String confirmText;
- final VoidCallback? cancelOnTap;
- final VoidCallback confirmOnTap;
- const _CommonConfirmDialog({
- required this.titleWidget,
- required this.descWidget,
- required this.confirmText,
- this.cancelOnTap,
- required this.confirmOnTap,
- });
- @override
- Widget build(BuildContext context) {
- return Container(
- width: 300.w,
- decoration: BoxDecoration(
- color: Colors.white,
- borderRadius: BorderRadius.circular(20.w),
- ),
- child: IntrinsicHeight(
- child: Stack(
- children: [
- Center(
- child: Column(
- children: [
- SizedBox(height: 27.w),
- titleWidget,
- SizedBox(height: 15.w),
- Container(
- margin: EdgeInsets.symmetric(horizontal: 28.w),
- child: descWidget,
- ),
- SizedBox(height: 31.w),
- GestureDetector(
- onTap: () {
- CommonConfirmDialog.dismiss();
- confirmOnTap();
- },
- child: Container(
- width: 229.w,
- height: 43.w,
- decoration: getPrimaryBtnDecoration(46.w),
- child: Center(
- child: Text(confirmText,
- style: TextStyle(
- fontSize: 14.sp, color: Colors.white)))),
- ),
- SizedBox(height: 20.w),
- ],
- ),
- ),
- Positioned(
- top: 12.w,
- right: 12.w,
- child: GestureDetector(
- onTap: () {
- CommonConfirmDialog.dismiss();
- cancelOnTap?.call();
- },
- child: Assets.images.iconDialogClose
- .image(width: 20.w, height: 20.w)))
- ],
- ),
- ),
- );
- }
- }
|