Skip to content
Snippets Groups Projects
AddSolutionForm.js 2.99 KiB
import React, { Component } from 'react';
import { Modal, Button, Form, Input, TextArea, Icon, Header } from 'semantic-ui-react';
import { connect } from 'react-redux';
import { addSolution, writeSolution, writeSolutionFile, addDocument, clearWrite } from '../../actions/homework';

class AddSolutionForm extends Component {
  constructor(props) {
    super(props);
    this.state = {
      showModal: false,
    };
  }

  render() {
    const {
      name, description, file,
    } = this.props.newSolution;
    const task = this.props.taskid;
    const corrected = false;
    const accepted = false;
    const sentences = this.props.taskdesc.split('\n');
    const note = '';
    return (
      <Modal
        open={this.state.showModal}
        trigger={
          <Button basic color='blue' onClick={() => { this.setState({ showModal: true }); }}>
            <Icon name='external' />
            {this.props.tasktitle}
          </Button>
        }
      >
        <Modal.Header>
          Új megoldás beadása a(z) {this.props.tasktitle} nevű feladathoz:
        </Modal.Header>
        <Modal.Content>
          <Modal.Description style={{ marginBottom: '2em' }}>
            <Header as='h5'>Feladat leírása:</Header>
            {sentences.map(s => (<p>{s}</p>))}
          </Modal.Description>
          <Form>
            <Form.Field
              control={Input}
              label='Megoldás címe:'
              name='name'
              onChange={e => this.props.writeSolution(e)}
              value={name}
              placeholder='Adj meg egy címet a beadandó megoldásodnak...'
            />
            <Form.Field
              control={TextArea}
              label='Megoldás leírása:'
              name='description'
              onChange={e => this.props.writeSolution(e)}
              value={description}
              placeholder='Add meg a megoldás leírását...'
            />
            <Form.Field>
              <label>Fájl:</label>
              <Input type='file' onChange={e => this.props.writeSolutionFile(e)} />
            </Form.Field>
          </Form>
        </Modal.Content>
        <Modal.Actions>
          <Button
            inverted
            color='red'
            onClick={() => {
              this.setState({ showModal: false });
            }}
          >
            <Icon name='remove' /> Mégse
          </Button>
          <Button
            inverted
            color='green'
            onClick={() => {
              this.props.addSolution({
                 task, accepted, corrected, note, name, description, file,
               });
              this.setState({ showModal: false });
              }}
          >
            <Icon name='checkmark' /> Beadás
          </Button>
        </Modal.Actions>
      </Modal>
    );
  }
}

const mapStateToProps = ({ newSolution, homeworks, user }) => ({ newSolution, homeworks, user });

export default connect(mapStateToProps, {
  addSolution,
  writeSolution,
  writeSolutionFile,
  addDocument,
  clearWrite,
})(AddSolutionForm);