aboutsummaryrefslogtreecommitdiff
path: root/src/client/util/RichTextSchema.tsx
diff options
context:
space:
mode:
authorSam Wilkins <samwilkins333@gmail.com>2019-12-03 15:32:57 -0500
committerSam Wilkins <samwilkins333@gmail.com>2019-12-03 15:32:57 -0500
commit24f89a276005e25b1907f9236c5434f6c2e69746 (patch)
tree151302ef29d4fa43b5822ab8512f5009492ff180 /src/client/util/RichTextSchema.tsx
parent6b29c8177dae43f5d6a4ccdc2ca5dfc6f60e83eb (diff)
parent9a0787aafb623ce0aa043419533b51378f56e070 (diff)
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web
Diffstat (limited to 'src/client/util/RichTextSchema.tsx')
-rw-r--r--src/client/util/RichTextSchema.tsx23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/client/util/RichTextSchema.tsx b/src/client/util/RichTextSchema.tsx
index cb03892f3..3b786e61d 100644
--- a/src/client/util/RichTextSchema.tsx
+++ b/src/client/util/RichTextSchema.tsx
@@ -18,6 +18,7 @@ import { Transform } from "./Transform";
import React = require("react");
import { BoolCast, NumCast } from "../../new_fields/Types";
import { FormattedTextBox } from "../views/nodes/FormattedTextBox";
+import { any } from "bluebird";
const pDOM: DOMOutputSpecArray = ["p", 0], blockquoteDOM: DOMOutputSpecArray = ["blockquote", 0], hrDOM: DOMOutputSpecArray = ["hr"],
preDOM: DOMOutputSpecArray = ["pre", ["code", 0]], brDOM: DOMOutputSpecArray = ["br"], ulDOM: DOMOutputSpecArray = ["ul", 0];
@@ -670,20 +671,29 @@ export class DashDocCommentView {
this._collapsed.className = "formattedTextBox-inlineComment";
this._collapsed.id = "DashDocCommentView-" + node.attrs.docid;
this._view = view;
+ let targetNode = () => {
+ for (let i = getPos() + 1; i < view.state.doc.nodeSize; i++) {
+ let m = view.state.doc.nodeAt(i);
+ if (m && m.type === view.state.schema.nodes.dashDoc && m.attrs.docid === node.attrs.docid) {
+ return { node: m, pos: i } as { node: any, pos: number };
+ }
+ }
+ return undefined;
+ }
this._collapsed.onpointerdown = (e: any) => {
- const node = view.state.doc.nodeAt(getPos() + 1);
- view.dispatch(view.state.tr.
- setNodeMarkup(getPos() + 1, undefined, { ...node.attrs, hidden: node.attrs.hidden ? false : true })); // update the attrs
- setTimeout(() => node.attrs.hidden && DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowHighlight(dashDoc)), 100);
+ const target = targetNode();
+ if (target) {
+ view.dispatch(view.state.tr.
+ setNodeMarkup(target.pos, undefined, { ...target.node.attrs, hidden: target.node.attrs.hidden ? false : true })); // update the attrs
+ setTimeout(() => node.attrs.hidden && DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowHighlight(dashDoc)), 100);
+ }
};
this._collapsed.onpointerenter = (e: any) => {
- const node = view.state.doc.nodeAt(getPos() + 1);
DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowHighlight(dashDoc));
e.preventDefault();
e.stopPropagation();
};
this._collapsed.onpointerleave = (e: any) => {
- const node = view.state.doc.nodeAt(getPos() + 1);
DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowUnhighlight());
e.preventDefault();
e.stopPropagation();
@@ -720,7 +730,6 @@ export class DashDocView {
this._dashSpan.style.height = node.attrs.height;
this._dashSpan.style.position = "absolute";
this._dashSpan.style.display = "inline-block";
- this._dashSpan.style.borderWidth = "4";
const removeDoc = () => {
const pos = getPos();
const ns = new NodeSelection(view.state.doc.resolve(pos));