import React from 'react'; import PropTypes from 'prop-types'; import { TextValidator, ValidatorForm } from 'react-material-ui-form-validator'; import { withStyles } from '@material-ui/core/styles'; import Button from '@material-ui/core/Button'; import FormControlLabel from '@material-ui/core/FormControlLabel'; import Switch from '@material-ui/core/Switch'; import FormGroup from '@material-ui/core/FormGroup'; import DialogTitle from '@material-ui/core/DialogTitle'; import Dialog from '@material-ui/core/Dialog'; import DialogContent from '@material-ui/core/DialogContent'; import DialogActions from '@material-ui/core/DialogActions'; import PasswordValidator from '../components/PasswordValidator'; const styles = theme => ({ textField: { width: "100%" }, button: { margin: theme.spacing(0.5) } }); class UserForm extends React.Component { constructor(props) { super(props); this.formRef = React.createRef(); } componentWillMount() { ValidatorForm.addValidationRule('uniqueUsername', this.props.uniqueUsername); } submit = () => { this.formRef.current.submit(); } render() { const { classes, user, creating, handleValueChange, handleCheckboxChange, onDoneEditing, onCancelEditing } = this.props; return ( {creating ? 'Add' : 'Modify'} User } label="Admin?" /> ); } } UserForm.propTypes = { classes: PropTypes.object.isRequired, user: PropTypes.object.isRequired, creating: PropTypes.bool.isRequired, onDoneEditing: PropTypes.func.isRequired, onCancelEditing: PropTypes.func.isRequired, uniqueUsername: PropTypes.func.isRequired, handleValueChange: PropTypes.func.isRequired, handleCheckboxChange: PropTypes.func.isRequired }; export default withStyles(styles)(UserForm);