123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import React from 'react';
- import ThumbnailsComponent from '../components/ThumbnailViewer';
- import useActions from '../actions';
- import useStore from '../store';
- const Thumbnails: React.FC = () => {
- const [
- { pdf, totalPage, currentPage, navbarState, viewport },
- dispatch,
- ] = useStore();
- const { setNavbar } = useActions(dispatch);
- const getPdfImage = async (pageNum: number): Promise<any> => {
- let dataUrl = '';
- const page = await pdf.getPage(pageNum);
- const canvas = document.createElement('canvas');
- const context: CanvasRenderingContext2D = canvas.getContext(
- '2d'
- ) as CanvasRenderingContext2D;
- canvas.height = viewport.height;
- canvas.width = viewport.width;
- const renderContext = {
- canvasContext: context,
- viewport,
- };
- const renderTask = page.render(renderContext);
- await renderTask.promise;
- dataUrl = canvas.toDataURL();
- canvas.remove();
- return dataUrl;
- };
- return (
- pdf && (
- <ThumbnailsComponent
- getPdfImage={getPdfImage}
- totalPage={totalPage}
- currentPage={currentPage}
- isActive={navbarState === 'thumbnails'}
- close={(): void => {
- setNavbar('');
- }}
- />
- )
- );
- };
- export default Thumbnails;
|