first commit
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
import '../api/budget_api.dart';
|
||||
import '../models/budget.dart';
|
||||
|
||||
/// 当月预算(后端只提供当月数据)。
|
||||
///
|
||||
/// 做成 AsyncNotifier 而不是 FutureProvider,是为了能直接调用
|
||||
/// [BudgetNotifier.setMonthBudget] 修改预算并拿到后端返回的最新值。
|
||||
class BudgetNotifier extends AsyncNotifier<BudgetInfo> {
|
||||
@override
|
||||
Future<BudgetInfo> build() => ref.watch(budgetApiProvider).getBudget();
|
||||
|
||||
/// 设置/修改当月预算(立即生效,可随时修改)
|
||||
Future<void> setMonthBudget(double amount) async {
|
||||
final updated = await ref.read(budgetApiProvider).setCurrentBudget(amount);
|
||||
state = AsyncData(updated);
|
||||
}
|
||||
}
|
||||
|
||||
final budgetProvider = AsyncNotifierProvider<BudgetNotifier, BudgetInfo>(BudgetNotifier.new);
|
||||
Reference in New Issue
Block a user