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