mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 06:00:55 +00:00
58 lines
1.8 KiB
TypeScript
58 lines
1.8 KiB
TypeScript
import { ChevronLeft, ChevronRight } from 'lucide-react';
|
|
|
|
interface PaginationProps {
|
|
currentPage: number;
|
|
totalPages: number;
|
|
onPageChange: (page: number) => void;
|
|
}
|
|
|
|
export default function Pagination({ currentPage, totalPages, onPageChange }: PaginationProps) {
|
|
if (totalPages <= 1) {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<div className="flex items-center justify-between border-t border-border bg-card px-4 py-3 sm:px-6">
|
|
<div className="flex flex-1 justify-between sm:hidden">
|
|
<button
|
|
onClick={() => onPageChange(currentPage - 1)}
|
|
disabled={currentPage === 1}
|
|
className="btn btn-secondary disabled:opacity-50"
|
|
>
|
|
Previous
|
|
</button>
|
|
<button
|
|
onClick={() => onPageChange(currentPage + 1)}
|
|
disabled={currentPage === totalPages}
|
|
className="btn btn-secondary disabled:opacity-50"
|
|
>
|
|
Next
|
|
</button>
|
|
</div>
|
|
<div className="hidden sm:flex sm:flex-1 sm:items-center sm:justify-between">
|
|
<div>
|
|
<p className="text-sm text-foreground">
|
|
Page <span className="font-medium">{currentPage}</span> of{' '}
|
|
<span className="font-medium">{totalPages}</span>
|
|
</p>
|
|
</div>
|
|
<div className="flex gap-2">
|
|
<button
|
|
onClick={() => onPageChange(currentPage - 1)}
|
|
disabled={currentPage === 1}
|
|
className="btn btn-secondary disabled:opacity-50"
|
|
>
|
|
<ChevronLeft className="h-4 w-4" />
|
|
</button>
|
|
<button
|
|
onClick={() => onPageChange(currentPage + 1)}
|
|
disabled={currentPage === totalPages}
|
|
className="btn btn-secondary disabled:opacity-50"
|
|
>
|
|
<ChevronRight className="h-4 w-4" />
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
} |