import React, { useState } from 'react';
import styled from 'styled-components';

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

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);
  });
};

const ReadOnlyButton = styled.button`
  position: absolute;
  left: 550px;
  top: 16px;
`;

const SubmitButton = styled.button`
  position: absolute;
  left: 650px;
  top: 16px;
`;

const t = `<p class="paragraph"></p>
<div id="d4fa43fc-3a92-4591-a8a4-e6271e42fc323" 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="d4fa43fc-3a92-4591-a8a4-e6271e42fc02" class="fill-the-gap" feedback="some feedback"><p class="paragraph">first <span id="16ec8f33-db5b-4839-9567-8aa73b776bcf" class="fill-the-gap" anser="">answer1; answer2; answer3</span> second <span id="72f23a71-e774-4834-acba-f357afb6a243" class="fill-the-gap" anser="">answer 4; answer5;</span></p></div>`;

const Hhmi = () => {
  const [submited, isSubmited] = useState(false);
  const [readOnly, isReadOnly] = useState(false);

  const readOnlyQuestions = () => {
    isReadOnly(true);
  };

  const submitQuestions = () => {
    isSubmited(true);
    isReadOnly(true);
  };

  return (
    <>
      <ReadOnlyButton onClick={readOnlyQuestions}>Read Only</ReadOnlyButton>
      <SubmitButton onClick={submitQuestions}>Submit</SubmitButton>
      <Wax
        config={config}
        autoFocus
        customValues={{ showFeedBack: submited }}
        fileUpload={file => renderImage(file)}
        value={t}
        readonly={readOnly}
        layout={HhmiLayout}
        // onChange={source => console.log(source)}
      />
    </>
  );
};

export default Hhmi;