24 lines
680 B
Dart
24 lines
680 B
Dart
import 'package:flutter/material.dart';
|
||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||
|
||
/// 主题模式管理,默认跟随系统(logo 明度均值 245/255,「明亮轻盈」才是品牌主场)。
|
||
class ThemeModeNotifier extends Notifier<ThemeMode> {
|
||
@override
|
||
ThemeMode build() => ThemeMode.system;
|
||
|
||
/// 设置主题模式。
|
||
void setThemeMode(ThemeMode mode) {
|
||
state = mode;
|
||
}
|
||
|
||
/// 在浅色 / 深色之间切换。
|
||
void toggle() {
|
||
state = state == ThemeMode.dark ? ThemeMode.light : ThemeMode.dark;
|
||
}
|
||
}
|
||
|
||
/// 主题模式提供者。
|
||
final themeModeProvider = NotifierProvider<ThemeModeNotifier, ThemeMode>(
|
||
ThemeModeNotifier.new,
|
||
);
|