Feat: Zeigt Knöpfe zum Transaktion erstellen nur an, wenn ein Konto ausgewählt ist
This commit is contained in:
@@ -51,7 +51,7 @@ class _RecentTransactionsListState extends State<RecentTransactionsList> {
|
||||
final ThemeData theme = Theme.of(context);
|
||||
|
||||
if (snapshot.hasData) {
|
||||
final List<Padding>? recentTransactionsWidgetList = snapshot.data
|
||||
final List<Widget>? recentTransactionsWidgetList = snapshot.data
|
||||
?.map(
|
||||
(final Transaction transaction) => Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 4),
|
||||
@@ -74,7 +74,42 @@ class _RecentTransactionsListState extends State<RecentTransactionsList> {
|
||||
)
|
||||
.toList();
|
||||
|
||||
return Column(children: [...?recentTransactionsWidgetList]);
|
||||
if (recentTransactionsWidgetList != null &&
|
||||
recentTransactionsWidgetList.isNotEmpty) {
|
||||
recentTransactionsWidgetList.add(
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 4),
|
||||
child: TextButton(
|
||||
onPressed: _transactionController.newTransactionHandler,
|
||||
child: const Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Icon(Icons.swap_horiz),
|
||||
SizedBox(width: 10),
|
||||
Text('Transaktion hinzufügen'),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
return Column(children: [...recentTransactionsWidgetList]);
|
||||
} else {
|
||||
if (_accountController.selected.value != null) {
|
||||
return TextButton(
|
||||
onPressed: _transactionController.newTransactionHandler,
|
||||
child: const Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Icon(Icons.swap_horiz),
|
||||
SizedBox(width: 10),
|
||||
Text('Transaktion hinzufügen'),
|
||||
],
|
||||
),
|
||||
);
|
||||
} else {
|
||||
return const Text('');
|
||||
}
|
||||
}
|
||||
} else if (snapshot.hasError) {
|
||||
return Center(
|
||||
child: Column(
|
||||
|
||||
@@ -24,7 +24,47 @@ class _FloatingCreationButtonState extends State<FloatingCreationButton> {
|
||||
final _key = GlobalKey<ExpandableFabState>();
|
||||
|
||||
@override
|
||||
Widget build(final BuildContext context) => ExpandableFab(
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
_accountController.selected.addListener(() {
|
||||
if (mounted) {
|
||||
setState(() {});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(final BuildContext context) {
|
||||
final List<Widget> fabs = [];
|
||||
if (_accountController.selected.value != null) {
|
||||
fabs
|
||||
..add(
|
||||
_expandableButton(
|
||||
label: 'Neue Transaktion',
|
||||
icon: Icons.swap_horiz,
|
||||
onPressed: _transactionController.newTransactionHandler,
|
||||
),
|
||||
)
|
||||
..add(
|
||||
_expandableButton(
|
||||
label: 'Neue wiederkehrende Transaktion',
|
||||
icon: Icons.repeat,
|
||||
onPressed:
|
||||
_recurringTransactionController.newRecurringTransactionHandler,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
fabs.add(
|
||||
_expandableButton(
|
||||
label: 'Neues Konto',
|
||||
icon: Icons.account_balance_wallet,
|
||||
onPressed: _accountController.newAccountHandler,
|
||||
),
|
||||
);
|
||||
|
||||
return ExpandableFab(
|
||||
key: _key,
|
||||
openButtonBuilder: RotateFloatingActionButtonBuilder(
|
||||
child: const Icon(Icons.add),
|
||||
@@ -32,25 +72,9 @@ class _FloatingCreationButtonState extends State<FloatingCreationButton> {
|
||||
type: ExpandableFabType.up,
|
||||
childrenAnimation: ExpandableFabAnimation.none,
|
||||
distance: 70,
|
||||
children: <Widget>[
|
||||
_expandableButton(
|
||||
label: 'Neues Konto',
|
||||
icon: Icons.account_balance_wallet,
|
||||
onPressed: _accountController.newAccountHandler,
|
||||
),
|
||||
_expandableButton(
|
||||
label: 'Neue Transaktion',
|
||||
icon: Icons.swap_horiz,
|
||||
onPressed: _transactionController.newTransactionHandler,
|
||||
),
|
||||
_expandableButton(
|
||||
label: 'Neue wiederkehrende Transaktion',
|
||||
icon: Icons.repeat,
|
||||
onPressed:
|
||||
_recurringTransactionController.newRecurringTransactionHandler,
|
||||
),
|
||||
],
|
||||
children: fabs,
|
||||
);
|
||||
}
|
||||
|
||||
Widget _expandableButton({
|
||||
required final String label,
|
||||
|
||||
Reference in New Issue
Block a user