Skip to content
Snippets Groups Projects
Commit 9fd8dd47 authored by chris's avatar chris
Browse files

save feedback

parent 326b0e3e
No related branches found
No related tags found
1 merge request!307Answer nodeview
......@@ -114,6 +114,7 @@ const EditorComponent = ({ node, view, getPos }) => {
),
);
context.updateView({}, questionId);
console.log(context.view.main.state.selection);
// Kludge to prevent issues due to the fact that the whole
// footnote is node-selected (and thus DOM-selected) when
// the parent editor is focused.
......@@ -139,7 +140,7 @@ const EditorComponent = ({ node, view, getPos }) => {
},
questionId,
);
questionView.focus();
if (questionView.hasFocus()) questionView.focus();
}, []);
const dispatchTransaction = tr => {
......
......@@ -86,7 +86,7 @@ export default ({ node, view, getPos }) => {
return editable;
});
const [feadBack, setFeedBack] = useState('');
const [feadBack, setFeedBack] = useState(node.attrs.feedback);
const feedBackRef = useRef(null);
......@@ -95,6 +95,7 @@ export default ({ node, view, getPos }) => {
};
const handleKeyDown = e => {
e.stopPropagation();
if (e.key === 'Backspace') {
context.view.main.dispatch(
context.view.main.state.tr.setSelection(
......@@ -145,6 +146,25 @@ export default ({ node, view, getPos }) => {
});
};
const saveFeedBack = () => {
setTimeout(() => {
context.view.main.dispatch(
context.view.main.state.tr.setNodeMarkup(getPos(), undefined, {
...node.attrs,
feedback: feadBack,
}),
);
}, 150);
};
const onFocus = () => {
context.view.main.dispatch(
context.view.main.state.tr.setSelection(
new TextSelection(context.view.main.state.tr.doc.resolve(0)),
),
);
};
const questionNumber = 1;
const readOnly = !isEditable;
const showAddIcon = true;
......@@ -171,6 +191,8 @@ export default ({ node, view, getPos }) => {
ref={feedBackRef}
type="text"
value={feadBack}
onBlur={saveFeedBack}
onFocus={onFocus}
/>
</FeedBack>
</QuestionWrapper>
......
......@@ -24,6 +24,7 @@ const createEmptyParagraph = (context, newAnswerId) => {
),
),
);
context.view[newAnswerId].focus();
};
export default {
......
......@@ -2,7 +2,7 @@ const multipleChoiceNode = {
attrs: {
id: { default: '' },
correct: { default: false },
feedback: { default: false },
feedback: { default: '' },
},
group: 'block',
content: 'block*',
......
......@@ -111,6 +111,10 @@ export default css`
}
}
.mutiple-choice.ProseMirror-selectednode {
outline: none;
}
sup,
sub {
line-height: 0;
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment