import React, { Component } from "react" import PropTypes from "prop-types" import Select from "components/Select" import cn from "classnames" class Form extends Component { static propTypes = { changeset: PropTypes.shape({ assignment_id: PropTypes.number.isRequired, billable: PropTypes.bool.isRequired, date: PropTypes.string.isRequired, task_id: PropTypes.number.isRequired, description: PropTypes.string, remote_id: PropTypes.string, remote_service: PropTypes.string, remote_url: PropTypes.string, seconds: PropTypes.number, hours: PropTypes.string, }).isRequired, errors: PropTypes.object, projects: PropTypes.array.isRequired, onChange: PropTypes.func.isRequired, onSubmit: PropTypes.func.isRequired, } static defaultProps = { inline: true, } isValid = () => { const { changeset } = this.props return ["assignment_id", "task_id"].map(prop => changeset[prop]).every(Boolean) } handleTextareaKeyDown = event => { const { onSubmit } = this.props if (event.key === "Enter") { event.preventDefault() this.isValid() && onSubmit(event) } } render() { const { projects, changeset, errors, onChange, onSubmit } = this.props const project = Select.findOptionByValue(projects, changeset.assignment_id) return (
"Zuerst Projekt wählen"} /> {errors.assignment_id ? (
{errors.assignment_id.join("; ")}
) : null} {errors.task_id ?
{errors.task_id.join("; ")}
: null}
{errors.hours ?
{errors.hours.join("; ")}
: null}