import 'package:flutter/material.dart'; import '../../core/network/api_exception.dart'; class ErrorDisplay extends StatelessWidget { final Object error; final VoidCallback? onRetry; const ErrorDisplay({super.key, required this.error, this.onRetry}); String get _message { if (error is ApiException) return (error as ApiException).message; return error.toString(); } @override Widget build(BuildContext context) { final theme = Theme.of(context); return Center( child: Padding( padding: const EdgeInsets.all(24), child: Column( mainAxisSize: MainAxisSize.min, children: [ Icon(Icons.error_outline, size: 48, color: theme.colorScheme.error), const SizedBox(height: 16), Text( 'Fehler', style: theme.textTheme.titleMedium, ), const SizedBox(height: 8), Text( _message, style: theme.textTheme.bodyMedium, textAlign: TextAlign.center, ), if (onRetry != null) ...[ const SizedBox(height: 16), ElevatedButton.icon( onPressed: onRetry, icon: const Icon(Icons.refresh), label: const Text('Erneut versuchen'), ), ], ], ), ), ); } }