From ff67cc92db9446f9cb619b2b2397843fd0eaaf12 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Wed, 6 Apr 2022 13:14:36 +0300 Subject: [PATCH] new tool --- wax-prosemirror-services/index.js | 1 + ...{DropComponent.js => DropDownComponent.js} | 4 +-- .../MultipleChoiceDropDown.js | 4 +-- .../DropDownComponent.js | 0 .../MultipleDropDown.js | 25 +++++++++++++++++++ .../MultipleDropDownToolGroupService.js | 10 ++++++++ 6 files changed, 40 insertions(+), 4 deletions(-) rename wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/{DropComponent.js => DropDownComponent.js} (96%) create mode 100644 wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/DropDownComponent.js create mode 100644 wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js create mode 100644 wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDownToolGroupService.js diff --git a/wax-prosemirror-services/index.js b/wax-prosemirror-services/index.js index a321de549..7e3c3d175 100644 --- a/wax-prosemirror-services/index.js +++ b/wax-prosemirror-services/index.js @@ -80,3 +80,4 @@ export { default as FillTheGapToolGroupService } from './src/WaxToolGroups/FillT export { default as MultipleChoiceDropDownToolGroupService } from './src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDownToolGroupService'; export { default as EssayToolGroupService } from './src/WaxToolGroups/EssayToolGroupService/EssayToolGroupService'; export { default as MatchingToolGroupService } from './src/WaxToolGroups/MatchingToolGroupService/MatchingToolGroupService'; +export { default as MultipleDropDownToolGroupService } from './src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDownToolGroupService'; diff --git a/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/DropComponent.js b/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/DropDownComponent.js similarity index 96% rename from wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/DropComponent.js rename to wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/DropDownComponent.js index 30bb239e4..da2a512a4 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/DropComponent.js +++ b/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/DropDownComponent.js @@ -38,7 +38,7 @@ const DropdownStyled = styled(Dropdown)` } `; -const DropComponent = ({ title, view, tools }) => { +const DropDownComponent = ({ title, view, tools }) => { const context = useContext(WaxContext); const { activeView, @@ -112,4 +112,4 @@ const DropComponent = ({ title, view, tools }) => { return MultipleDropDown; }; -export default DropComponent; +export default DropDownComponent; diff --git a/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDown.js b/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDown.js index 873493a43..dd9b97391 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDown.js +++ b/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDown.js @@ -3,7 +3,7 @@ import { injectable, inject } from 'inversify'; import { isEmpty } from 'lodash'; import { v4 as uuidv4 } from 'uuid'; import ToolGroup from '../../lib/ToolGroup'; -import DropComponent from './DropComponent'; +import DropDownComponent from './DropDownComponent'; @injectable() class MultipleChoiceDropDown extends ToolGroup { @@ -28,7 +28,7 @@ class MultipleChoiceDropDown extends ToolGroup { if (isEmpty(view)) return null; return ( // eslint-disable-next-line no-underscore-dangle - <DropComponent key="Multipe Drop Down" tools={this._tools} view={view} /> + <DropDownComponent key={uuidv4()} tools={this._tools} view={view} /> ); } } diff --git a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/DropDownComponent.js b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/DropDownComponent.js new file mode 100644 index 000000000..e69de29bb diff --git a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js new file mode 100644 index 000000000..fe0af2c32 --- /dev/null +++ b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js @@ -0,0 +1,25 @@ +import React from 'react'; +import { injectable, inject } from 'inversify'; +import { isEmpty } from 'lodash'; +import { v4 as uuidv4 } from 'uuid'; +import ToolGroup from '../../lib/ToolGroup'; +import DropDownComponent from './DropDownComponent'; + +@injectable() +class MultipleDropDown extends ToolGroup { + tools = []; + constructor() { + super(); + this.tools = []; + } + + renderTools(view) { + if (isEmpty(view)) return null; + return ( + // eslint-disable-next-line no-underscore-dangle + <DropDownComponent key={uuidv4()} tools={this._tools} view={view} /> + ); + } +} + +export default MultipleDropDown; diff --git a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDownToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDownToolGroupService.js new file mode 100644 index 000000000..46729db74 --- /dev/null +++ b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDownToolGroupService.js @@ -0,0 +1,10 @@ +import Service from '../../Service'; +import MultipleDropDown from './MultipleDropDown'; + +class MultipleDropDownToolGroupService extends Service { + register() { + this.container.bind('MultipleDropDown').to(MultipleDropDown); + } +} + +export default MultipleDropDownToolGroupService; -- GitLab