Skip to content

Commit 8e6c245

Browse files
feat(invoices): add MyInvoices page and integrate it into patient navigation
1 parent 816c08d commit 8e6c245

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

resources/js/components/navigation/nav-patient.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ import {
66
SidebarMenuItem,
77
} from '@/components/ui/sidebar';
88
import appointments from '@/routes/appointments';
9+
import { myInvoices } from '@/routes/invoices';
910
import { myRecord } from '@/routes/medicalRecords';
1011
import { myPrescriptions } from '@/routes/prescriptions';
1112
import { NavItem, SharedData } from '@/types';
1213
import { Link, usePage } from '@inertiajs/react';
13-
import { ClipboardClockIcon, ClipboardListIcon, PillIcon } from 'lucide-react';
14+
import { ClipboardClockIcon, ClipboardListIcon, PillIcon, ScrollTextIcon } from 'lucide-react';
1415

1516
const patientItems: NavItem[] = [
1617
{
@@ -28,6 +29,11 @@ const patientItems: NavItem[] = [
2829
href: myPrescriptions().url,
2930
icon: PillIcon,
3031
},
32+
{
33+
title: 'My Invoices',
34+
href: myInvoices().url,
35+
icon: ScrollTextIcon,
36+
},
3137
];
3238

3339
export function NavPatient() {
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { DataTable } from '@/components/data-table';
2+
import Heading from '@/components/heading';
3+
import Layout from '@/layouts/app-layout';
4+
import { column } from '@/pages/patient/invoices/column';
5+
import { myInvoices } from '@/routes/invoices';
6+
import { BreadcrumbItem } from '@/types';
7+
import { PaginationInvoice } from '@/types/application/invoice';
8+
import { Head } from '@inertiajs/react';
9+
10+
interface MyInvoicesProps {
11+
invoices: PaginationInvoice;
12+
}
13+
14+
const breadcrumbs: BreadcrumbItem[] = [
15+
{
16+
title: 'My Invoices',
17+
href: myInvoices().url,
18+
},
19+
];
20+
21+
export default function MyInvoices({ invoices }: Readonly<MyInvoicesProps>) {
22+
return (
23+
<Layout breadcrumbs={breadcrumbs}>
24+
<Head title="My Invoices" />
25+
26+
<div className="px-4 py-6">
27+
<Heading title="My Invoices" description="Manage your invoices here." />
28+
29+
<section aria-label="Invoices Table">
30+
<DataTable columns={column} data={invoices.data} pagination={invoices} />
31+
</section>
32+
</div>
33+
</Layout>
34+
);
35+
}

0 commit comments

Comments
 (0)