From a412783a9c57b7f77c5e37b41b19377559f08260 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Wed, 23 Nov 2022 11:21:50 +0200 Subject: [PATCH] rest of feedback --- .../components/FeedbackComponent.js | 79 ------------------- .../FillTheGapContainerComponent.js | 2 +- .../components/FeedbackComponent.js | 12 ++- .../components/FeedbackComponent.js | 79 ------------------- .../MultipleDropDownContainerComponent.js | 2 +- 5 files changed, 10 insertions(+), 164 deletions(-) delete mode 100644 wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js delete mode 100644 wax-prosemirror-services/src/MultipleDropDownService/components/FeedbackComponent.js diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js b/wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js deleted file mode 100644 index 2e1428577..000000000 --- a/wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js +++ /dev/null @@ -1,79 +0,0 @@ -import React, { useContext, useRef, useState } from 'react'; -import styled from 'styled-components'; -import { DocumentHelpers, WaxContext } from 'wax-prosemirror-core'; - -const FeedBack = styled.div` - color: black; - margin-top: 10px; - padding: 10px; -`; - -const FeedBackLabel = styled.span` - font-weight: 700; -`; - -const FeedBackInput = styled.input` - border: none; - border-bottom: 1px solid black; - display: flex; - width: 100%; - - &:focus { - outline: none; - } - - ::placeholder { - color: rgb(170, 170, 170); - font-style: italic; - } -`; - -export default ({ node, getPos, readOnly }) => { - const context = useContext(WaxContext); - const { - pmViews: { main }, - } = context; - const [feedBack, setFeedBack] = useState(node.attrs.feedback); - const feedBackRef = useRef(null); - - const feedBackInput = () => { - setFeedBack(feedBackRef.current.value); - const allNodes = getNodes(main); - allNodes.forEach(singleNode => { - if (singleNode.node.attrs.id === node.attrs.id) { - main.dispatch( - main.state.tr.setNodeMarkup(getPos(), undefined, { - ...singleNode.node.attrs, - feedback: feedBackRef.current.value, - }), - ); - } - }); - return false; - }; - - return ( - <FeedBack> - <FeedBackLabel>Feedback</FeedBackLabel> - <FeedBackInput - autoFocus="autoFocus" - disabled={readOnly} - onChange={feedBackInput} - placeholder="Insert feedback" - ref={feedBackRef} - type="text" - value={feedBack} - /> - </FeedBack> - ); -}; - -const getNodes = view => { - const allNodes = DocumentHelpers.findBlockNodes(view.state.doc); - const fillTheGapNodes = []; - allNodes.forEach(node => { - if (node.node.type.name === 'fill_the_gap_container') - fillTheGapNodes.push(node); - }); - return fillTheGapNodes; -}; diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/components/FillTheGapContainerComponent.js b/wax-prosemirror-services/src/FillTheGapQuestionService/components/FillTheGapContainerComponent.js index 4e2c74990..f3b7a2666 100644 --- a/wax-prosemirror-services/src/FillTheGapQuestionService/components/FillTheGapContainerComponent.js +++ b/wax-prosemirror-services/src/FillTheGapQuestionService/components/FillTheGapContainerComponent.js @@ -2,7 +2,7 @@ import React, { useContext } from 'react'; import { WaxContext, ComponentPlugin } from 'wax-prosemirror-core'; import styled from 'styled-components'; import ContainerEditor from './ContainerEditor'; -import FeedbackComponent from './FeedbackComponent'; +import FeedbackComponent from '../../MatchingService/components/FeedbackComponent'; const FillTheGapContainer = styled.div` border: 3px solid #f5f5f7; diff --git a/wax-prosemirror-services/src/MatchingService/components/FeedbackComponent.js b/wax-prosemirror-services/src/MatchingService/components/FeedbackComponent.js index e063a5825..b8b84760a 100644 --- a/wax-prosemirror-services/src/MatchingService/components/FeedbackComponent.js +++ b/wax-prosemirror-services/src/MatchingService/components/FeedbackComponent.js @@ -86,10 +86,14 @@ export default ({ node, getPos, readOnly }) => { const getNodes = view => { const allNodes = DocumentHelpers.findBlockNodes(view.state.doc); - const fillTheGapNodes = []; + const nodes = []; allNodes.forEach(node => { - if (node.node.type.name === 'matching_container') - fillTheGapNodes.push(node); + if ( + node.node.type.name === 'matching_container' || + node.node.type.name === 'fill_the_gap_container' || + node.node.type.name === 'multiple_drop_down_container' + ) + nodes.push(node); }); - return fillTheGapNodes; + return nodes; }; diff --git a/wax-prosemirror-services/src/MultipleDropDownService/components/FeedbackComponent.js b/wax-prosemirror-services/src/MultipleDropDownService/components/FeedbackComponent.js deleted file mode 100644 index a564e38c4..000000000 --- a/wax-prosemirror-services/src/MultipleDropDownService/components/FeedbackComponent.js +++ /dev/null @@ -1,79 +0,0 @@ -import React, { useContext, useRef, useState } from 'react'; -import styled from 'styled-components'; -import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core'; - -const FeedBack = styled.div` - color: black; - margin-top: 10px; - padding: 10px; -`; - -const FeedBackLabel = styled.span` - font-weight: 700; -`; - -const FeedBackInput = styled.input` - border: none; - border-bottom: 1px solid black; - display: flex; - width: 100%; - - &:focus { - outline: none; - } - - ::placeholder { - color: rgb(170, 170, 170); - font-style: italic; - } -`; - -export default ({ node, getPos, readOnly }) => { - const context = useContext(WaxContext); - const { - pmViews: { main }, - } = context; - const [feedBack, setFeedBack] = useState(node.attrs.feedback); - const feedBackRef = useRef(null); - - const feedBackInput = () => { - setFeedBack(feedBackRef.current.value); - const allNodes = getNodes(main); - allNodes.forEach(singleNode => { - if (singleNode.node.attrs.id === node.attrs.id) { - main.dispatch( - main.state.tr.setNodeMarkup(getPos(), undefined, { - ...singleNode.node.attrs, - feedback: feedBackRef.current.value, - }), - ); - } - }); - return false; - }; - - return ( - <FeedBack> - <FeedBackLabel>Feedback</FeedBackLabel> - <FeedBackInput - autoFocus="autoFocus" - disabled={readOnly} - onChange={feedBackInput} - placeholder="Insert feedback" - ref={feedBackRef} - type="text" - value={feedBack} - /> - </FeedBack> - ); -}; - -const getNodes = view => { - const allNodes = DocumentHelpers.findBlockNodes(view.state.doc); - const fillTheGapNodes = []; - allNodes.forEach(node => { - if (node.node.type.name === 'multiple_drop_down_container') - fillTheGapNodes.push(node); - }); - return fillTheGapNodes; -}; diff --git a/wax-prosemirror-services/src/MultipleDropDownService/components/MultipleDropDownContainerComponent.js b/wax-prosemirror-services/src/MultipleDropDownService/components/MultipleDropDownContainerComponent.js index d259987f8..8dab27986 100644 --- a/wax-prosemirror-services/src/MultipleDropDownService/components/MultipleDropDownContainerComponent.js +++ b/wax-prosemirror-services/src/MultipleDropDownService/components/MultipleDropDownContainerComponent.js @@ -2,7 +2,7 @@ import React, { useContext } from 'react'; import { WaxContext, ComponentPlugin } from 'wax-prosemirror-core'; import styled from 'styled-components'; import ContainerEditor from './ContainerEditor'; -import FeedbackComponent from './FeedbackComponent'; +import FeedbackComponent from '../../MatchingService/components/FeedbackComponent'; const MultipleDropDownpWrapper = styled.div` margin: 0px 38px 15px 38px; -- GitLab