diff --git a/wax-prosemirror-components/src/components/notes/NoteEditorContainer.js b/wax-prosemirror-components/src/components/notes/NoteEditorContainer.js index 56f1019a952c64ac1ee861fca4e2226ae489b6c3..69e0ef6eb929bfb4ec77226fc20474bd91478810 100644 --- a/wax-prosemirror-components/src/components/notes/NoteEditorContainer.js +++ b/wax-prosemirror-components/src/components/notes/NoteEditorContainer.js @@ -6,14 +6,16 @@ import NoteNumber from "./NoteNumber"; const NoteEditorContainerStyled = styled.div` display: flex; flex-direction: row; - height: 50px; + min-height: 40px; width: 61%; margin-left: 14%; `; const NoteStyled = styled.div` display: flex; + flex-direction: column; width: 96%; + min-height: 40px; height: 100%; border: 1px solid black; `; diff --git a/wax-prosemirror-services/src/NoteService/Editor.js b/wax-prosemirror-services/src/NoteService/Editor.js index 7b84f6d26e37fd81d904be376ef994a7dfa46079..1ab70ad29368b1a1450c3eb3199f49566eb415bc 100644 --- a/wax-prosemirror-services/src/NoteService/Editor.js +++ b/wax-prosemirror-services/src/NoteService/Editor.js @@ -2,6 +2,7 @@ import React, { useEffect, useRef, useContext } from "react"; import { EditorView } from "prosemirror-view"; import { EditorState } from "prosemirror-state"; import { StepMap } from "prosemirror-transform"; +import { baseKeymap } from "prosemirror-commands"; import { keymap } from "prosemirror-keymap"; import { undo, redo } from "prosemirror-history"; import { WaxContext } from "wax-prosemirror-core/src/ioc-react"; @@ -18,16 +19,7 @@ export default ({ node, view, pos }) => { { state: EditorState.create({ doc: node, - plugins: [ - keymap({ - "Mod-z": () => undo(view.state, view.dispatch), - "Mod-y": () => redo(view.state, view.dispatch), - "Mod-u": () => - Commands.markActive( - noteView.state.config.schema.marks.underline - )(noteView.state) - }) - ] + plugins: [keymap(createKeyBindings())] }), // This is the magic part dispatchTransaction: tr => { @@ -43,13 +35,7 @@ export default ({ node, view, pos }) => { outerTr.step(steps[j].map(offsetMap)); } - // outerTr.setNodeMarkup(pos, view.state.schema.nodes.footnote, { - // title: noteView.docView.node.textContent - // }); - - if (outerTr.docChanged) { - view.dispatch(outerTr); - } + if (outerTr.docChanged) view.dispatch(outerTr); } }, handleDOMEvents: { @@ -66,6 +52,25 @@ export default ({ node, view, pos }) => { context.updateView({ [pos]: noteView }); }, []); + const createKeyBindings = () => { + const keys = getKeys(); + Object.keys(baseKeymap).forEach(key => { + keys[key] = baseKeymap[key]; + }); + return keys; + }; + + const getKeys = () => { + return { + "Mod-z": () => undo(view.state, view.dispatch), + "Mod-y": () => redo(view.state, view.dispatch), + "Mod-u": () => + Commands.markActive(noteView.state.config.schema.marks.underline)( + noteView.state + ) + }; + }; + if (context.view[pos]) { let state = context.view[pos].state; let start = node.content.findDiffStart(state.doc.content);