Initial project

This commit is contained in:
Cody
2026-03-06 14:56:17 +08:00
parent 977b627b15
commit bf9e099747
1180 changed files with 50973 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
import 'package:flutter/material.dart';
/// 设置主题用例
///
/// 职责:幂等校验——当前模式与目标模式相同时直接返回,不触发任何变更。
///
/// 持久化由 [ThemeModeNotifier.setMode] 负责(在 `onApply` 被调用后执行),
/// UseCase 不感知存储细节。
///
/// ## 数据流
///
/// ```
/// ThemeViewModel.setMode(mode)
/// → ★ SetThemeUseCase.execute() ★ ← 你在这里
/// → 幂等校验(相同模式 → 直接返回)
/// → onApply(mode)
/// → ThemeModeNotifier.setMode() ← 更新内存 + 写入持久化TODO
/// ```
class SetThemeUseCase {
const SetThemeUseCase();
/// 执行主题切换
///
/// [current] 当前生效的主题模式
/// [requested] 用户选择的目标模式
/// [onApply] 校验通过后回调,由 ViewModel 负责调用 ThemeModeNotifier
void execute({
required ThemeMode current,
required ThemeMode requested,
required void Function(ThemeMode mode) onApply,
}) {
if (current == requested) return;
onApply(requested);
}
}