import 'package:flutter/material.dart'; import '../../../../shared/theme/app_theme.dart'; import '../../../../core/animations/page_transitions.dart'; import '../../../demo/presentation/pages/animations_demo_page.dart'; import '../../../debug/debug_api_test_page.dart'; // Imports des nouveaux widgets refactorisés import '../widgets/welcome/welcome_section_widget.dart'; import '../widgets/kpi/kpi_cards_widget.dart'; import '../widgets/actions/quick_actions_widget.dart'; import '../widgets/activities/recent_activities_widget.dart'; import '../widgets/charts/charts_analytics_widget.dart'; /// Page principale du tableau de bord UnionFlow /// /// Affiche une vue d'ensemble complète de l'association avec : /// - Section d'accueil personnalisée /// - Indicateurs clés de performance (KPI) /// - Actions rapides et gestion /// - Flux d'activités en temps réel /// - Analyses et tendances graphiques /// /// Architecture modulaire avec widgets réutilisables pour une /// maintenabilité optimale et une évolutivité facilitée. class DashboardPage extends StatelessWidget { const DashboardPage({super.key}); @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppTheme.backgroundLight, appBar: AppBar( title: const Text('Tableau de bord'), backgroundColor: AppTheme.primaryColor, elevation: 0, actions: [ IconButton( icon: const Icon(Icons.animation), onPressed: () { Navigator.of(context).push( PageTransitions.morphWithBlur(const AnimationsDemoPage()), ); }, tooltip: 'Démonstration des animations', ), IconButton( icon: const Icon(Icons.notifications_outlined), onPressed: () { // TODO: Implémenter la navigation vers les notifications }, ), IconButton( icon: const Icon(Icons.bug_report), onPressed: () { Navigator.of(context).push( PageTransitions.slideFromRight(const DebugApiTestPage()), ); }, tooltip: 'Debug API', ), IconButton( icon: const Icon(Icons.settings_outlined), onPressed: () { // TODO: Implémenter la navigation vers les paramètres }, ), ], ), body: SafeArea( child: SingleChildScrollView( padding: const EdgeInsets.all(16), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ // 1. ACCUEIL & CONTEXTE - Message de bienvenue personnalisé const WelcomeSectionWidget(), const SizedBox(height: 24), // 2. VISION GLOBALE - Indicateurs clés de performance (KPI) // Vue d'ensemble immédiate de la santé de l'association const KPICardsWidget(), const SizedBox(height: 24), // 3. ACTIONS PRIORITAIRES - Actions rapides et gestion // Accès direct aux tâches critiques quotidiennes const QuickActionsWidget(), const SizedBox(height: 24), // 4. SUIVI TEMPS RÉEL - Flux d'activités en direct // Monitoring des événements récents et alertes const RecentActivitiesWidget(), const SizedBox(height: 24), // 5. ANALYSES APPROFONDIES - Graphiques et tendances // Analyses détaillées pour la prise de décision stratégique const ChartsAnalyticsWidget(), ], ), ), ), ); } }