import 'package:flutter/material.dart'; import '../theme/theme_x.dart'; /// Centered "nothing here yet" placeholder — no services discovered, no /// connections saved, no update history. An optional action gives the user /// the next step rather than a dead end. class EmptyState extends StatelessWidget { const EmptyState({ super.key, required this.icon, required this.title, this.message, this.actionLabel, this.onAction, }); final IconData icon; final String title; final String? message; final String? actionLabel; final VoidCallback? onAction; @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.symmetric(vertical: 40, horizontal: 24), child: Column( mainAxisSize: MainAxisSize.min, children: [ Icon(icon, size: 30, color: context.colors.outline), const SizedBox(height: 12), Text(title, style: context.text.titleMedium, textAlign: TextAlign.center), if (message != null) ...[ const SizedBox(height: 4), Text( message!, style: context.text.bodySmall, textAlign: TextAlign.center, ), ], if (actionLabel != null && onAction != null) ...[ const SizedBox(height: 16), OutlinedButton(onPressed: onAction, child: Text(actionLabel!)), ], ], ), ); } }