import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { type ChangeEvent, type KeyboardEvent, useState } from "react"; import { MdNavigateBefore, MdNavigateNext } from "react-icons/md"; export const Pagination = (props: { pageNumber: number; pageAmount: number; onGotoNextPage: (nextPage: number) => any; onGotoPrevPage: (prevPage: number) => any; onJumpToSpecPage: (pageNum: number) => any; }) => { const [pageNumberInput, setPageNumberInput] = useState(props.pageNumber.toString()); const handleEnterKeyJump = (event: KeyboardEvent) => { setPageNumberInput(pageNumberInput.replace(/[^\d]/g, "")); if (Number.parseInt(pageNumberInput) > 0 && Number.parseInt(pageNumberInput) < props.pageAmount + 1) { (event.key === "Go" || event.key === "Enter") && props.onJumpToSpecPage(Number.parseInt(pageNumberInput)); return; } }; const handleInputPageNumber = (event: ChangeEvent) => { setPageNumberInput(event.target.value); }; return (
{props.pageNumber !== 1 && ( )}
{` / ${props.pageAmount}`}
{props.pageNumber !== props.pageAmount && ( )}
); };