From c73eb2ad354c549aaa50b788e03f50b855c0c46d Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Fri, 6 Aug 2021 18:31:01 +0300
Subject: [PATCH] more tools

---
 .../MultipleChoiceQuestion.js                        |  2 +-
 .../components/EditorComponent.js                    |  2 +-
 wax-prosemirror-components/src/components/Button.js  |  7 +++++--
 .../src/CodeBlockService/CodeBlockTool.js            |  5 +++--
 .../src/ListsService/BulletListService/BulletList.js |  5 +++--
 .../src/ListsService/LiftService/Lift.js             |  6 ++++--
 .../ListsService/ListItemService/ListItemService.js  | 12 +++++-------
 .../ListsService/OrderedListService/OrderedList.js   |  7 ++++---
 8 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestion.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestion.js
index bf84c981f..1cb916c20 100644
--- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestion.js
+++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestion.js
@@ -41,7 +41,7 @@ class MultipleChoiceQuestion extends Tools {
             {},
           );
       if (!wrapping) return false;
-      if (dispatch) tr.wrap(range, wrapping).scrollIntoView();
+      tr.wrap(range, wrapping).scrollIntoView();
 
       /* create First Option */
       const newAnswerId = uuidv4();
diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/EditorComponent.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/EditorComponent.js
index ce3a4f1e3..5e40c26b5 100644
--- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/EditorComponent.js
+++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/EditorComponent.js
@@ -102,7 +102,7 @@ const EditorComponent = ({ node, view, getPos }) => {
         }),
         // This is the magic part
         dispatchTransaction,
-        disallowedTools: ['images'],
+        disallowedTools: ['images', 'lists', 'lift'],
         handleDOMEvents: {
           mousedown: () => {
             context.view[activeViewId].dispatch(
diff --git a/wax-prosemirror-components/src/components/Button.js b/wax-prosemirror-components/src/components/Button.js
index d45d543c5..14f7c44e6 100644
--- a/wax-prosemirror-components/src/components/Button.js
+++ b/wax-prosemirror-components/src/components/Button.js
@@ -26,7 +26,8 @@ const Button = ({ view = {}, item }) => {
   };
 
   const isActive = !!(
-    active(state, activeViewId) && select(state, activeViewId)
+    active(activeView.state, activeViewId) &&
+    select(state, activeViewId, activeView)
   );
 
   let isDisabled = !select(state, activeViewId, activeView);
@@ -39,7 +40,9 @@ const Button = ({ view = {}, item }) => {
         disabled={isDisabled}
         iconName={icon}
         label={label}
-        onMouseDown={e => handleMouseDown(e, view.state, view.dispatch)}
+        onMouseDown={e =>
+          handleMouseDown(e, activeView.state, activeView.dispatch)
+        }
         title={title}
       />
     ),
diff --git a/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js b/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js
index f490f7623..b6a816e84 100644
--- a/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js
+++ b/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js
@@ -14,8 +14,9 @@ class CodeBlockTool extends Tools {
     };
   }
 
-  select = (state, activeViewId) => {
-    if (activeViewId !== 'main') return false;
+  select = (state, activeViewId, activeView) => {
+    const { disallowedTools } = activeView.props;
+    if (disallowedTools.includes('codeBlock')) return false;
     return true;
   };
 
diff --git a/wax-prosemirror-services/src/ListsService/BulletListService/BulletList.js b/wax-prosemirror-services/src/ListsService/BulletListService/BulletList.js
index 993287546..36e603815 100644
--- a/wax-prosemirror-services/src/ListsService/BulletListService/BulletList.js
+++ b/wax-prosemirror-services/src/ListsService/BulletListService/BulletList.js
@@ -24,8 +24,9 @@ class BulletList extends Tools {
     };
   }
 
-  select = (state, activeViewId) => {
-    if (activeViewId !== 'main') return false;
+  select = (state, activeViewId, activeView) => {
+    const { disallowedTools } = activeView.props;
+    if (disallowedTools.includes('lists')) return false;
     return true;
   };
 
diff --git a/wax-prosemirror-services/src/ListsService/LiftService/Lift.js b/wax-prosemirror-services/src/ListsService/LiftService/Lift.js
index e6966e185..285148f76 100644
--- a/wax-prosemirror-services/src/ListsService/LiftService/Lift.js
+++ b/wax-prosemirror-services/src/ListsService/LiftService/Lift.js
@@ -9,9 +9,11 @@ class Lift extends Tools {
   icon = 'indentDecrease';
   name = 'Lift';
 
-  select(state) {
+  select = (state, activeViewId, activeView) => {
+    const { disallowedTools } = activeView.props;
+    if (disallowedTools.includes('lift')) return false;
     return lift(state);
-  }
+  };
 
   get run() {
     return lift;
diff --git a/wax-prosemirror-services/src/ListsService/ListItemService/ListItemService.js b/wax-prosemirror-services/src/ListsService/ListItemService/ListItemService.js
index 828e4436c..776f5315f 100644
--- a/wax-prosemirror-services/src/ListsService/ListItemService/ListItemService.js
+++ b/wax-prosemirror-services/src/ListsService/ListItemService/ListItemService.js
@@ -1,16 +1,14 @@
-import Service from "../../Service";
-import { listItemNode } from "wax-prosemirror-schema";
+import { listItemNode } from 'wax-prosemirror-schema';
+import Service from '../../Service';
 
 class ListItemService extends Service {
-  boot() {}
-
   register() {
-    const createNode = this.container.get("CreateNode");
+    const createNode = this.container.get('CreateNode');
     createNode(
       {
-        list_item: listItemNode
+        list_item: listItemNode,
       },
-      { toWaxSchema: true }
+      { toWaxSchema: true },
     );
   }
 }
diff --git a/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedList.js b/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedList.js
index 7a0f67cdc..d0b2119a5 100644
--- a/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedList.js
+++ b/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedList.js
@@ -3,7 +3,7 @@ import { wrapInList } from 'prosemirror-schema-list';
 import { Commands } from 'wax-prosemirror-utilities';
 import Tools from '../../lib/Tools';
 
-export default 
+export default
 @injectable()
 class OrderedList extends Tools {
   title = 'Wrap in ordered list';
@@ -22,8 +22,9 @@ class OrderedList extends Tools {
     };
   }
 
-  select = (state, activeViewId) => {
-    if (activeViewId !== 'main') return false;
+  select = (state, activeViewId, activeView) => {
+    const { disallowedTools } = activeView.props;
+    if (disallowedTools.includes('lists')) return false;
     return true;
   };
 
-- 
GitLab