This commit is contained in:
Phuoc Nguyen
2025-10-10 16:38:07 +07:00
parent e5b247d622
commit b94c158004
177 changed files with 25080 additions and 152 deletions

View File

@@ -0,0 +1,38 @@
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;
}