diff --git a/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDown.js b/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDown.js index b5cdc67506902911cfd2176870c78309be3f008e..6a598196d639565d6747a8554a7dd188bc8304c8 100644 --- a/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDown.js +++ b/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDown.js @@ -1,7 +1,5 @@ import { injectable } from 'inversify'; -import { TextSelection } from 'prosemirror-state'; -import { AddMarkStep } from 'prosemirror-transform'; - +import { Fragment } from 'prosemirror-model'; import { v4 as uuidv4 } from 'uuid'; import Tools from '../../lib/Tools'; @@ -13,36 +11,12 @@ class CreateDropDown extends Tools { get run() { return (state, dispatch) => { - const { - tr, - selection: { from, to }, - } = state; - - console.log(tr); - tr.insertText('hi'); - - const selectionFrom = new TextSelection(state.doc.resolve(from)); - - const selectionTo = new TextSelection(state.doc.resolve(to + 2)); - - console.log(selectionFrom.$anchor, selectionTo.$head); - - state.tr.setSelection( - TextSelection.between(selectionFrom.$anchor, selectionTo.$head), - ); - - tr.step( - new AddMarkStep( - from, - to + 2, - state.config.schema.marks.multiple_drop_down_option.create({ - id: uuidv4(), - class: 'multiple-drop-down-option', - }), - ), + const content = Fragment.empty; + const createGap = state.config.schema.nodes.multiple_drop_down_option.create( + { id: uuidv4() }, + content, ); - - dispatch(tr); + dispatch(state.tr.replaceSelectionWith(createGap)); }; } diff --git a/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDownService.js b/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDownService.js index e7b9367f24df935dae1241631acf6cccfb898f40..baf381edecdc76f4136d9d89c56fde5632dcd634 100644 --- a/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDownService.js +++ b/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDownService.js @@ -22,11 +22,11 @@ class CreateDropDownService extends Service { } register() { - const CreateMark = this.container.get('CreateMark'); + const CreateNode = this.container.get('CreateNode'); const addPortal = this.container.get('AddPortal'); this.container.bind('CreateDropDown').to(CreateDropDown); - CreateMark({ + CreateNode({ multiple_drop_down_option: multipleDropDownOptionNode, }); diff --git a/wax-prosemirror-services/src/MultipleDropDownService/schema/multipleDropDownOptionNode.js b/wax-prosemirror-services/src/MultipleDropDownService/schema/multipleDropDownOptionNode.js index 8a3df45387e6f4546e2106917d8a9baf4778c6c5..d8297a6f0cc906d65fe0bea441b3a68b1e6c74cf 100644 --- a/wax-prosemirror-services/src/MultipleDropDownService/schema/multipleDropDownOptionNode.js +++ b/wax-prosemirror-services/src/MultipleDropDownService/schema/multipleDropDownOptionNode.js @@ -2,9 +2,9 @@ const multipleDropDownOptionNode = { attrs: { class: { default: 'multiple-drop-down-option' }, id: { default: '' }, - isfirst: { default: false }, - answer: { default: {} }, - options: { default: [] }, + // isfirst: { default: false }, + // answer: { default: {} }, + // options: { default: [] }, }, group: 'inline questions', content: 'text*',