Files
Aq-Accounting-Flutter/lib/providers/budget_provider.dart
T
2026-09-21 17:37:53 +08:00

22 lines
821 B
Dart

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);