themePreferenceProvider top-level property

StateProvider<ThemeMode> themePreferenceProvider
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;
});