Skip to content
Snippets Groups Projects
Commit 2adecba8 authored by chris's avatar chris
Browse files

feedback in progress

parent 741f7f97
No related branches found
No related tags found
1 merge request!308Answer nodeview
......@@ -23,12 +23,6 @@ export default class MultipleChoiceNodeView extends AbstractNodeView {
}
update(node) {
if (
node.attrs.correct !== this.node.attrs.correct ||
node.attrs.feedback !== this.node.attrs.feedback
)
return true;
// if (!node.sameMarkup(this.node)) return false;
this.node = node;
if (this.context.view[node.attrs.id]) {
......
/* eslint-disable react-hooks/exhaustive-deps */
import React, { useContext, useRef, useState } from 'react';
import React, { useContext, useRef, useState, useEffect } from 'react';
import styled from 'styled-components';
import { TextSelection } from 'prosemirror-state';
import { WaxContext } from 'wax-prosemirror-core';
import { DocumentHelpers } from 'wax-prosemirror-utilities';
const FeedBack = styled.div`
color: black;
......@@ -21,9 +22,20 @@ const FeedBackInput = styled.input`
export default ({ node, view, getPos }) => {
const context = useContext(WaxContext);
const [feedBack, setFeedBack] = useState(node.attrs.feedback);
const [feedBack, setFeedBack] = useState('');
const feedBackRef = useRef(null);
useEffect(() => {
const allNodes = getNodes(context.view.main);
allNodes.forEach(singNode => {
if (singNode.node.attrs.id === node.attrs.id) {
console.log('here', singNode.node.attrs.feedback);
if (singNode.node.attrs.feedback !== '')
setFeedBack(singNode.node.attrs.feedback);
}
});
}, [getNodes(context.view.main)]);
const handleKeyDown = e => {
e.stopPropagation();
if (e.key === 'Backspace') {
......@@ -72,3 +84,14 @@ export default ({ node, view, getPos }) => {
</FeedBack>
);
};
const getNodes = view => {
const allNodes = DocumentHelpers.findBlockNodes(view.state.doc);
const multipleChoiceNodes = [];
allNodes.forEach(node => {
if (node.node.type.name === 'multiple_choice') {
multipleChoiceNodes.push(node);
}
});
return multipleChoiceNodes;
};
......@@ -27,13 +27,13 @@ const CustomSwitch = ({ node, getPos }) => {
const [checked, setChecked] = useState(false);
useEffect(() => {
const allNodes = getNodes(context.view);
const allNodes = getNodes(context.view.main);
allNodes.forEach(singNode => {
if (singNode.node.attrs.id === node.attrs.id) {
setChecked(singNode.node.attrs.correct);
}
});
}, [getNodes(context.view)]);
}, [getNodes(context.view.main)]);
const handleChange = () => {
setChecked(!checked);
......@@ -58,7 +58,7 @@ const CustomSwitch = ({ node, getPos }) => {
};
const getNodes = view => {
const allNodes = DocumentHelpers.findBlockNodes(view.main.state.doc);
const allNodes = DocumentHelpers.findBlockNodes(view.state.doc);
const multipleChoiceNodes = [];
allNodes.forEach(node => {
if (node.node.type.name === 'multiple_choice') {
......
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