import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'app_theme.dart'; // Import du fichier contenant les définitions des thèmes /// Fournisseur de thèmes pour gérer le mode clair/sombre. /// Notifie les widgets dépendants lors du changement de thème. class ThemeProvider with ChangeNotifier { bool _isDarkMode = false; // Mode sombre désactivé par défaut /// Renvoie l'état actuel du mode sombre. bool get isDarkMode => _isDarkMode; /// Retourne le thème courant en fonction du mode actif. ThemeData get currentTheme { return _isDarkMode ? AppTheme.darkTheme : AppTheme.lightTheme; } /// Initialise le mode sombre en fonction des préférences sauvegardées. Future loadThemePreference() async { final prefs = await SharedPreferences.getInstance(); _isDarkMode = prefs.getBool('isDarkMode') ?? false; // Valeur par défaut : false notifyListeners(); } /// Active ou désactive le mode sombre et sauvegarde la préférence. Future toggleTheme() async { _isDarkMode = !_isDarkMode; notifyListeners(); // Notifie les widgets dépendants du changement de thème final prefs = await SharedPreferences.getInstance(); await prefs.setBool('isDarkMode', _isDarkMode); // Sauvegarde de l'état } }