import 'package:flutter/material.dart'; import 'package:flutter_animate/flutter_animate.dart'; import '../core/theme/app_theme.dart'; class EmptyState extends StatelessWidget { final IconData icon; final String title; final String? subtitle; final String? actionLabel; final VoidCallback? onAction; const EmptyState({ super.key, required this.icon, required this.title, this.subtitle, this.actionLabel, this.onAction, }); @override Widget build(BuildContext context) { return Center( child: Padding( padding: const EdgeInsets.all(32), child: Column( mainAxisSize: MainAxisSize.min, children: [ Icon(icon, size: 64, color: VoIdeaColors.muted), const SizedBox(height: 16), Text( title, style: Theme.of(context).textTheme.titleMedium?.copyWith( color: VoIdeaColors.muted, ), textAlign: TextAlign.center, ), if (subtitle != null) ...[ const SizedBox(height: 8), Text( subtitle!, style: Theme.of(context).textTheme.bodyMedium?.copyWith( color: VoIdeaColors.muted, ), textAlign: TextAlign.center, ), ], if (actionLabel != null && onAction != null) ...[ const SizedBox(height: 24), ElevatedButton( onPressed: onAction, child: Text(actionLabel!), ), ], ], ), ), ).animate().fadeIn(duration: 300.ms).slideY(begin: 0.2); } }