diff --git a/wax-prosemirror-components/src/components/link/LinkComponent.js b/wax-prosemirror-components/src/components/link/LinkComponent.js index 20ee3b09dd300807726c63dc9d43c1829c18110c..2d2e91357bc2f1464ac938b6e2e67d2a1d57f2d2 100644 --- a/wax-prosemirror-components/src/components/link/LinkComponent.js +++ b/wax-prosemirror-components/src/components/link/LinkComponent.js @@ -21,8 +21,8 @@ const Button = styled.button` const LinkComponent = ({ mark, setPosition, position }) => { const href = mark ? mark.attrs.href : null, linkMark = mark ? mark : null, - { view: { main } } = useContext(WaxContext), - { state, dispatch } = main, + { view: { main }, activeView } = useContext(WaxContext), + { state, dispatch } = activeView, ref = useRef(null), linkInput = useRef(null), [addButtonText, setButtonText] = useState("Create"), @@ -46,12 +46,12 @@ const LinkComponent = ({ mark, setPosition, position }) => { .removeMark(mark.from, mark.to, state.schema.marks.link) .addMark(mark.from, mark.to, state.schema.marks.link.create({ href })) ); - main.focus(); + activeView.focus(); }; const removeLink = () => { dispatch(state.tr.removeMark(mark.from, mark.to, state.schema.marks.link)); - main.focus(); + activeView.focus(); }; const handleKeyDown = event => { diff --git a/wax-prosemirror-services/src/MenuService/Menu.js b/wax-prosemirror-services/src/MenuService/Menu.js index f08b30ea9e19f5d8ae355fd8b33a1238afad6678..3641e149322f24063ea862b852e11cab06a1c086 100644 --- a/wax-prosemirror-services/src/MenuService/Menu.js +++ b/wax-prosemirror-services/src/MenuService/Menu.js @@ -27,11 +27,9 @@ export default class Menu { render() { return () => { - const { - view: { main } - } = useContext(WaxContext); + const { view: { main }, activeView } = useContext(WaxContext); const Bar = useMemo(() => ( - <MenuWrapper items={this.toolGroups} view={main || {}} /> + <MenuWrapper items={this.toolGroups} view={activeView || {}} /> )); return <>{Bar}</>; }; diff --git a/wax-prosemirror-services/src/NoteService/Editor.js b/wax-prosemirror-services/src/NoteService/Editor.js index 54885fd028f798a3475b0f06ee5f6a9492625d12..9d2f4a0108f6f89eee1bc6254cf8d8e78d3b0ee4 100644 --- a/wax-prosemirror-services/src/NoteService/Editor.js +++ b/wax-prosemirror-services/src/NoteService/Editor.js @@ -59,6 +59,11 @@ export default ({ node, view }) => { }, handleDOMEvents: { mousedown: () => { + context.updateActiveView({ + activeView: context.view[noteId], + activeViewId: noteId + }); + // Kludge to prevent issues due to the fact that the whole // footnote is node-selected (and thus DOM-selected) when // the parent editor is focused.