From 77a053a124e2a7ae9c47409831ee466d6ee58dc3 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Wed, 1 Apr 2020 17:03:15 +0300
Subject: [PATCH] disable certain tools on notes

---
 .../src/components/link/LinkComponent.js                  | 8 ++++----
 wax-prosemirror-services/src/MenuService/Menu.js          | 6 ++----
 wax-prosemirror-services/src/NoteService/Editor.js        | 5 +++++
 3 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/wax-prosemirror-components/src/components/link/LinkComponent.js b/wax-prosemirror-components/src/components/link/LinkComponent.js
index 20ee3b09d..2d2e91357 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 f08b30ea9..3641e1493 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 54885fd02..9d2f4a010 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.
-- 
GitLab