aboutsummaryrefslogtreecommitdiff
path: root/src/client/views
diff options
context:
space:
mode:
authorMelissa Zhang <mzhang19096@gmail.com>2020-07-28 19:00:02 -0700
committerMelissa Zhang <mzhang19096@gmail.com>2020-07-28 19:00:02 -0700
commit7157310f1b4d7a9f409c46f35c10c8db4a66b0af (patch)
tree803dfd71b412306731dae30f77e681180099b217 /src/client/views
parent48ae073706a501f4312a3e56f5e94e16a1183474 (diff)
scroll to annotations within dash, handle annotation editing in client
Diffstat (limited to 'src/client/views')
-rw-r--r--src/client/views/MainView.tsx19
-rw-r--r--src/client/views/linking/LinkMenuItem.tsx4
2 files changed, 5 insertions, 18 deletions
diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx
index 605b81506..64538d015 100644
--- a/src/client/views/MainView.tsx
+++ b/src/client/views/MainView.tsx
@@ -115,27 +115,14 @@ export class MainView extends React.Component {
}
});
});
- window.addEventListener("message", async (e: any) => { // listen for a new Hypothes.is annotation from an iframe inside Dash
- // start link from new Hypothes.is annotation
- // TODO: pass in placeholderId directly from client, move
- if (e.origin === "http://localhost:1050" && e.data.message === "annotation created") {
- console.log("DASH received message: annotation created");
- const response = await Hypothesis.getPlaceholderId("placeholder");
- const source = SelectionManager.SelectedDocuments()[0];
- response && runInAction(() => {
- DocumentLinksButton.AnnotationId = response.id;
- DocumentLinksButton.AnnotationUri = response.uri;
- DocumentLinksButton.StartLink = source;
- });
- }
- });
- document.addEventListener("linkAnnotationToDash", async (e: any) => { // listen for event from Hypothes.is plugin to to link an existing annotation to Dash
+ document.addEventListener("linkAnnotationToDash", async (e: any) => { // listen for event from Hypothes.is plugin to link an annotation to Dash
const annotationId = e.detail.id;
const annotationUri = e.detail.uri;
const sourceDoc = await Hypothesis.getSourceWebDoc(annotationUri);
console.log("sourceDoc: ", sourceDoc ? sourceDoc.title : "not found");
- const source = SelectionManager.SelectedDocuments()[0]; // TO BE FIXED, currently link just starts from whichever doc is selected
+ // TO BE FIXED, currently cannot start links from new webpages that don't exist in Dash
+ const source = sourceDoc || SelectionManager.SelectedDocuments()[0];
runInAction(() => {
DocumentLinksButton.AnnotationId = annotationId;
DocumentLinksButton.AnnotationUri = annotationUri;
diff --git a/src/client/views/linking/LinkMenuItem.tsx b/src/client/views/linking/LinkMenuItem.tsx
index cae90cd0c..8f7a2481d 100644
--- a/src/client/views/linking/LinkMenuItem.tsx
+++ b/src/client/views/linking/LinkMenuItem.tsx
@@ -154,14 +154,14 @@ export class LinkMenuItem extends React.Component<LinkMenuItemProps> {
DocumentLinksButton.EditLink = undefined;
LinkDocPreview.LinkInfo = undefined;
- // this.props.linkDoc.linksToAnnotation && (Doc.GetProto(this.props.destinationDoc).data = new WebField(StrCast(this.props.linkDoc.annotationUrl))); // if destination is a Hypothes.is annotation, redirect website to the annotation's URL to scroll to the annotation
if (this.props.linkDoc.followLinkLocation && this.props.linkDoc.followLinkLocation !== "Default") {
this.props.addDocTab(this.props.destinationDoc, StrCast(this.props.linkDoc.followLinkLocation));
} else {
DocumentManager.Instance.FollowLink(this.props.linkDoc, this.props.sourceDoc, doc => this.props.addDocTab(doc, "onRight"), false);
}
- this.props.linkDoc.linksToAnnotation && setTimeout(() => window.open(StrCast(this.props.linkDoc.annotationUrl), '_blank'), 1000); // open external page if hypothes.is annotation
+ // this.props.linkDoc.linksToAnnotation && setTimeout(() => window.open(StrCast(this.props.linkDoc.annotationUrl), '_blank'), 1000); // open external page if hypothes.is annotation
+ this.props.linkDoc.linksToAnnotation && Hypothesis.scrollToAnnotation(StrCast(this.props.linkDoc.annotationId));
}
@undoBatch