import React from 'react'; import PropTypes from 'prop-types'; import { Button, Modal, ModalHeader, Input, ModalBody, ModalFooter, Form, FormGroup, Label, Alert } from 'reactstrap'; import { gettext } from '../../../utils/constants'; import UserSelect from '../../user-select'; const propTypes = { createGroup: PropTypes.func.isRequired, toggleDialog: PropTypes.func.isRequired }; class SysAdminCreateGroupDialog extends React.Component { constructor(props) { super(props); this.state = { groupName: '', ownerEmail: '', errMessage: '', isSubmitBtnActive: false }; this.newInput = React.createRef(); } handleRepoNameChange = (e) => { if (!e.target.value.trim()) { this.setState({isSubmitBtnActive: false}); } else { this.setState({isSubmitBtnActive: true}); } this.setState({groupName: e.target.value}); } handleSubmit = () => { let groupName = this.state.groupName.trim(); this.props.createGroup(groupName, this.state.ownerEmail); } handleSelectChange = (option) => { // option can be null this.setState({ ownerEmail: option ? option.email : '' }); } handleKeyPress = (e) => { if (e.key === 'Enter') { this.handleSubmit(); e.preventDefault(); } } toggle = () => { this.props.toggleDialog(); } componentDidMount() { this.newInput.focus(); } render() { return ( {gettext('New Group')}
{this.newInput = input;}} value={this.state.groupName} onChange={this.handleRepoNameChange} />
{this.state.errMessage && {this.state.errMessage}}
); } } SysAdminCreateGroupDialog.propTypes = propTypes; export default SysAdminCreateGroupDialog;