Files
jinzhi/lib/common/theme/theme_controller.dart
T
2026-06-18 15:02:28 +08:00

25 lines
647 B
Dart

import 'package:flutter/material.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import '../storage/storage_service.dart';
import '../storage/storage_keys.dart';
part 'theme_controller.g.dart';
@riverpod
class ThemeModeController extends _$ThemeModeController {
@override
ThemeMode build() {
final v = StorageService.to.getString(storageThemeMode);
return switch (v) {
'light' => ThemeMode.light,
'dark' => ThemeMode.dark,
_ => ThemeMode.system,
};
}
Future<void> set(ThemeMode mode) async {
state = mode;
await StorageService.to.setString(storageThemeMode, mode.name);
}
}