import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; /// Provider de thème — light / dark avec persistance class ThemeProvider extends ChangeNotifier { static const String _key = 'uf_theme_mode'; ThemeMode _mode; ThemeProvider({ThemeMode initial = ThemeMode.system}) : _mode = initial; ThemeMode get mode => _mode; bool get isDark => _mode == ThemeMode.dark; Future toggle() async { _mode = isDark ? ThemeMode.light : ThemeMode.dark; notifyListeners(); final prefs = await SharedPreferences.getInstance(); await prefs.setString(_key, _mode.name); } Future setMode(ThemeMode mode) async { if (_mode == mode) return; _mode = mode; notifyListeners(); final prefs = await SharedPreferences.getInstance(); await prefs.setString(_key, mode.name); } /// Charge le thème persisté depuis les préférences static Future load() async { final prefs = await SharedPreferences.getInstance(); final stored = prefs.getString(_key); final mode = switch (stored) { 'light' => ThemeMode.light, 'dark' => ThemeMode.dark, _ => ThemeMode.system, }; return ThemeProvider(initial: mode); } }