Restore UI functionalities and clean up dependencies

This commit is contained in:
streaper2
2026-05-08 08:32:58 +02:00
parent 8946955f76
commit 0895b7d5bc
26751 changed files with 4207476 additions and 158 deletions

View File

@@ -6,6 +6,8 @@ import '../../data/repositories/session_repository.dart';
import '../capture/capture_screen.dart';
import '../history/history_screen.dart';
import '../statistics/statistics_screen.dart';
import 'package:fl_chart/fl_chart.dart';
import '../../data/models/session.dart';
import 'widgets/stats_card.dart';
class HomeScreen extends StatefulWidget {
@@ -17,6 +19,7 @@ class HomeScreen extends StatefulWidget {
class _HomeScreenState extends State<HomeScreen> {
Map<String, dynamic>? _stats;
List<Session> _recentSessions = [];
bool _isLoading = true;
@override
@@ -28,9 +31,12 @@ class _HomeScreenState extends State<HomeScreen> {
Future<void> _loadStats() async {
final repository = context.read<SessionRepository>();
final stats = await repository.getStatistics();
final sessions = await repository.getAllSessions();
if (mounted) {
setState(() {
_stats = stats;
_recentSessions = sessions;
_isLoading = false;
});
}
@@ -181,11 +187,12 @@ class _HomeScreenState extends State<HomeScreen> {
],
),
// --- MODIFICATION 2 : AJOUT DU GRAPHIQUE AU MILIEU ---
// --- MODIFICATION 2 : GRAPHIQUE RÉEL (Restauré) ---
Padding(
padding: const EdgeInsets.symmetric(vertical: 16.0),
child: Container(
height: 150,
padding: const EdgeInsets.all(16),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(AppConstants.borderRadius),
@@ -197,9 +204,20 @@ class _HomeScreenState extends State<HomeScreen> {
),
],
),
child: const Center(
child: Icon(Icons.show_chart, size: 50, color: Colors.grey),
),
child: _recentSessions.length < 2
? const Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(Icons.show_chart, size: 40, color: Colors.grey),
Text(
'Pas assez de données',
style: TextStyle(color: Colors.grey, fontSize: 12),
),
],
),
)
: _buildHomeTrendChart(),
),
),
@@ -258,4 +276,38 @@ class _HomeScreenState extends State<HomeScreen> {
);
_loadStats();
}
// --- WIDGET DU GRAPHIQUE D'ACCUEIL ---
Widget _buildHomeTrendChart() {
// Trier par date et prendre les 7 dernières
final sorted = List<Session>.from(_recentSessions)
..sort((a, b) => a.createdAt.compareTo(b.createdAt));
final display =
sorted.length > 7 ? sorted.sublist(sorted.length - 7) : sorted;
return LineChart(
LineChartData(
gridData: const FlGridData(show: false),
titlesData: const FlTitlesData(show: false),
borderData: FlBorderData(show: false),
lineBarsData: [
LineChartBarData(
spots: display.asMap().entries.map((e) {
return FlSpot(e.key.toDouble(), e.value.totalScore.toDouble());
}).toList(),
isCurved: true,
color: AppTheme.primaryColor,
barWidth: 4,
isStrokeCapRound: true,
dotData: const FlDotData(show: false),
belowBarData: BarAreaData(
show: true,
color: AppTheme.primaryColor.withOpacity(0.1),
),
),
],
),
);
}
}