themePreferenceProvider top-level property
final
Implementation
final themePreferenceProvider = StateProvider<ThemeMode>((ref) {
final prefs = ref.watch(sharedPreferencesProvider);
final storedString = prefs.getString('theme');
ref.listenSelf(
(previous, next) {
next == ThemeMode.system
? prefs.remove('theme')
: prefs.setString('theme', next == ThemeMode.dark ? 'dark' : 'light');
},
);
return storedString == null
? ThemeMode.system
: storedString == 'dark'
? ThemeMode.dark
: ThemeMode.light;
});