mirror of
https://github.com/soconnor0919/beenvoice.git
synced 2026-05-08 09:38:55 -04:00
c9a664869c
- Replace custom invoice items table with responsive DataTable component - Fix server/client component error by creating InvoiceItemsTable client component - Merge danger zone with actions sidebar and use destructive button variant - Standardize button text sizing across all action buttons - Remove false claims from homepage (testimonials, ratings, fake user counts) - Focus homepage messaging on freelancers with honest feature descriptions - Fix dark mode support throughout app by replacing hard-coded colors with semantic classes - Remove aggressive red styling from settings, add subtle red accents only - Align import/export buttons and improve delete confirmation UX - Update dark mode background to have subtle green tint instead of pure black - Fix HTML nesting error in AlertDialog by using div instead of nested p tags This update makes the invoice view properly responsive, removes misleading marketing claims, and ensures consistent dark mode support across the entire application.
45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
import Link from "next/link";
|
|
import { auth } from "~/server/auth";
|
|
import { api, HydrateClient } from "~/trpc/server";
|
|
import { Button } from "~/components/ui/button";
|
|
import { InvoiceList } from "~/components/data/invoice-list";
|
|
import { Plus } from "lucide-react";
|
|
|
|
export default async function InvoicesPage() {
|
|
const session = await auth();
|
|
|
|
if (!session?.user) {
|
|
return (
|
|
<div className="flex min-h-screen items-center justify-center">
|
|
<div className="text-center">
|
|
<h1 className="mb-4 text-4xl font-bold">Access Denied</h1>
|
|
<p className="text-muted-foreground mb-8">
|
|
Please sign in to view invoices
|
|
</p>
|
|
<Link href="/api/auth/signin">
|
|
<Button size="lg">Sign In</Button>
|
|
</Link>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
// Prefetch invoices data
|
|
void api.invoices.getAll.prefetch();
|
|
|
|
return (
|
|
<HydrateClient>
|
|
<div className="p-6">
|
|
<div className="mb-8">
|
|
<h2 className="mb-2 text-3xl font-bold">Invoices</h2>
|
|
<p className="text-muted-foreground">
|
|
Manage your invoices and payments
|
|
</p>
|
|
</div>
|
|
|
|
<InvoiceList />
|
|
</div>
|
|
</HydrateClient>
|
|
);
|
|
}
|