require('./toolBar.less'); const React = require('react'); const { useState, useEffect } = React; const maxZoom = 300; const minZoom = 10; const ToolBar = ({ onZoomChange, currentPage, onPageChange, totalPages })=>{ const [state, setState] = useState({ currentPage : currentPage, totalPages : totalPages, zoomLevel : 100, pageNumberInput : currentPage, zoomInput : 100, }); useEffect(()=>{ onZoomChange(state.zoomLevel); }, [state.zoomLevel]); useEffect(()=>{ setState((prevState)=>({ ...prevState, currentPage : currentPage, pageNumberInput : currentPage, })); }, [currentPage]); const setZoomLevel = (direction)=>{ let zoomLevel = state.zoomLevel; if(direction === 'in') { zoomLevel += zoomStep; } else { zoomLevel -= zoomStep; } setState((prevState)=>({ ...prevState, zoomLevel : zoomLevel, zoomInput : zoomLevel, })); }; return (
{ const newZoomLevel = parseInt(e.target.value, 10); if(newZoomLevel !== state.zoomLevel) { setState((prevState)=>({ ...prevState, zoomLevel : newZoomLevel, zoomInput : 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;