import React from 'react'; import { useTranslation } from 'react-i18next'; import Icon from '../Icon'; import Pagination from '../Pagination'; import SelectBox from '../SelectBox'; import Divider from '../Divider'; import { scaleCheck } from '../../helpers/utility'; import { Container, ToggleButton } from './styled'; import dataset from './data'; type Props = { totalPage: number; currentPage: number; setCurrentPage: (num: number) => void; changeScale: (num: number | string) => void; changeRotate: (num: number) => void; scale: number; rotation: number; viewport: ViewportType; displayMode: string; toggleDisplayMode: (state: string) => void; handleHandClick: () => void; }; const Toolbar: React.FC = ({ totalPage, currentPage, setCurrentPage, changeScale, changeRotate, scale, rotation, viewport, displayMode, toggleDisplayMode, handleHandClick, }: Props) => { const { t } = useTranslation('toolbar'); const data = dataset(t); const handleClockwiseRotation = (): void => { const r = rotation + 90; changeRotate(r); }; const handleCounterclockwiseRotation = (): void => { const r = rotation - 90; changeRotate(r); }; const handleScaleSelect = async ( selected: SelectOptionType ): Promise => { if (selected.child === 'fit') { const screenWidth = window.document.body.offsetWidth - 288; const originPdfWidth = viewport.width / scale; const rate = screenWidth / originPdfWidth; changeScale(rate); } else { changeScale(scaleCheck(selected.child as number)); } }; const handleZoomIn = (): void => { changeScale(scaleCheck(scale * 100 + 10)); }; const handleZoomOut = (): void => { changeScale(scaleCheck(scale * 100 - 10)); }; return ( <> {displayMode === 'normal' ? ( { toggleDisplayMode('full'); }} /> ) : ( { toggleDisplayMode('normal'); }} /> )} ); }; export default Toolbar;