import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; class AppErrorWidget extends StatelessWidget { const AppErrorWidget({ required this.message, this.onRetry, this.icon, super.key, }); final String message; final VoidCallback? onRetry; final IconData? icon; @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( icon ?? Icons.error_outline, size: 64, color: theme.colorScheme.error, ), const Gap(16), Text( message, style: theme.textTheme.bodyLarge, textAlign: TextAlign.center, ), if (onRetry != null) ...[ const Gap(16), FilledButton.tonal( onPressed: onRetry, child: const Text('다시 시도'), ), ], ], ), ), ); } }