import 'package:flutter/material.dart'; import 'package:flux/theme/theme.dart'; class DashboardView extends StatelessWidget { const DashboardView({super.key}); @override Widget build(BuildContext context) { // Iniezione del Bloc per la creazione di operazioni (da implementare) return /* BlocProvider( create: (context) => OperazioneBloc(), // Implementa la logica nel Bloc child: */ Scaffold( appBar: AppBar(title: Text('FLUX')), body: SingleChildScrollView( padding: EdgeInsets.all(16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ _WelcomeHeader(), SizedBox(height: 24), _QuickActions(), // Contiene "Nuova Operazione" SizedBox(height: 24), _RecentActivityPreview(), ], ), ), ); // ); } } class _WelcomeHeader extends StatelessWidget { const _WelcomeHeader(); @override Widget build(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text('Benvenuto,', style: Theme.of(context).textTheme.bodyMedium), Text( 'Negozio Piacenza Centro', style: Theme.of(context).textTheme.headlineMedium, ), ], ); } } class _QuickActions extends StatelessWidget { const _QuickActions(); @override Widget build(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( 'AZIONI RAPIDE', style: Theme.of( context, ).textTheme.titleSmall?.copyWith(color: FluxColors.accentTurquoise), ), const SizedBox(height: 12), ElevatedButton.icon( onPressed: () { // Emetti evento al Bloc: BlocProvider.of(context).add(IniziaNuovaOperazione()); ScaffoldMessenger.of(context).showSnackBar( const SnackBar(content: Text('Avvio Nuova Operazione...')), ); }, icon: const Icon(Icons.add), label: const Text('NUOVA OPERAZIONE TELCO'), style: ElevatedButton.styleFrom( minimumSize: const Size(double.infinity, 50), ), ), ], ); } } class _RecentActivityPreview extends StatelessWidget { const _RecentActivityPreview(); @override Widget build(BuildContext context) { return Card( child: Padding( padding: const EdgeInsets.all(16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text( 'Attività Recenti', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), ), Divider(color: Theme.of(context).textTheme.bodyMedium?.color), // Sostituire con BlocBuilder _activityTile('Nuova Linea', 'Mario Rossi', '10 min fa', context), _activityTile('Assistenza Tech', 'iPhone 13', '45 min fa', context), ], ), ), ); } Widget _activityTile( String title, String subtitle, String time, BuildContext context, ) { return ListTile( contentPadding: EdgeInsets.zero, leading: const Icon(Icons.history, color: FluxColors.accentTurquoise), title: Text(title, style: Theme.of(context).textTheme.titleLarge), subtitle: Text(subtitle), trailing: Text(time, style: Theme.of(context).textTheme.bodyMedium), ); } }