//@flow import React from "react"; import InputField from "../../components/forms/InputField"; import { SubmitButton, Button } from "../../components/buttons"; import { translate } from "react-i18next"; import type { Group } from "../types/Group"; import * as validator from "./groupValidation"; type Props = { t: string => string, submitForm: Group => void, loading?: boolean, group?: Group }; type State = { group: Group, userToAdd: string, nameValidationError: boolean }; class GroupForm extends React.Component { constructor(props) { super(props); this.state = { group: { name: "", description: "", _embedded: { members: [] }, _links: {}, members: [], type: "" }, nameValidationError: false, userToAdd: "" }; } componentDidMount() { const { group } = this.props if (group) { this.setState({group: {...group}}) } } isFalsy(value) { if (!value) { return true; } return false; } isValid = () => { const group = this.state.group; return !( this.state.nameValidationError || this.isFalsy(group.name) || this.isFalsy(group.description) ); }; submit = (event: Event) => { event.preventDefault(); if (this.isValid()) { this.props.submitForm(this.state.group); } }; render() { const { t, loading } = this.props; const group = this.state.group let nameField = null; if (!this.props.group) { nameField = ( ); } return (
{nameField} {this.state.group.members.map((user, index) => { return })}
{user}