Skip to content
Snippets Groups Projects
multipleChoiceNode.js 731 B
Newer Older
chris's avatar
chris committed
import { v4 as uuidv4 } from 'uuid';

chris's avatar
chris committed
const multipleChoiceNode = {
chris's avatar
chris committed
  attrs: {
chris's avatar
chris committed
    class: { default: 'multiple-choice-option' },
chris's avatar
chris committed
    id: { default: uuidv4() },
chris's avatar
chris committed
    correct: { default: false },
chris's avatar
chris committed
    feedback: { default: '' },
chris's avatar
chris committed
  },
chris's avatar
chris committed
  group: 'block questions',
chris's avatar
chris committed
  content: 'block*',
chris's avatar
chris committed
  defining: true,

chris's avatar
chris committed
  // atom: true,
chris's avatar
chris committed
  parseDOM: [
    {
chris's avatar
chris committed
      tag: 'div.multiple-choice-option',
chris's avatar
chris committed
      getAttrs(dom) {
        return {
          id: dom.getAttribute('id'),
chris's avatar
chris committed
          class: dom.getAttribute('class'),
chris's avatar
chris committed
          correct: JSON.parse(dom.getAttribute('correct').toLowerCase()),
chris's avatar
chris committed
          feedback: dom.getAttribute('feedback'),
chris's avatar
chris committed
        };
      },
chris's avatar
chris committed
    },
  ],
chris's avatar
chris committed
  toDOM: node => ['div', node.attrs, 0],
chris's avatar
chris committed
};

export default multipleChoiceNode;