Finance App
Finance App
useEffect(() => {
// Here you would typically fetch the exchange rate from an API
// For this example, we're using a static value
}, [])
return (
<main className="container mx-auto px-4 py-8">
<h1 className="text-3xl font-bold mb-8 text-center text-primary">My
Finances</h1>
<FinancialDashboard transactions={financialData.transactions}
investments={financialData.investments} />
<Tabs defaultValue="dashboard" className="w-full mt-8">
<TabsList className="grid w-full grid-cols-5">
<TabsTrigger value="dashboard">Dashboard</TabsTrigger>
<TabsTrigger value="transactions">Transactions</TabsTrigger>
<TabsTrigger value="categories">Categories</TabsTrigger>
<TabsTrigger value="investments">Investments</TabsTrigger>
<TabsTrigger value="charts">Charts</TabsTrigger>
</TabsList>
<TabsContent value="dashboard">
<div className="grid gap-8 md:grid-cols-2">
<div>
<h2 className="text-2xl font-semibold mb-4">Add Transaction</h2>
<TransactionForm
onAddTransaction={addTransaction}
categories={financialData.categories}
exchangeRate={exchangeRate.USD}
/>
</div>
<div>
<h2 className="text-2xl font-semibold mb-4">Summary</h2>
<Summary transactions={financialData.transactions} />
</div>
</div>
</TabsContent>
<TabsContent value="transactions">
<h2 className="text-2xl font-semibold mb-4">Transactions</h2>
<TransactionList
transactions={financialData.transactions}
categories={financialData.categories}
onEditTransaction={editTransaction}
onDeleteTransaction={deleteTransaction}
exchangeRate={exchangeRate.USD}
/>
<div className="mt-4">
<Button onClick={exportTransactions}>Export Transactions</Button>
</div>
</TabsContent>
<TabsContent value="categories">
<h2 className="text-2xl font-semibold mb-4">Manage Categories</h2>
<CategoryManager
categories={financialData.categories}
onAddCategory={addCategory}
onEditCategory={editCategory}
onDeleteCategory={deleteCategory}
/>
</TabsContent>
<TabsContent value="investments">
<h2 className="text-2xl font-semibold mb-4">Investments</h2>
<Investments investments={financialData.investments}
onAddInvestment={addInvestment} />
</TabsContent>
<TabsContent value="charts">
<h2 className="text-2xl font-semibold mb-4">Charts</h2>
<TransactionCharts transactions={financialData.transactions} />
</TabsContent>
</Tabs>
</main>
)
}