import { ButtonGroup } from 'react-bootstrap' import PDFToolbarButton from './pdf-toolbar-button' import { useTranslation } from 'react-i18next' import { useState, useEffect } from 'react' type PdfPageNumberControlProps = { setPage: (page: number) => void page: number totalPages: number } function PdfPageNumberControl({ setPage, page, totalPages, }: PdfPageNumberControlProps) { const { t } = useTranslation() const [pageInputValue, setPageInputValue] = useState(page.toString()) useEffect(() => { setPageInputValue(page.toString()) }, [page]) const handleSubmit = (event: React.SyntheticEvent) => { event.preventDefault() const parsedValue = Number(pageInputValue) if (parsedValue < 1) { setPage(1) setPageInputValue('1') } else if (parsedValue > totalPages) { setPage(totalPages) setPageInputValue(`${totalPages}`) } else { setPage(parsedValue) } } return ( <> setPage(page - 1)} /> setPage(page + 1)} />
event.target.select()} onBlur={handleSubmit} onChange={event => { const rawValue = event.target.value setPageInputValue(rawValue.replace(/\D/g, '')) }} />
/ {totalPages}
) } export default PdfPageNumberControl