Skip to content
Snippets Groups Projects
HHMI.js 1.86 KiB
Newer Older
chris's avatar
chris committed
import React, { useState } from 'react';
import styled from 'styled-components';

import { Wax } from 'wax-prosemirror-core';

chris's avatar
chris committed
import { HhmiLayout } from './layout';
import { config } from './config';

const renderImage = file => {
  const reader = new FileReader();
  return new Promise((accept, fail) => {
    reader.onload = () => accept(reader.result);
    reader.onerror = () => fail(reader.error);
    // Some extra delay to make the asynchronicity visible
    setTimeout(() => reader.readAsDataURL(file), 150);
  });
};

chris's avatar
chris committed
const SubmitButton = styled.button`
  position: absolute;
  left: 600px;
  top: 16px;
`;
chris's avatar
chris committed

chris's avatar
chris committed
const t = `<p class="paragraph"></p>
<div id="" class="multiple-choice">
   <div class="multiple-choice-question" id="38de8538-647a-489d-8474-f92d0d256c32">
      <p class="paragraph">question </p>
   </div>
   <div class="multiple-choice-option" id="debb868e-bbfe-4ba2-bf93-c963153ff791" correct="false" answer="false" feedback="feedback 1">
      <p class="paragraph">answer 1</p>
   </div>
   <div class="multiple-choice-option" id="810bcf10-4fcb-4d1e-9dab-ce35cbd28527" correct="true" answer="false" feedback="feedback 2">
      <p class="paragraph">answer 2</p>
   </div>
</div>
<div id="" class="fill-the-gap"><p class="paragraph">some text with a <span id="e88faa82-ff79-4b5a-9aa5-cb10b4236e98" class="fill-the-gap">gap</span> and </p></div>
`;
chris's avatar
chris committed

const Hhmi = () => {
chris's avatar
chris committed
  const [submited, isSubmited] = useState(false);
  const submitQuestions = () => {
    isSubmited(true);
  };

  return (
    <>
chris's avatar
chris committed
      <SubmitButton onClick={submitQuestions}>Submit</SubmitButton>
      <Wax
        config={config}
        autoFocus
chris's avatar
chris committed
        customValues={{ showFeedBack: submited }}
        fileUpload={file => renderImage(file)}
chris's avatar
chris committed
        value={t}
chris's avatar
chris committed
        // readonly
chris's avatar
chris committed
        layout={HhmiLayout}
chris's avatar
chris committed
        onChange={source => console.log(source)}
      />
    </>
  );
};

export default Hhmi;