import 'package:flutter/material.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'settings_provider.dart'; part 'theme_provider.g.dart'; /// Theme mode provider from theme_provider /// Extracts theme mode from settings for easy access @riverpod ThemeMode themeModeFromTheme(Ref ref) { final settingsAsync = ref.watch(settingsProvider); return settingsAsync.when( data: (settings) => settings.themeMode, loading: () => ThemeMode.system, error: (_, __) => ThemeMode.system, ); } /// Provider to check if dark mode is active @riverpod bool isDarkMode(Ref ref) { final mode = ref.watch(themeModeFromThemeProvider); return mode == ThemeMode.dark; } /// Provider to check if light mode is active @riverpod bool isLightMode(Ref ref) { final mode = ref.watch(themeModeFromThemeProvider); return mode == ThemeMode.light; } /// Provider to check if system theme is active @riverpod bool isSystemTheme(Ref ref) { final mode = ref.watch(themeModeFromThemeProvider); return mode == ThemeMode.system; }