|
|
@@ -0,0 +1,35 @@
|
|
|
+
|
|
|
+import 'package:flutter/material.dart';
|
|
|
+import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
|
+
|
|
|
+
|
|
|
+class AppTheme {
|
|
|
+
|
|
|
+ static final appThemeProvider = StateProvider<ThemeMode?>((ref) {
|
|
|
+ return ThemeMode.system;
|
|
|
+ });
|
|
|
+
|
|
|
+ static late WidgetRef? _appWidgetRef;
|
|
|
+ static StateController<ThemeMode?>? _appThemeNotifier;
|
|
|
+ static setRootWidgetRef(WidgetRef ref) {
|
|
|
+ _appWidgetRef = ref;
|
|
|
+ _appThemeNotifier = ref.watch(appThemeProvider.notifier);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ static ThemeMode? getTheme([WidgetRef? ref]) {
|
|
|
+ if (ref != null) {
|
|
|
+ return ref.watch(appThemeProvider);
|
|
|
+ } else {
|
|
|
+ return _appWidgetRef!.watch(appThemeProvider);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ static setTheme(ThemeMode mode) {
|
|
|
+ _appThemeNotifier?.state = mode;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+
|