Skip to content
Snippets Groups Projects
Commit 3f8eb84c authored by chris's avatar chris
Browse files

create comment on footnote in progress

parent b2bdf4c6
No related branches found
No related tags found
1 merge request!181Fix comment on notes
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
import React, { useEffect, useRef, useContext, useMemo } from 'react'; import React, { useEffect, useRef, useContext, useMemo } from 'react';
import { filter } from 'lodash'; import { filter } from 'lodash';
import { EditorView } from 'prosemirror-view'; import { EditorView } from 'prosemirror-view';
import { EditorState, TextSelection } from 'prosemirror-state'; import { EditorState } from 'prosemirror-state';
import { StepMap } from 'prosemirror-transform'; import { StepMap } from 'prosemirror-transform';
import { baseKeymap } from 'prosemirror-commands'; import { baseKeymap } from 'prosemirror-commands';
import { keymap } from 'prosemirror-keymap'; import { keymap } from 'prosemirror-keymap';
...@@ -139,9 +139,9 @@ export default ({ node, view }) => { ...@@ -139,9 +139,9 @@ export default ({ node, view }) => {
); );
} }
} }
const MemorizedComponent = useMemo( const NoteEditorContainerComponent = useMemo(
() => <NoteEditorContainer ref={editorRef} />, () => <NoteEditorContainer ref={editorRef} />,
[], [],
); );
return <>{MemorizedComponent}</>; return <>{NoteEditorContainerComponent}</>;
}; };
...@@ -120,6 +120,19 @@ const isOnSameTextBlock = state => { ...@@ -120,6 +120,19 @@ const isOnSameTextBlock = state => {
}; };
const createComment = (state, dispatch, group, viewid) => { const createComment = (state, dispatch, group, viewid) => {
const {
selection: { $from, $to },
} = state;
let footnote = false;
state.doc.nodesBetween($from.pos, $to.pos, (node, from) => {
if (node.type.name === 'footnote') {
footnote = true;
createCommentOnFootnote(state, dispatch, group, viewid);
}
});
if (footnote) return;
toggleMark(state.config.schema.marks.comment, { toggleMark(state.config.schema.marks.comment, {
id: uuidv4(), id: uuidv4(),
group, group,
...@@ -128,6 +141,39 @@ const createComment = (state, dispatch, group, viewid) => { ...@@ -128,6 +141,39 @@ const createComment = (state, dispatch, group, viewid) => {
})(state, dispatch); })(state, dispatch);
}; };
const createCommentOnFootnote = (state, dispatch, group, viewid) => {
const {
selection: { $from, $to },
} = state;
console.log('dldldld', $from.pos, $to.pos);
const { content } = $from.parent;
console.log('dkdd', content.content);
content.content.forEach(contentNode => {
console.log(contentNode);
const $pos = state.doc.resolve($from.pos);
const commentStart = $from.pos - $pos.textOffset;
const commentEnd = commentStart + $pos.parent.child($pos.index()).nodeSize;
console.log(commentStart, commentEnd);
if (contentNode.type.name === 'footnote') {
console.log('footnote');
} else {
console.log('content');
}
});
// dispatch(
// state.tr.addMark(
// $from.pos,
// $to.pos,
// state.config.schema.marks.comment.create({
// id: uuidv4(),
// group,
// conversation: [],
// viewid,
// }),
// ),
// );
};
export default { export default {
setBlockType, setBlockType,
blockActive, blockActive,
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment