import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:get_it/get_it.dart'; import 'package:okane/database/sqlite.dart'; import 'package:okane/i18n/strings.g.dart'; import 'package:okane/ui/state/core.dart'; import 'package:okane/ui/utils.dart'; import 'package:okane/ui/widgets/piechart_card.dart'; class TotalBalanceCard extends StatelessWidget { const TotalBalanceCard({super.key}); Future _getTotalBalance(List accounts) async { if (accounts.isEmpty) { return 0; } final db = GetIt.I.get(); final totalBalance = await db.transactionsDao.getTotalBalance( accounts.map((a) => a.id), ); final loanSum = await db.loansDao.getTotalLoanSum(); return totalBalance + loanSum; } @override Widget build(BuildContext context) { return BlocBuilder( builder: (context, state) { return ResponsiveCard( titleText: t.pages.accounts.totalBalance.title, child: Padding( padding: EdgeInsets.all(16), child: FutureBuilder( future: _getTotalBalance(state.accounts), builder: (context, snapshot) { print("SNAPSHOT: ${snapshot.data}"); return Text( snapshot.hasData ? formatCurrency(snapshot.data!) : t.pages.accounts.totalBalance.loading, style: Theme.of(context).textTheme.bodyLarge, ); }, ), ), ); }, ); } }