diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/EditorComponent.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/EditorComponent.js index c8afcc4362623b7df6834b3fca77528ece6d21c7..0cd32b264155f130a9acb8c5ccb232b569eac94e 100644 --- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/EditorComponent.js +++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/EditorComponent.js @@ -102,6 +102,7 @@ const EditorComponent = ({ node, view, getPos }) => { }), // This is the magic part dispatchTransaction, + disallowedTools: [], handleDOMEvents: { mousedown: () => { context.updateView({}, questionId); diff --git a/wax-prosemirror-components/src/components/SaveButton.js b/wax-prosemirror-components/src/components/SaveButton.js index 986f192d6bf193d9596cf8a99b081fafd5120852..2d91b820f7f6013a89740e4cd1571d61a7474e9f 100644 --- a/wax-prosemirror-components/src/components/SaveButton.js +++ b/wax-prosemirror-components/src/components/SaveButton.js @@ -19,8 +19,7 @@ const SaveButton = ({ view = {}, item }) => { const [isSaving, setIsSaving] = useState(false); const handleMouseDown = (e, editorState, editorDispatch) => { - // eslint-disable-next-line no-underscore-dangle - // view._props.onChange(state.doc.content); + // view.props.onChange(state.doc.content); setIsSaving(true); setTimeout(() => { setIsSaving(false); diff --git a/wax-prosemirror-components/src/components/tables/CreateTable.js b/wax-prosemirror-components/src/components/tables/CreateTable.js index 6dcac6066f7f1c8236502ad3ed23029b8dc25424..78b1453da14c55c6c5abce20c0794a3e0200ab27 100644 --- a/wax-prosemirror-components/src/components/tables/CreateTable.js +++ b/wax-prosemirror-components/src/components/tables/CreateTable.js @@ -24,20 +24,22 @@ const DropWrapper = styled.div` const CreateTable = ({ view = {}, item }) => { const { view: { main }, + activeView, activeViewId, } = useContext(WaxContext); if (item.onlyOnMain) { view = main; } - const { state } = view; const { icon, run, select, title } = item; const ref = useRef(); const [isOpen, setIsOpen] = useState(false); const dropComponent = ( <InsertTableTool - onGridSelect={colRows => handleSelect(colRows, view.state, view.dispatch)} + onGridSelect={colRows => + handleSelect(colRows, activeView.state, activeView.dispatch) + } /> ); @@ -46,7 +48,7 @@ const CreateTable = ({ view = {}, item }) => { setIsOpen(!isOpen); }; - let isDisabled = !select(state, activeViewId); + let isDisabled = !select(activeView, activeViewId); const isEditable = main.props.editable(editable => { return editable; diff --git a/wax-prosemirror-core/src/WaxView.js b/wax-prosemirror-core/src/WaxView.js index 101389c3d8e787bc6382964e085a8f6cfa36b953..b11ef63931eca863b76fc8a0b2c73fbbaf206232 100644 --- a/wax-prosemirror-core/src/WaxView.js +++ b/wax-prosemirror-core/src/WaxView.js @@ -68,6 +68,7 @@ export default props => { editable: () => !readonly, state: EditorState.create(options), dispatchTransaction, + disallowedTools: [], user, scrollMargin: 200, scrollThreshold: 200, diff --git a/wax-prosemirror-services/src/NoteService/Editor.js b/wax-prosemirror-services/src/NoteService/Editor.js index a823668eb4fb122634821d76b30858f1735bc4e4..21b868fcf6d3888c221f009892a031b0edabc433 100644 --- a/wax-prosemirror-services/src/NoteService/Editor.js +++ b/wax-prosemirror-services/src/NoteService/Editor.js @@ -37,6 +37,7 @@ export default ({ node, view }) => { }), // This is the magic part dispatchTransaction, + disallowedTools: ['tables'], handleDOMEvents: { blur: () => { if (context.view[noteId]) { diff --git a/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js b/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js index d2214f8cdd9f2f022a10d8b1a9d41d7c45724aba..135b4a9f8346df3c2ac67830ac4c69c08cc35bb1 100644 --- a/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js +++ b/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js @@ -1,5 +1,5 @@ -import Service from '../../Service'; import { tableNodes, goToNextCell } from 'prosemirror-tables'; +import Service from '../../Service'; import Table from './Table'; class InsertTableService extends Service { @@ -14,6 +14,7 @@ class InsertTableService extends Service { register() { this.container.bind('Table').to(Table); + // eslint-disable-next-line camelcase const { table, table_row, table_cell, table_header } = tableNodes({ tableGroup: 'block', cellContent: 'block+', diff --git a/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js b/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js index 5ab8f5f4276d663d8d93326dc902a7dcdf3e6d2b..b3e6bf75b320e8d184e5f32a534007c961c9a7ab 100644 --- a/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js +++ b/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js @@ -19,8 +19,9 @@ class Table extends Tools { }; } - select = (state, activeViewId) => { - if (activeViewId !== 'main') return false; + select = (view, activeViewId) => { + const { disallowedTools } = view.props; + if (disallowedTools.includes('tables')) return false; return true; };