added transaction snackbar message

This commit is contained in:
2024-06-29 20:02:54 +02:00
parent 78614bd021
commit f4294e0e11
5 changed files with 72 additions and 21 deletions

View File

@@ -1,4 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:krezus/domains/transaction/transaction_bloc.dart';
import 'package:krezus/pages/transactions/widgets/transactions_actions.dart';
import 'package:krezus/pages/transactions/widgets/transactions_header.dart';
import 'package:krezus/pages/transactions/widgets/transactions_list.dart';
@@ -9,20 +11,34 @@ class TransactionsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
MediaQueryData mediaQuery = MediaQuery.of(context);
return Center(
child: Container(
constraints: const BoxConstraints(
maxWidth: 1000
return BlocListener<TransactionBloc, TransactionState>(
listenWhen: (previous, current) => previous.showSnackBar != current.showSnackBar,
listener: (context, state) {
if (state.showSnackBar) {
ScaffoldMessenger
.of(context)
.showSnackBar(
SnackBar(
backgroundColor: state.snackBarIsError ? Colors.red : Colors.green,
content: Text(state.snackBarMessage),
),
);
context.read<TransactionBloc>().add(const TransactionResetSnackBar());
}
},
child: Center(
child: Container(
constraints: const BoxConstraints(maxWidth: 1000),
padding: mediaQuery.padding,
child: const Column(
children: [
TransactionsActions(),
TransactionsHeader(),
TransactionsList(),
],
),
),
padding: mediaQuery.padding,
child: const Column(
children: [
TransactionsActions(),
TransactionsHeader(),
TransactionsList(),
],
),
)
),
);
}
}
}

View File

@@ -21,8 +21,8 @@ class TransactionAddDialog extends StatelessWidget {
BlocProvider.value(value: BlocProvider.of<CategoryBloc>(context)),
BlocProvider.value(value: BlocProvider.of<AccountBloc>(context)),
],
child: const TransactionAddDialog()
)
child: const TransactionAddDialog(),
),
);
}
@@ -32,18 +32,18 @@ class TransactionAddDialog extends StatelessWidget {
final actions = [
IconButton(
onPressed: () => TransactionAddDialog.hide(context),
icon: const Icon(Icons.close)
icon: const Icon(Icons.close),
),
IconButton(
onPressed: () => context.read<TransactionBloc>().add(const TransactionAdd()),
icon: const Icon(Icons.save)
icon: const Icon(Icons.save),
),
];
if (currentTransaction != null) {
actions.add(IconButton(
onPressed: () => context.read<TransactionBloc>().add(const TransactionDeleteCurrent()),
icon: const Icon(Icons.delete)
icon: const Icon(Icons.delete),
));
}
@@ -57,8 +57,8 @@ class TransactionAddDialog extends StatelessWidget {
builder: (context, state) => AlertDialog(
title: Text(state.currentTransaction == null ? 'Add Transaction' : 'Edit Transaction'),
actions: _computeActions(context, state.currentTransaction),
content: const TransactionForm()
)
content: const TransactionForm(),
),
);
}
}