feat: deploy infrastructure + disk/drive, calendar, presentation, workspaces, onboarding, demo user
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
|
||||
final themeModeProvider =
|
||||
StateNotifierProvider<ThemeModeNotifier, ThemeMode>((ref) {
|
||||
return ThemeModeNotifier();
|
||||
});
|
||||
|
||||
class ThemeModeNotifier extends StateNotifier<ThemeMode> {
|
||||
ThemeModeNotifier() : super(ThemeMode.system) {
|
||||
_load();
|
||||
}
|
||||
|
||||
final _storage = const FlutterSecureStorage();
|
||||
static const _key = 'theme_mode';
|
||||
|
||||
Future<void> _load() async {
|
||||
final value = await _storage.read(key: _key);
|
||||
if (value == 'light') state = ThemeMode.light;
|
||||
if (value == 'dark') state = ThemeMode.dark;
|
||||
}
|
||||
|
||||
Future<void> setTheme(ThemeMode mode) async {
|
||||
state = mode;
|
||||
final value = mode == ThemeMode.light
|
||||
? 'light'
|
||||
: mode == ThemeMode.dark
|
||||
? 'dark'
|
||||
: 'system';
|
||||
await _storage.write(key: _key, value: value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user