import 'package:flutter/material.dart'; /// Error dialog widget /// /// Displays an error message with an icon and optional action button class ErrorDialog extends StatelessWidget { final String title; final String message; final String? actionText; final VoidCallback? onAction; const ErrorDialog({ super.key, required this.title, required this.message, this.actionText, this.onAction, }); @override Widget build(BuildContext context) { return AlertDialog( icon: Icon( Icons.error_outline, size: 48, color: Theme.of(context).colorScheme.error, ), title: Text(title), content: Text(message), actions: [ if (actionText != null && onAction != null) TextButton( onPressed: () { Navigator.of(context).pop(); onAction!(); }, child: Text(actionText!), ), TextButton( onPressed: () => Navigator.of(context).pop(), child: const Text('关闭'), ), ], ); } /// Show error dialog static Future show( BuildContext context, { required String title, required String message, String? actionText, VoidCallback? onAction, }) { return showDialog( context: context, builder: (context) => ErrorDialog( title: title, message: message, actionText: actionText, onAction: onAction, ), ); } }