dynamic theme, basic category settings

This commit is contained in:
2024-02-25 13:22:45 +01:00
parent 2006ebf5cb
commit 2b53d1ab74
20 changed files with 372 additions and 146 deletions

View File

@@ -16,12 +16,12 @@ class CategoriesSettings extends StatelessWidget {
color: category.rgbToColor(),
),
IconButton(
onPressed: () {},
onPressed: () => context.read<CategoryBloc>().add(CategoryEditTransfert(category, !category.transfert)),
icon: const Icon(Icons.swap_horiz),
color: category.transfert ? Theme.of(context).colorScheme.primary : Theme.of(context).colorScheme.error,
),
IconButton(
onPressed: () {},
onPressed: () => context.read<CategoryBloc>().add(CategoryEditEssential(category, !category.essential)),
icon: const Icon(Icons.foundation),
color: category.essential ? Theme.of(context).colorScheme.primary : Theme.of(context).colorScheme.error,
),
@@ -34,7 +34,7 @@ class CategoriesSettings extends StatelessWidget {
icon: const Icon(Icons.edit),
),
IconButton(
onPressed: () {},
onPressed: () => context.read<CategoryBloc>().add(CategoryRemove(category)),
icon: const Icon(Icons.delete),
),
],
@@ -43,9 +43,30 @@ class CategoriesSettings extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BlocBuilder<CategoryBloc, CategoryState>(
return BlocConsumer<CategoryBloc, CategoryState>(
listener: (context, state) {
if (state is CategoryRemoveSucess) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
backgroundColor: Colors.green,
content: Text('Category succesfuly removed !'),
)
);
} else if (state is CategoryRemoveFail) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
backgroundColor: Colors.red,
content: Text('Cannot remove category. Still present on some transactions.'),
)
);
}
},
builder: (context, state) => TitledContainer(
title: "Categories",
action: IconButton(
onPressed: () => context.read<CategoryBloc>().add(CategoryAdd()),
icon: const Icon(Icons.add),
),
child: SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Column(