12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- import React from 'react';
- import { AnnotationType, RenderingStateType } from '../constants/type';
- import Page from '../components/Page';
- import Annotation from './Annotation';
- import { getPdfPage } from '../helpers/pdf';
- import useStore from '../store';
- type Props = {
- index: number;
- renderingState: RenderingStateType;
- };
- const PdfPage: React.FC<Props> = ({ index, renderingState }: Props) => {
- const [
- { viewport, pdf, rotation, annotations, scale, watermark },
- ] = useStore();
- const getAnnotationWithPage = (
- arr: AnnotationType[],
- pageNum: number
- ): React.ReactNode[] => {
- const result: React.ReactNode[] = [];
- arr.forEach((ele: AnnotationType, i: number) => {
- const page = ele.obj_attr ? ele.obj_attr.page + 1 : -1;
- if (page === pageNum) {
- result.push(
- <Annotation
- key={`annotations_${pageNum + i}`}
- scale={scale}
- index={i}
- {...ele}
- />
- );
- }
- });
- return result;
- };
- return (
- <Page
- pageNum={index}
- renderingState={renderingState}
- viewport={viewport}
- scale={scale}
- getPage={(): Promise<any> => getPdfPage(pdf, index)}
- rotation={rotation}
- watermark={watermark}
- annotations={getAnnotationWithPage(annotations, index)}
- />
- );
- };
- export default PdfPage;
|