diff --git a/lib/pages/report.dart b/lib/pages/report.dart index 0616b1c..6e73725 100644 --- a/lib/pages/report.dart +++ b/lib/pages/report.dart @@ -1,5 +1,12 @@ +// Flutter import 'package:flutter/material.dart'; +// Local +import 'package:flutter_expense_tracker/db.dart'; +import 'package:flutter_expense_tracker/models/asset.dart'; +import 'package:flutter_expense_tracker/models/expense.dart'; +import 'package:flutter_expense_tracker/models/income.dart'; + /// TODO: /// - Expenses (total number, totals by day / month / year) /// - Incomes (total number, totals by day / month / year) @@ -8,13 +15,97 @@ import 'package:flutter/material.dart'; /// - 1 week, 1 month, 1 quarter, 1 year /// - 1/2 year? 2 years? 5 years? Allow customization? -class ProjectionPage extends StatelessWidget { +class ProjectionPage extends StatefulWidget { const ProjectionPage({ super.key, }); + @override + State createState() => _ProjectionPageState(); +} + +class _ProjectionPageState extends State { + late Future> expenses; + late Future> incomes; + late Future> assets; + + @override + void initState() { + super.initState(); + /***** Load DB Data *****/ + // Expenses + expenses = DatabaseHelper.instance.getExpenses(); + + // Income + //incomes = DatabaseHelper.instance.getIncomes(); + + // Assets + //assets = DatabaseHelper.instance.getAssets(); + } + @override Widget build(BuildContext context) { - return Placeholder(); + return ListView( + children: [ + SummaryCard( + name: "Expense Totals", + leftText: "left", + middleText: "middle", + rightText: "right", + ), + SummaryCard( + name: "Income Totals", + leftText: "left", + middleText: "middle", + rightText: "right", + ), + SummaryCard( + name: "Asset Totals", + leftText: "left", + middleText: "middle", + rightText: "right", + ), + ], + ); + } +} + +class SummaryCard extends StatelessWidget { + const SummaryCard({ + super.key, + required this.name, + required this.leftText, + required this.middleText, + required this.rightText, + }); + + final String name; + final String leftText; + final String middleText; + final String rightText; + + @override + Widget build(BuildContext context) { + return Card( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + children: [ + Center( + child: Text(name), + ), + Row( + children: [ + Text(leftText), + Spacer(), + Text(middleText), + Spacer(), + Text(rightText), + ], + ), + ], + ), + ), + ); } }