Finished drawer and also now showing expenses as they are added!

This commit is contained in:
2025-02-05 14:04:35 -07:00
parent 87392cc73c
commit ecbac615e9
2 changed files with 159 additions and 190 deletions
+42 -41
View File
@@ -41,6 +41,10 @@ class HomePage extends StatefulWidget {
class _HomePageState extends State<HomePage> {
var pageSelected = 0;
refresh() {
setState(() {});
}
@override
Widget build(BuildContext context) {
Widget page;
@@ -48,7 +52,9 @@ class _HomePageState extends State<HomePage> {
switch (pageSelected) {
case 0:
page = ExpensePage();
dialog = ExpenseInputDialog();
dialog = ExpenseInputDialog(
notifyParent: refresh,
);
case 1:
page = IncomePage();
case 2:
@@ -79,49 +85,44 @@ class _HomePageState extends State<HomePage> {
return LayoutBuilder(builder: (context, constraints) {
return Scaffold(
// TODO: Add a drawer instead of nav rail.
body: Row(
children: [
SafeArea(
child: NavigationRail(
extended: constraints.maxWidth >= 800,
destinations: [
NavigationRailDestination(
icon: Icon(Icons.payment),
label: Text('Expenses'),
),
NavigationRailDestination(
icon: Icon(Icons.account_balance),
label: Text('Income'),
),
NavigationRailDestination(
icon: Icon(Icons.attach_money),
label: Text('Liquid Assets'),
),
NavigationRailDestination(
icon: Icon(Icons.bar_chart),
label: Text('Projections'),
),
NavigationRailDestination(
icon: Icon(Icons.settings),
label: Text('Settings'),
),
],
selectedIndex: pageSelected,
onDestinationSelected: (value) {
setState(() {
pageSelected = value;
});
},
),
appBar: AppBar(title: Text("Expense Tracker")),
drawer: NavigationRail(
extended: constraints.maxWidth >= 800,
destinations: [
NavigationRailDestination(
icon: Icon(Icons.payment),
label: Text('Expenses'),
),
Expanded(
child: Container(
color: Theme.of(context).colorScheme.primaryContainer,
child: page,
),
NavigationRailDestination(
icon: Icon(Icons.account_balance),
label: Text('Income'),
),
NavigationRailDestination(
icon: Icon(Icons.attach_money),
label: Text('Liquid Assets'),
),
NavigationRailDestination(
icon: Icon(Icons.bar_chart),
label: Text('Reports'),
),
NavigationRailDestination(
icon: Icon(Icons.settings),
label: Text('Settings'),
),
],
selectedIndex: pageSelected,
onDestinationSelected: (value) {
setState(() {
pageSelected = value;
Navigator.pop(context);
});
},
),
body: Center(
child: Container(
color: Theme.of(context).colorScheme.primaryContainer,
child: page,
),
),
floatingActionButton: floatingButton,
);