|
@@ -13,17 +13,17 @@ import {
|
|
|
Inner,
|
|
|
} from './styled';
|
|
|
|
|
|
+let pdfPage: any = null;
|
|
|
+
|
|
|
type Props = {
|
|
|
pageNum: number;
|
|
|
- renderingState?: RenderingStateType;
|
|
|
- getPage?: () => Promise<any>;
|
|
|
+ renderingState: RenderingStateType;
|
|
|
+ getPage: () => Promise<any>;
|
|
|
viewport: ViewportType;
|
|
|
- rotation?: number;
|
|
|
+ rotation: number;
|
|
|
scale: number;
|
|
|
- annotations?: React.ReactNode[];
|
|
|
- drawing?: React.ReactNode[];
|
|
|
- watermark?: WatermarkType;
|
|
|
- currentPage: number;
|
|
|
+ annotations: React.ReactNode[];
|
|
|
+ watermark: WatermarkType;
|
|
|
queryString: string;
|
|
|
matchesMap: MatchType[];
|
|
|
};
|
|
@@ -32,28 +32,26 @@ const PageView: React.FC<Props> = ({
|
|
|
pageNum,
|
|
|
getPage,
|
|
|
viewport,
|
|
|
- renderingState = 'PAUSED',
|
|
|
+ renderingState = 'LOADING',
|
|
|
rotation,
|
|
|
scale,
|
|
|
annotations = [],
|
|
|
watermark = {},
|
|
|
- currentPage,
|
|
|
queryString,
|
|
|
matchesMap,
|
|
|
}: Props) => {
|
|
|
const rootEle = useRef<HTMLDivElement | null>(null);
|
|
|
- const [pdfPage, setPdfPage] = useState<any>(null);
|
|
|
const [renderTask, setRenderTask] = useState<any>(null);
|
|
|
|
|
|
const renderPage = async (): Promise<any> => {
|
|
|
if (getPage) {
|
|
|
getPage().then(obj => {
|
|
|
- setPdfPage(obj);
|
|
|
+ pdfPage = obj;
|
|
|
|
|
|
- const setTextDivsWithPage = (elements: HTMLElement[]) => {
|
|
|
- if (matchesMap.length) {
|
|
|
+ const setTextDivs = (elements: HTMLElement[]) => {
|
|
|
+ if (queryString && matchesMap.length) {
|
|
|
matchesMap.forEach(item => {
|
|
|
- if (item.page === currentPage) {
|
|
|
+ if (pageNum === item.page) {
|
|
|
const id = `${item.page}_${item.index}`;
|
|
|
renderMatches(elements, getPage, item.index, queryString, id);
|
|
|
}
|
|
@@ -67,7 +65,7 @@ const PageView: React.FC<Props> = ({
|
|
|
pdfPage: obj,
|
|
|
viewport,
|
|
|
setRenderTask,
|
|
|
- setTextDivs: setTextDivsWithPage,
|
|
|
+ setTextDivs,
|
|
|
});
|
|
|
}
|
|
|
});
|
|
@@ -84,7 +82,7 @@ const PageView: React.FC<Props> = ({
|
|
|
if (renderingState === 'RENDERING') {
|
|
|
renderPage();
|
|
|
}
|
|
|
- }, [currentPage, renderingState, viewport]);
|
|
|
+ }, [renderingState, viewport, queryString, matchesMap]);
|
|
|
|
|
|
useEffect(() => {
|
|
|
if (queryString === '' && !matchesMap.length) {
|