diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestion.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestion.js index bf84c981f8c7c76baf734b4adc6f5dfb378d16f3..1cb916c2047156b22c0026caa9a80a751a887490 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 ce3a4f1e3c600fb5b5d702323ab3f5e7c6041804..5e40c26b5e182d1c9a1abc7e04b1a47123602afb 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 d45d543c5abbdf6325c5c5a98a4fb10b911deb71..14f7c44e6d8772075e4f4b76d4c7e6b4190377b3 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 f490f7623b364de489af889fc860f7172cd1a90a..b6a816e841846e4baeb6a8c5872299c9e2588a80 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 993287546a73582e6260b843c9769cda1c384816..36e60381576af5b81ece1ca53388f7b029368af2 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 e6966e185aef035665924390440f714eb248a0fe..285148f7666d42fc46d3093d5c774e16a81a9299 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 828e4436c8c56b3fab8d4ebf3d13597be2fa2454..776f5315f48b375797ba4a5b023fb9dcccd636b1 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 7a0f67cdca76938635e5c8d3c99d3253c64ce049..d0b2119a51e8828f1ecd736e32f273ee145767cb 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; };