import 'package:flutter/material.dart'; import '../../../../version.g.dart'; /// Front Hall - estate overview and quick access. class FrontHallPage extends StatelessWidget { const FrontHallPage({super.key}); @override Widget build(BuildContext context) { final colorScheme = Theme.of(context).colorScheme; return Scaffold( appBar: AppBar( title: const Text('Front Hall'), actions: [ IconButton( icon: const Icon(Icons.refresh), onPressed: () { // TODO: Refresh data }, ), ], ), body: ListView( padding: const EdgeInsets.all(16), children: [ // Welcome card Card( child: Padding( padding: const EdgeInsets.all(24), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ Icon( Icons.waving_hand, size: 32, color: colorScheme.primary, ), const SizedBox(width: 12), Flexible( child: Text( 'Welcome to Tatlock', style: Theme.of(context).textTheme.headlineSmall, ), ), ], ), const SizedBox(height: 12), Text( 'Your homelab dashboard is ready. More features coming soon.', style: Theme.of(context).textTheme.bodyLarge?.copyWith( color: colorScheme.onSurfaceVariant, ), ), ], ), ), ), const SizedBox(height: 16), // Quick stats placeholder Wrap( spacing: 12, runSpacing: 12, children: [ SizedBox( width: 160, child: _StatCard( icon: Icons.memory, label: 'CPU', value: '--', color: colorScheme.primary, ), ), SizedBox( width: 160, child: _StatCard( icon: Icons.storage, label: 'Memory', value: '--', color: colorScheme.secondary, ), ), SizedBox( width: 160, child: _StatCard( icon: Icons.dns, label: 'Containers', value: '--', color: colorScheme.tertiary, ), ), ], ), const SizedBox(height: 24), // Version info Center( child: Text( '${AppVersion.name} v${AppVersion.fullVersion}', style: Theme.of(context).textTheme.bodySmall?.copyWith( color: colorScheme.outline, ), ), ), ], ), ); } } class _StatCard extends StatelessWidget { const _StatCard({ required this.icon, required this.label, required this.value, required this.color, }); final IconData icon; final String label; final String value; final Color color; @override Widget build(BuildContext context) { return Card( child: Padding( padding: const EdgeInsets.all(16), child: Column( children: [ Icon(icon, size: 32, color: color), const SizedBox(height: 8), Text( value, style: Theme.of(context).textTheme.headlineMedium?.copyWith( fontWeight: FontWeight.bold, ), ), const SizedBox(height: 4), Text( label, style: Theme.of(context).textTheme.bodySmall?.copyWith( color: Theme.of(context).colorScheme.outline, ), ), ], ), ), ); } }