26 lines
757 B
TypeScript
26 lines
757 B
TypeScript
import { useTranslation } from "react-i18next";
|
|
|
|
export function Pagination({
|
|
page,
|
|
totalPages,
|
|
onPageChange,
|
|
}: {
|
|
page: number;
|
|
totalPages: number;
|
|
onPageChange: (page: number) => void;
|
|
}) {
|
|
const { t } = useTranslation("common");
|
|
if (totalPages <= 1) return null;
|
|
return (
|
|
<nav className="pagination" aria-label={t("pagination.label")}>
|
|
<button type="button" onClick={() => onPageChange(page - 1)} disabled={page <= 1}>
|
|
{t("pagination.previous")}
|
|
</button>
|
|
<span aria-current="page">{t("pagination.pageOf", { page, total: totalPages })}</span>
|
|
<button type="button" onClick={() => onPageChange(page + 1)} disabled={page >= totalPages}>
|
|
{t("pagination.next")}
|
|
</button>
|
|
</nav>
|
|
);
|
|
}
|