import 'package:flutter/material.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; import '../utils/shared_preferences_provider.dart'; part 'theme_mode_provider.g.dart'; const _themeModeKey = 'theme_mode'; @Riverpod(keepAlive: true) class ThemeModeController extends _$ThemeModeController { @override ThemeMode build() { final stored = ref.watch(sharedPreferencesProvider).getString(_themeModeKey); return switch (stored) { 'light' => ThemeMode.light, 'dark' => ThemeMode.dark, _ => ThemeMode.system, }; } Future setThemeMode(ThemeMode mode) async { state = mode; await ref.read(sharedPreferencesProvider).setString(_themeModeKey, mode.name); } }