import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:shared_preferences/shared_preferences.dart'; enum ThemeMode { basic, pop, } class ThemeNotifier extends Notifier { @override ThemeMode build() { _loadTheme(); return ThemeMode.basic; } static const String _themeKey = 'app_theme'; Future _loadTheme() async { final prefs = await SharedPreferences.getInstance(); final themeName = prefs.getString(_themeKey); if (themeName != null) { state = ThemeMode.values.firstWhere( (mode) => mode.name == themeName, orElse: () => ThemeMode.basic, ); } } Future setTheme(ThemeMode mode) async { state = mode; final prefs = await SharedPreferences.getInstance(); await prefs.setString(_themeKey, mode.name); } } final themeProvider = NotifierProvider( () => ThemeNotifier(), );