diff --git a/wax-prosemirror-core/src/WaxView.js b/wax-prosemirror-core/src/WaxView.js index 2ca97051b8ea6f06733d73d017d025f2e05d9830..43147ae4e154e5329697da9b3cc76fe9b17ca413 100644 --- a/wax-prosemirror-core/src/WaxView.js +++ b/wax-prosemirror-core/src/WaxView.js @@ -32,8 +32,6 @@ export default props => { state: EditorState.create(options), dispatchTransaction, user, - scrollMargin: 200, - scrollThreshold: 200, handleDOMEvents: { blur: onBlur ? view => { diff --git a/wax-prosemirror-services/src/NoteService/Editor.js b/wax-prosemirror-services/src/NoteService/Editor.js index 79d3f2766bd41c470d5e0454813b1c5ee9fb9875..039b1b13c4211e6a794c4286078ece499d0942a2 100644 --- a/wax-prosemirror-services/src/NoteService/Editor.js +++ b/wax-prosemirror-services/src/NoteService/Editor.js @@ -19,6 +19,7 @@ export default ({ node, view }) => { const noteId = node.attrs.id; let noteView; let clickInNote = false; + let typing = false; // eslint-disable-next-line react/destructuring-assignment const isEditable = context.view.main.props.editable(editable => { return editable; @@ -45,6 +46,9 @@ export default ({ node, view }) => { if (noteView.hasFocus()) noteView.focus(); }, }, + handleTextInput: (editorView, from, to, text) => { + typing = true; + }, transformPasted: slice => { return transformPasted(slice, noteView); }, @@ -98,6 +102,12 @@ export default ({ node, view }) => { context.updateView({}, noteId); }, 20); + const findReplace = context.app.PmPlugins.get('findAndReplacePlugin'); + const matches = findReplace.getState(noteView.state).allMatches; + if (matches.length > 0 && !typing) context.updateView({}, noteId); + typing = false; + // UNTIL HERE + if (!tr.getMeta('fromOutside')) { const outerTr = view.state.tr; const offsetMap = StepMap.offset(noteFound[0].pos + 1); @@ -108,7 +118,7 @@ export default ({ node, view }) => { } if (outerTr.docChanged) - view.dispatch(outerTr.setMeta('outsideView', 'notes')); + view.dispatch(outerTr.setMeta('outsideView', noteId)); } };