Skip to content

Commit d5c3055

Browse files
committed
PDF Viewer: Refactor get page text out of loop
1 parent 7978a8a commit d5c3055

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

src/components/pdf-viewer.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
} from "@/components/ui/dialog";
1515
import type { PDFDocumentProxy } from "pdfjs-dist";
1616
import printJS from "print-js";
17-
import type { TextItem } from "pdfjs-dist/types/src/display/api";
17+
import type { TextItem, PDFPageProxy } from "pdfjs-dist/types/src/display/api";
1818
import { t } from "i18next";
1919

2020
interface PdfViewerProps {
@@ -194,13 +194,17 @@ const PdfViewer = ({
194194
term = normalizeText(term).toLowerCase();
195195
const results: SearchResult[] = [];
196196

197-
for (let pageIndex = 0; pageIndex < pdfDocument.numPages; pageIndex++) {
198-
const page = await pdfDocument.getPage(pageIndex + 1);
197+
async function getPageText(page: PDFPageProxy): Promise<string> {
199198
const textContent = await page.getTextContent();
200-
const pageText = textContent.items
199+
return textContent.items
201200
.filter((item): item is TextItem => "str" in item)
202201
.map((item: TextItem) => item.str)
203202
.join(" ");
203+
}
204+
205+
for (let pageIndex = 0; pageIndex < pdfDocument.numPages; pageIndex++) {
206+
const page = await pdfDocument.getPage(pageIndex - 1);
207+
const pageText = await getPageText(page);
204208

205209
let matchIndex = 0;
206210
let index = normalizeText(pageText).toLowerCase().indexOf(term);

0 commit comments

Comments
 (0)