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