Authentification stable - WIP

This commit is contained in:
DahoudG
2025-09-19 12:35:46 +00:00
parent 63fe107f98
commit 098894bdc1
383 changed files with 13072 additions and 93334 deletions

View File

@@ -0,0 +1,178 @@
/// Dashboard Page Stable - Redirecteur vers Dashboard Adaptatif
/// Redirige automatiquement vers le nouveau système de dashboard adaptatif
library dashboard_page_stable;
import 'package:flutter/material.dart';
import 'adaptive_dashboard_page.dart';
/// Page Dashboard Stable - Maintenant un redirecteur
///
/// Cette page redirige automatiquement vers le nouveau système
/// de dashboard adaptatif basé sur les rôles utilisateurs.
class DashboardPageStable extends StatefulWidget {
const DashboardPageStable({super.key});
@override
State<DashboardPageStable> createState() => _DashboardPageStableState();
}
class _DashboardPageStableState extends State<DashboardPageStable> {
final GlobalKey<RefreshIndicatorState> _refreshKey = GlobalKey<RefreshIndicatorState>();
bool _isLoading = false;
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: ColorTokens.surface,
appBar: AppBar(
title: Text(
'UnionFlow Dashboard',
style: TypographyTokens.headlineSmall.copyWith(
fontWeight: FontWeight.w700,
color: ColorTokens.onSurface,
),
),
backgroundColor: ColorTokens.surface,
elevation: 0,
actions: [
IconButton(
onPressed: () => _showNotifications(),
icon: const Icon(Icons.notifications_outlined),
tooltip: 'Notifications',
),
IconButton(
onPressed: () => _showSettings(),
icon: const Icon(Icons.settings_outlined),
tooltip: 'Paramètres',
),
],
),
drawer: DashboardDrawer(
onNavigate: _onNavigate,
onLogout: _onLogout,
),
body: RefreshIndicator(
key: _refreshKey,
onRefresh: _refreshData,
child: SingleChildScrollView(
padding: const EdgeInsets.all(SpacingTokens.md),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Message de bienvenue
DashboardWelcomeSection(
title: 'Bienvenue sur UnionFlow',
subtitle: 'Votre plateforme de gestion d\'union familiale',
),
const SizedBox(height: SpacingTokens.xl),
// Statistiques
DashboardStatsGrid(
onStatTap: _onStatTap,
),
const SizedBox(height: SpacingTokens.xl),
// Actions rapides
DashboardQuickActionsGrid(
onActionTap: _onActionTap,
),
const SizedBox(height: SpacingTokens.xl),
// Activité récente
DashboardRecentActivitySection(
onActivityTap: _onActivityTap,
),
const SizedBox(height: SpacingTokens.xl),
// Insights
DashboardInsightsSection(
onMetricTap: _onMetricTap,
),
],
),
),
),
);
}
// === CALLBACKS POUR LES WIDGETS MODULAIRES ===
/// Callback pour les actions sur les statistiques
void _onStatTap(String statType) {
debugPrint('Statistique tapée: $statType');
// TODO: Implémenter la navigation vers les détails
}
/// Callback pour les actions rapides
void _onActionTap(String actionType) {
debugPrint('Action rapide: $actionType');
// TODO: Implémenter les actions spécifiques
}
/// Callback pour les activités récentes
void _onActivityTap(String activityId) {
debugPrint('Activité tapée: $activityId');
// TODO: Implémenter la navigation vers les détails
}
/// Callback pour les métriques d'insights
void _onMetricTap(String metricType) {
debugPrint('Métrique tapée: $metricType');
// TODO: Implémenter la navigation vers les rapports
}
/// Callback pour la navigation du drawer
void _onNavigate(String route) {
Navigator.of(context).pop(); // Fermer le drawer
debugPrint('Navigation vers: $route');
// TODO: Implémenter la navigation
}
/// Callback pour la déconnexion
void _onLogout() {
Navigator.of(context).pop(); // Fermer le drawer
debugPrint('Déconnexion demandée');
// TODO: Implémenter la déconnexion
}
// === MÉTHODES UTILITAIRES ===
/// Actualise les données du dashboard
Future<void> _refreshData() async {
setState(() {
_isLoading = true;
});
// Simulation d'un appel API
await Future.delayed(const Duration(seconds: 1));
setState(() {
_isLoading = false;
});
if (mounted) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('Données actualisées'),
duration: Duration(seconds: 2),
),
);
}
}
/// Affiche les notifications
void _showNotifications() {
debugPrint('Afficher les notifications');
// TODO: Implémenter l'affichage des notifications
}
/// Affiche les paramètres
void _showSettings() {
debugPrint('Afficher les paramètres');
// TODO: Implémenter l'affichage des paramètres
}
}