mirror of
https://github.com/yangshun/tech-interview-handbook.git
synced 2025-08-02 11:18:00 +08:00

* [offers][feat] add filters for table and fix pagination * [offers][fix] display currency
45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import { Pagination } from '@tih/ui';
|
|
|
|
import type { Paging } from '~/types/offers';
|
|
|
|
type OffersTablePaginationProps = Readonly<{
|
|
endNumber: number;
|
|
handlePageChange: (page: number) => void;
|
|
pagination: Paging;
|
|
startNumber: number;
|
|
}>;
|
|
|
|
export default function OffersTablePagination({
|
|
endNumber,
|
|
pagination,
|
|
startNumber,
|
|
handlePageChange,
|
|
}: OffersTablePaginationProps) {
|
|
return (
|
|
<nav
|
|
aria-label="Table navigation"
|
|
className="flex items-center justify-between p-4">
|
|
<span className="text-sm font-normal text-gray-500 dark:text-gray-400">
|
|
Showing
|
|
<span className="font-semibold text-gray-900 dark:text-white">
|
|
{` ${startNumber} - ${endNumber} `}
|
|
</span>
|
|
{`of `}
|
|
<span className="font-semibold text-gray-900 dark:text-white">
|
|
{pagination.totalItems}
|
|
</span>
|
|
</span>
|
|
<Pagination
|
|
current={pagination.currentPage + 1}
|
|
end={pagination.numOfPages}
|
|
label="Pagination"
|
|
pagePadding={2}
|
|
start={1}
|
|
onSelect={(currPage) => {
|
|
handlePageChange(currPage - 1);
|
|
}}
|
|
/>
|
|
</nav>
|
|
);
|
|
}
|