aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/pdf/PDFViewer.tsx
diff options
context:
space:
mode:
authorGeireann Lindfield Roberts <60007097+geireann@users.noreply.github.com>2020-10-18 00:56:36 +0800
committerGeireann Lindfield Roberts <60007097+geireann@users.noreply.github.com>2020-10-18 00:56:36 +0800
commitdc58a9b7962c7a2e7916345980fe17a745244231 (patch)
treec2ace02f53ba182c7da1e02a4a3a08f26020d402 /src/client/views/pdf/PDFViewer.tsx
parent3f5fb2e5dc258312e10698f3223239815959d7b6 (diff)
parent5816840af60f97a34318a52a5276482cab392496 (diff)
Merge branch 'presentation_v1' of https://github.com/browngraphicslab/Dash-Web into presentation_v1
Diffstat (limited to 'src/client/views/pdf/PDFViewer.tsx')
-rw-r--r--src/client/views/pdf/PDFViewer.tsx20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/client/views/pdf/PDFViewer.tsx b/src/client/views/pdf/PDFViewer.tsx
index d8be3defd..a8a6e8c33 100644
--- a/src/client/views/pdf/PDFViewer.tsx
+++ b/src/client/views/pdf/PDFViewer.tsx
@@ -10,7 +10,7 @@ import { InkTool } from "../../../fields/InkField";
import { List } from "../../../fields/List";
import { createSchema, makeInterface } from "../../../fields/Schema";
import { ScriptField } from "../../../fields/ScriptField";
-import { Cast, NumCast } from "../../../fields/Types";
+import { Cast, NumCast, StrCast } from "../../../fields/Types";
import { PdfField } from "../../../fields/URLField";
import { GetEffectiveAcl, TraceMobx } from "../../../fields/util";
import { addStyleSheet, addStyleSheetRule, clearStyleSheetRules, emptyFunction, emptyPath, intersectRect, returnZero, smoothScroll, Utils, OmitKeys } from "../../../Utils";
@@ -181,22 +181,24 @@ export class PDFViewer extends ViewBoxAnnotatableComponent<IViewerProps, PdfDocu
(this._showCover || this._showWaiting) && this.setupPdfJsViewer();
if (this.props.renderDepth !== -1 && !LinkDocPreview.TargetDoc && !FormattedTextBoxComment.linkDoc) {
const delay = this._mainCont.current ? 0 : 250; // wait for mainCont and try again to scroll
- setTimeout(() => this._mainCont.current && smoothScroll(1000, this._mainCont.current, Math.abs(scrollY || 0)), delay);
- setTimeout(() => { this.Document._scrollTop = scrollY; this.Document._scrollY = undefined; }, 1000 + delay);
+ const durationStr = StrCast(this.Document._viewTransition).match(/([0-9]*)ms/);
+ const duration = durationStr ? Number(durationStr[1]) : 1000;
+ setTimeout(() => this._mainCont.current && smoothScroll(duration, this._mainCont.current, Math.abs(scrollY || 0)), delay);
+ setTimeout(() => { this.Document._scrollTop = scrollY; this.Document._scrollY = undefined; }, duration + delay);
}
}
},
{ fireImmediately: true }
);
- this._disposers.scrollPY = reaction(
- () => Cast(this.Document._scrollPY, "number", null),
+ this._disposers.scrollPreviewY = reaction(
+ () => Cast(this.Document._scrollPreviewY, "number", null),
(scrollY) => {
if (scrollY !== undefined) {
(this._showCover || this._showWaiting) && this.setupPdfJsViewer();
if (this.props.renderDepth === -1 && scrollY >= 0) {
if (!this._mainCont.current) setTimeout(() => this._mainCont.current && smoothScroll(1000, this._mainCont.current, scrollY || 0));
else smoothScroll(1000, this._mainCont.current, scrollY || 0);
- this.Document._scrollPY = undefined;
+ this.Document._scrollPreviewY = undefined;
}
}
},
@@ -353,6 +355,7 @@ export class PDFViewer extends ViewBoxAnnotatableComponent<IViewerProps, PdfDocu
mainAnnoDocProto.y = Math.max(minY, 0);
mainAnnoDocProto.x = Math.max(maxX, 0);
mainAnnoDocProto.type = DocumentType.PDFANNO;
+ mainAnnoDocProto.text = this._selectionText;
mainAnnoDocProto.annotations = new List<Doc>(annoDocs);
}
mainAnnoDocProto.title = "Annotation on " + this.Document.title;
@@ -402,7 +405,7 @@ export class PDFViewer extends ViewBoxAnnotatableComponent<IViewerProps, PdfDocu
if (!LinkDocPreview.TargetDoc && !FormattedTextBoxComment.linkDoc) {
this.pageDelay && clearTimeout(this.pageDelay);
this.pageDelay = setTimeout(() => {
- this.Document._scrollY === undefined && (this.layoutDoc._scrollTop = this._mainCont.current!.scrollTop);
+ this.Document._scrollY === undefined && this._mainCont.current && (this.layoutDoc._scrollTop = this._mainCont.current.scrollTop);
this.pageDelay = undefined;
//this._pdfViewer && (this.Document._curPage = this._pdfViewer.currentPageNumber);
}, 1000);
@@ -543,8 +546,7 @@ export class PDFViewer extends ViewBoxAnnotatableComponent<IViewerProps, PdfDocu
if (rect) {
const scaleY = this._mainCont.current.offsetHeight / boundingRect.height;
const scaleX = this._mainCont.current.offsetWidth / boundingRect.width;
- if (rect.width !== this._mainCont.current.clientWidth &&
- (i === 0 || !intersectRect(clientRects[i], clientRects[i - 1]))) {
+ if (rect.width !== this._mainCont.current.clientWidth) {
const annoBox = document.createElement("div");
annoBox.className = "pdfViewerDash-annotationBox";
// transforms the positions from screen onto the pdf div