From 42f15d351b1886259b968ff8726d90d6bca30756 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Wed, 17 Jan 2024 11:57:44 +0200 Subject: [PATCH] fix multiple chocie --- .../components/AnswerComponent.js | 1 + .../components/AnswerComponent.js | 1 + .../components/AnswerComponent.js | 1 + .../components/AnswerComponent.js | 1 + .../components/EditorComponent.js | 80 +++++++++++++++++-- .../multipleQuestionStyles.css | 2 +- 6 files changed, 79 insertions(+), 7 deletions(-) diff --git a/wax-questions-service/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/AnswerComponent.js b/wax-questions-service/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/AnswerComponent.js index e7005a3d1..f6d0ff46a 100644 --- a/wax-questions-service/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/AnswerComponent.js +++ b/wax-questions-service/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/AnswerComponent.js @@ -13,6 +13,7 @@ const Wrapper = styled.div` display: flex; flex-direction: row; width: 100%; + padding: 0px 0px 20px 20px; `; const InfoRow = styled.div` diff --git a/wax-questions-service/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/AnswerComponent.js b/wax-questions-service/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/AnswerComponent.js index 8c7af5e73..24ed51abc 100644 --- a/wax-questions-service/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/AnswerComponent.js +++ b/wax-questions-service/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/AnswerComponent.js @@ -13,6 +13,7 @@ const Wrapper = styled.div` display: flex; flex-direction: row; width: 100%; + padding: 0px 0px 20px 20px; `; const InfoRow = styled.div` diff --git a/wax-questions-service/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/AnswerComponent.js b/wax-questions-service/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/AnswerComponent.js index 818aca43e..e23cd6afd 100644 --- a/wax-questions-service/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/AnswerComponent.js +++ b/wax-questions-service/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/AnswerComponent.js @@ -13,6 +13,7 @@ const Wrapper = styled.div` display: flex; flex-direction: row; width: 100%; + padding: 0px 0px 20px 20px; `; const InfoRow = styled.div` diff --git a/wax-questions-service/src/MultipleChoiceQuestionService/components/AnswerComponent.js b/wax-questions-service/src/MultipleChoiceQuestionService/components/AnswerComponent.js index 46b205872..37ec01ca8 100644 --- a/wax-questions-service/src/MultipleChoiceQuestionService/components/AnswerComponent.js +++ b/wax-questions-service/src/MultipleChoiceQuestionService/components/AnswerComponent.js @@ -13,6 +13,7 @@ const Wrapper = styled.div` display: flex; flex-direction: row; width: 100%; + padding: 0px 0px 20px 20px; `; const InfoRow = styled.div` diff --git a/wax-questions-service/src/MultipleChoiceQuestionService/components/EditorComponent.js b/wax-questions-service/src/MultipleChoiceQuestionService/components/EditorComponent.js index e9de0a2d4..d4ea6c206 100644 --- a/wax-questions-service/src/MultipleChoiceQuestionService/components/EditorComponent.js +++ b/wax-questions-service/src/MultipleChoiceQuestionService/components/EditorComponent.js @@ -9,7 +9,12 @@ import { StepMap } from 'prosemirror-transform'; import { keymap } from 'prosemirror-keymap'; import { baseKeymap, chainCommands } from 'prosemirror-commands'; import { undo, redo } from 'prosemirror-history'; -import { WaxContext, ComponentPlugin } from 'wax-prosemirror-core'; +import { + WaxContext, + ComponentPlugin, + DocumentHelpers, + Icon, +} from 'wax-prosemirror-core'; import { splitListItem, liftListItem, @@ -18,13 +23,18 @@ import { import Placeholder from '../plugins/placeholder'; import FakeCursorPlugin from '../../MultipleDropDownService/plugins/FakeCursorPlugin'; +const DeleteArea = styled.div` + border-bottom: 3px solid #f5f5f7; + height: 30px; +`; + const EditorWrapper = styled.div` border: none; display: flex; flex: 2 1 auto; width: 100%; justify-content: left; - + padding: ${props => (props.showDelete ? '0px 20px 10px 20px' : `0px`)}; .ProseMirror { white-space: break-spaces; width: 100%; @@ -60,6 +70,21 @@ const EditorWrapper = styled.div` } `; +const ActionButton = styled.button` + background: transparent; + cursor: pointer; + margin-top: 16px; + border: none; + position: relative; + bottom: 14px; + float: right; +`; + +const StyledIconActionRemove = styled(Icon)` + height: 24px; + width: 24px; +`; + let WaxOverlays = () => true; const QuestionEditorComponent = ({ @@ -236,12 +261,55 @@ const QuestionEditorComponent = ({ } }; + const removeQuestion = () => { + console.log('delete'); + const allNodes = getNodes(context.pmViews.main); + + allNodes.forEach(singleNode => { + context.pmViews.main.dispatch( + context.pmViews.main.state.tr.delete( + singleNode.pos, + singleNode.pos + singleNode.node.nodeSize, + ), + ); + }); + }; + return ( - <EditorWrapper> - <div ref={editorRef} /> - <WaxOverlays activeViewId={questionId} /> - </EditorWrapper> + <> + {showDelete && ( + <DeleteArea> + <ActionButton + aria-label="delete this question" + onClick={removeQuestion} + type="button" + > + <StyledIconActionRemove name="deleteOutlinedQuestion" /> + </ActionButton> + </DeleteArea> + )} + <EditorWrapper showDelete={showDelete}> + <div ref={editorRef} /> + <WaxOverlays activeViewId={questionId} /> + </EditorWrapper> + </> ); }; export default QuestionEditorComponent; + +const getNodes = view => { + const allNodes = DocumentHelpers.findBlockNodes(view.state.doc); + const fillTheGapContainerNodes = []; + allNodes.forEach(node => { + if ( + node.node.type.name === 'multiple_choice_container' || + node.node.type.name === 'multiple_choice_single_correct_container' || + node.node.type.name === 'true_false_container' || + node.node.type.name === 'true_false_single_correct_container' + ) { + fillTheGapContainerNodes.push(node); + } + }); + return fillTheGapContainerNodes; +}; diff --git a/wax-questions-service/src/MultipleChoiceQuestionService/multipleQuestionStyles.css b/wax-questions-service/src/MultipleChoiceQuestionService/multipleQuestionStyles.css index 2e322bc92..f0817a82d 100644 --- a/wax-questions-service/src/MultipleChoiceQuestionService/multipleQuestionStyles.css +++ b/wax-questions-service/src/MultipleChoiceQuestionService/multipleQuestionStyles.css @@ -5,7 +5,7 @@ .true-false, .true-false-single-correct { border: 3px solid #f5f5f7; - padding: 20px; + /* padding: 20px; */ margin: 38px; /* margin: 12px 2px 12px 12px; */ /* padding-top: 0px; */ -- GitLab