Improved layout, fixed transaction popup

This commit is contained in:
2024-02-11 17:28:21 +01:00
parent 44f6d433d1
commit cbaf94d866
21 changed files with 378 additions and 204 deletions

View File

@@ -41,8 +41,13 @@ class AccountBloc extends Bloc<AccountEvent, AccountState> {
super(const AccountState()) {
on<AccountImportJSON>(_onAccountImportJSON);
on<AccountImportCSV>(_onAccountImportCSV);
on<SubAccountLoad>(_onSubAccountLoad);
// on<AccountExportJSON>(_onAccountImportJSON);
// on<AccountExportCSV>(_onAccountImportJSON);
_accountRepository
.getSubAccountsStream()
.listen((subAccounts) => add(SubAccountLoad(subAccounts)));
}
double _universalConvertToDouble(dynamic value) {
@@ -69,6 +74,7 @@ class AccountBloc extends Bloc<AccountEvent, AccountState> {
final List<List<dynamic>> csvList = const CsvToListConverter(fieldDelimiter: '|', eol: '\n').convert(csvFileContent);
final Map<String, Category> categoriesMap = {};
final Set<String> subAccounts = {};
final transactions = csvList
.map((line) {
@@ -88,6 +94,8 @@ class AccountBloc extends Bloc<AccountEvent, AccountState> {
}
}
subAccounts.add(line[3]);
return Transaction(
uuid: const Uuid().v8(),
date: DateTime.parse(line[0]),
@@ -99,7 +107,7 @@ class AccountBloc extends Bloc<AccountEvent, AccountState> {
.toList();
await _accountRepository.deleteAccount();
final account = Account(transactions: transactions, categories: categoriesMap.values.toList());
final account = Account(transactions: transactions, categories: categoriesMap.values.toList(), subAccounts: subAccounts);
await _accountRepository.saveAccount(account);
}
}
@@ -119,4 +127,12 @@ class AccountBloc extends Bloc<AccountEvent, AccountState> {
await _accountRepository.saveTransactions(transactions);
}
}
_onSubAccountLoad(
SubAccountLoad event, Emitter<AccountState> emit
) {
emit(
state.copyWith(event.subAccounts)
);
}
}

View File

@@ -22,3 +22,11 @@ final class AccountExportJSON extends AccountEvent {
final class AccountExportCSV extends AccountEvent {
const AccountExportCSV();
}
final class SubAccountLoad extends AccountEvent {
final Set<String> subAccounts;
const SubAccountLoad(this.subAccounts);
@override
List<Object> get props => [subAccounts];
}

View File

@@ -1,12 +1,18 @@
part of 'account_bloc.dart';
final class AccountState extends Equatable {
const AccountState();
final Set<String> subAccounts;
AccountState copyWith() {
return const AccountState();
const AccountState({
this.subAccounts = const {},
});
AccountState copyWith(Set<String>? subAccounts) {
return AccountState(
subAccounts: subAccounts ?? this.subAccounts,
);
}
@override
List<Object?> get props => [];
List<Object?> get props => [subAccounts];
}