From 20051684cd8d13837fc8dc441eb69fb4ac7dc7e4 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Wed, 5 Feb 2020 15:36:30 +0200 Subject: [PATCH] multiple paragraphs in notes --- .../components/notes/NoteEditorContainer.js | 4 +- .../src/NoteService/Editor.js | 39 +++++++++++-------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/wax-prosemirror-components/src/components/notes/NoteEditorContainer.js b/wax-prosemirror-components/src/components/notes/NoteEditorContainer.js index 56f1019a9..69e0ef6eb 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 7b84f6d26..1ab70ad29 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); -- GitLab