refactoring

This commit is contained in:
dahoud
2026-03-31 09:14:47 +00:00
parent 9bfffeeebe
commit 5383df6dcb
200 changed files with 11192 additions and 7063 deletions

View File

@@ -0,0 +1,42 @@
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<void> toggle() async {
_mode = isDark ? ThemeMode.light : ThemeMode.dark;
notifyListeners();
final prefs = await SharedPreferences.getInstance();
await prefs.setString(_key, _mode.name);
}
Future<void> 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<ThemeProvider> 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);
}
}