Improved category with colors

This commit is contained in:
2024-02-09 01:22:04 +01:00
parent c5ede79dc4
commit 44f6d433d1
14 changed files with 303 additions and 170 deletions

View File

@@ -9,6 +9,7 @@ import 'package:tunas/repositories/account/models/transaction.dart';
class AccountRepository {
String accountFile = 'tunas_main_account.json';
Account? currentAccount;
final StorageClient _storageClient;
@@ -49,20 +50,27 @@ class AccountRepository {
saveAccount(Account account) async {
await _storageClient.save(accountFile, jsonEncode(account.toJson()));
_broadcastAccountData(account);
}
saveTransactions(List<Transaction> transactions) async {
final account = Account(transactions: transactions);
await saveAccount(account);
_transactionsController.add(account.transactions);
_categoriesController.add(account.categories);
_budgetController.add(account.budgets);
Account? account = currentAccount;
if (account == null) {
throw Error();
} else {account.transactions = transactions;
await saveAccount(account);
}
}
deleteAccount() async {
await _storageClient.delete(accountFile);
_transactionsController.add(const []);
_categoriesController.add(const []);
_budgetController.add(const []);
_broadcastAccountData(Account());
}
_broadcastAccountData(Account account) {
currentAccount = account;
_transactionsController.add(account.transactions);
_categoriesController.add(account.categories);
_budgetController.add(account.budgets);
}
}

View File

@@ -1,3 +1,5 @@
import 'dart:ui';
class Category {
String label;
String color;
@@ -18,4 +20,8 @@ class Category {
'label': label,
'color': color,
};
Color rgbToColor() {
return Color(int.parse(color.toUpperCase().replaceAll("#", ""), radix: 16));
}
}