Skip to content
Snippets Groups Projects
MatchingContainerComponent.js 2.29 KiB
Newer Older
chris's avatar
chris committed
/* eslint-disable react/prop-types */
import React, { useContext } from 'react';
import { WaxContext } from 'wax-prosemirror-core';
chris's avatar
chris committed
import { Icon } from 'wax-prosemirror-components';
chris's avatar
chris committed
import styled from 'styled-components';
import FeedbackComponent from './FeedbackComponent';

const MatchingContainer = styled.div`
  border: 3px solid #f5f5f7;
  margin-bottom: 30px;
`;

const MatchingWrapper = styled.div`
chris's avatar
chris committed
  display: flex;
  flex-direction: column;
chris's avatar
chris committed
  margin-bottom: ;
  margin: 0px 38px 15px 38px;
chris's avatar
chris committed
  margin-top: 10px;
`;
chris's avatar
chris committed

chris's avatar
chris committed
const QuestionWrapper = styled.div`
  display: flex;
  flex-direction: row;
`;
const LeftArea = styled.div`
  display: flex;
`;
const RightArea = styled.div`
  display: flex;
`;
const CreateOptions = styled.div`
  display: flex;
chris's avatar
chris committed
  margin-top: 10px;
chris's avatar
chris committed
  border: 1px solid black;
`;

const ActionButton = styled.button`
  border: none;
  background: transparent;
  cursor: pointer;
`;

const StyledIconAction = styled(Icon)`
  height: 24px;
  width: 24px;
chris's avatar
chris committed
`;

export default ({ node, view, getPos }) => {
  const context = useContext(WaxContext);
  const {
    pmViews: { main },
  } = context;

  const customProps = main.props.customValues;

  const isEditable = main.props.editable(editable => {
    return editable;
  });

  const readOnly = !isEditable;

chris's avatar
chris committed
  const addOption = () => {};

chris's avatar
chris committed
  return (
    <MatchingWrapper>
      <span>Matching</span>
      <MatchingContainer className="matching">
chris's avatar
chris committed
        <QuestionWrapper>
          <LeftArea>
            <input type="text"></input>
            {!readOnly && (
              <ActionButton
                onClick={() => addOption(node.attrs.id)}
                type="button"
              >
                <StyledIconAction name="plusSquare" />
              </ActionButton>
            )}
          </LeftArea>
          <RightArea>Right</RightArea>
        </QuestionWrapper>
        <QuestionWrapper>
          <LeftArea>
            <input type="text"></input>
          </LeftArea>
          <RightArea>Right</RightArea>
        </QuestionWrapper>
        <CreateOptions>Options</CreateOptions>
chris's avatar
chris committed
        {!(readOnly && !customProps.showFeedBack) && (
          <FeedbackComponent
            getPos={getPos}
            node={node}
            readOnly={readOnly}
            view={view}
          />
        )}
      </MatchingContainer>
    </MatchingWrapper>
  );
};