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<void> 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<void> 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
  }
}
