51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import { Link } from '@inertiajs/react';
|
|
|
|
export type SupplyPageInfo = {
|
|
current_page: number;
|
|
last_page: number;
|
|
total: number;
|
|
prev_page_url: string | null;
|
|
next_page_url: string | null;
|
|
};
|
|
|
|
export default function SupplyPagination({
|
|
page,
|
|
label = 'Paginação dos registos de fornecimento',
|
|
}: {
|
|
page?: SupplyPageInfo | null;
|
|
label?: string;
|
|
}) {
|
|
if (!page) return null;
|
|
return (
|
|
<nav
|
|
aria-label={label}
|
|
className="my-4 flex flex-wrap items-center justify-between gap-3 text-sm"
|
|
>
|
|
<span>
|
|
{page.total} registos · Página {page.current_page} de{' '}
|
|
{page.last_page}
|
|
</span>
|
|
<div className="flex gap-4">
|
|
{page.prev_page_url && (
|
|
<Link
|
|
preserveScroll
|
|
className="underline"
|
|
href={page.prev_page_url}
|
|
>
|
|
Anterior
|
|
</Link>
|
|
)}
|
|
{page.next_page_url && (
|
|
<Link
|
|
preserveScroll
|
|
className="underline"
|
|
href={page.next_page_url}
|
|
>
|
|
Seguinte
|
|
</Link>
|
|
)}
|
|
</div>
|
|
</nav>
|
|
);
|
|
}
|