Feat: Macht die Kontoauswahl funktional

This commit is contained in:
2025-12-25 16:23:01 +01:00
parent c11515d447
commit 05a5bddf09
4 changed files with 162 additions and 81 deletions

View File

@@ -12,8 +12,11 @@ import '../Repositories/account_repository.dart';
/// Steuert die Interaktion mit den Accounts
class AccountController {
/// Gibt die aktuell gültige Instanz der Klasse zurück
factory AccountController() => _instance;
/// Erstellt eine neue Instanz dieser Klasse
AccountController() {
AccountController._internal() {
_newAccountDialog = DynamicDialog(
title: 'Neues Konto erstellen',
icon: Icons.account_balance_wallet,
@@ -45,14 +48,32 @@ class AccountController {
);
}
static final AccountController _instance = AccountController._internal();
BuildContext? _buildContext;
final AccountRepository _accountRepository = AccountRepository();
DynamicDialog? _newAccountDialog;
DynamicDialog? _errorNameEmptyDialog;
DynamicDialog? _accountCreatedDialog;
Account? _selected;
/// Stellt das ausgewählte Konto dar, das angezeigt wird
Future<Account?> get selected async => _selected ??= (await getAccounts())[0];
set selected(final Account selected) {
_selected = selected;
}
/// Gibt die gespeicherten Konten als Liste zurück
Future<List<Account>> getAccounts() async {
final List<Account> accounts = await _accountRepository.findBy(
orderBy: 'nameAsc',
);
return accounts;
}
/// Startet den Prozess um ein neues Konto anzulegen
void newAccountHandler(final BuildContext buildContext) {
_buildContext = buildContext;