// 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) /// - Assets (total number, total by day / month / year) /// - Projected Assets in: /// - 1 week, 1 month, 1 quarter, 1 year /// - 1/2 year? 2 years? 5 years? Allow customization? 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 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), ], ), ], ), ), ); } }