require('./toolBar.less'); const React = require('react'); const { useState, useEffect } = React; const _ = require('lodash') const maxZoom = 300; const minZoom = 10; const ToolBar = ({ onZoomChange, currentPage, onPageChange, totalPages })=>{ const [state, setState] = useState({ currentPage : currentPage, totalPages : totalPages, zoomLevel : 100, pageNumberInput : currentPage, }); useEffect(()=>{ onZoomChange(state.zoomLevel); }, [state.zoomLevel]); useEffect(()=>{ setState((prevState)=>({ ...prevState, currentPage : currentPage, pageNumberInput : currentPage, })); }, [currentPage]); const setZoomLevel = (delta)=>{ const zoomChange = _.clamp(state.zoomLevel + delta, minZoom, maxZoom); setState((prevState)=>({ ...prevState, zoomLevel : zoomChange })); }; return (
{ const newZoomLevel = parseInt(e.target.value, 10); if(newZoomLevel !== state.zoomLevel) { setState((prevState)=>({ ...prevState, zoomLevel : newZoomLevel })); onZoomChange(newZoomLevel); } }} />
handleInputChange(e.target.value, 'page')} onBlur={(e)=>{ parseInt(state.pageNumberInput) === state.currentPage || onPageChange(parseInt(state.pageNumberInput) - 1); }} onKeyPress={(e)=>{ if(e.key === 'Enter') { e.target.blur(); } }} />
); }; module.exports = ToolBar;