import 'package:flutter/material.dart'; /// Confirmation dialog widget /// /// Displays a confirmation dialog with customizable title, content, and buttons class ConfirmDialog extends StatelessWidget { final String title; final String content; final String confirmText; final String cancelText; final bool isDangerous; const ConfirmDialog({ super.key, required this.title, required this.content, this.confirmText = '确认', this.cancelText = '取消', this.isDangerous = false, }); @override Widget build(BuildContext context) { return AlertDialog( title: Text(title), content: Text(content), actions: [ TextButton( onPressed: () => Navigator.of(context).pop(false), child: Text(cancelText), ), TextButton( onPressed: () => Navigator.of(context).pop(true), style: isDangerous ? TextButton.styleFrom( foregroundColor: Theme.of(context).colorScheme.error, ) : null, child: Text(confirmText), ), ], ); } /// Show confirmation dialog static Future show( BuildContext context, { required String title, required String content, String confirmText = '确认', String cancelText = '取消', bool isDangerous = false, }) async { final result = await showDialog( context: context, builder: (context) => ConfirmDialog( title: title, content: content, confirmText: confirmText, cancelText: cancelText, isDangerous: isDangerous, ), ); return result ?? false; } }