Add invoice dialog and enhance Cashflow, Clients, Invoices, and Net Worth pages
- Introduced AddInvoiceDialog component for creating new invoices with client selection and form validation. - Updated CashflowPage to include dialogs for adding income, expenses, and transactions, improving user interaction. - Enhanced ClientsPage with a dialog for adding new clients, streamlining client management. - Improved InvoicesPage with a dialog for creating new invoices, facilitating better invoice management. - Updated NetWorthPage to include dialogs for adding assets and liabilities, enhancing financial tracking capabilities.
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
import {useState} from 'react';
|
||||
import {Card, CardContent} from '@/components/ui/card';
|
||||
import {Button} from '@/components/ui/button';
|
||||
import {useAppSelector} from '@/store';
|
||||
import AddClientDialog from '@/components/dialogs/AddClientDialog';
|
||||
|
||||
export default function ClientsPage() {
|
||||
const [dialogOpen, setDialogOpen] = useState(false);
|
||||
const {clients, invoices} = useAppSelector(state => state.invoices);
|
||||
|
||||
const getClientStats = (clientId: string) => {
|
||||
@@ -29,7 +32,7 @@ export default function ClientsPage() {
|
||||
<div><span className="text-muted-foreground">Outstanding</span> <span className="font-medium">{fmt(totalOutstanding)}</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<Button size="sm">Add Client</Button>
|
||||
<Button size="sm" onClick={() => setDialogOpen(true)}>Add Client</Button>
|
||||
</div>
|
||||
|
||||
{/* Clients Grid */}
|
||||
@@ -64,12 +67,14 @@ export default function ClientsPage() {
|
||||
})}
|
||||
|
||||
{/* Add client card */}
|
||||
<Card className="card-elevated border-dashed cursor-pointer hover:bg-accent/50 transition-colors">
|
||||
<Card className="card-elevated border-dashed cursor-pointer hover:bg-accent/50 transition-colors" onClick={() => setDialogOpen(true)}>
|
||||
<CardContent className="p-4 flex items-center justify-center h-full min-h-[100px]">
|
||||
<span className="text-sm text-muted-foreground">+ Add Client</span>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</div>
|
||||
|
||||
<AddClientDialog open={dialogOpen} onOpenChange={setDialogOpen} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user