import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { withStyles } from '@material-ui/core/styles'; import Button from '@material-ui/core/Button'; import Checkbox from '@material-ui/core/Checkbox'; import FormControlLabel from '@material-ui/core/FormControlLabel'; import List from '@material-ui/core/List'; import ListItem from '@material-ui/core/ListItem'; import ListItemText from '@material-ui/core/ListItemText'; import ListItemAvatar from '@material-ui/core/ListItemAvatar'; import ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'; import Avatar from '@material-ui/core/Avatar'; import IconButton from '@material-ui/core/IconButton'; import LockIcon from '@material-ui/icons/Lock'; import LockOpenIcon from '@material-ui/icons/LockOpen'; import DeleteIcon from '@material-ui/icons/Delete'; import SaveIcon from '@material-ui/icons/Save'; import { TextValidator, ValidatorForm } from 'react-material-ui-form-validator'; import { isNetworkOpen, networkSecurityMode } from '../constants/WiFiSecurityModes'; import isIP from '../validators/isIP'; import isHostname from '../validators/isHostname'; import optional from '../validators/optional'; import PasswordValidator from '../components/PasswordValidator'; const styles = theme => ({ textField: { width: "100%" }, checkboxControl: { width: "100%" }, button: { marginRight: theme.spacing(2), marginTop: theme.spacing(2), } }); class WiFiSettingsForm extends React.Component { componentWillMount() { ValidatorForm.addValidationRule('isIP', isIP); ValidatorForm.addValidationRule('isHostname', isHostname); ValidatorForm.addValidationRule('isOptionalIP', optional(isIP)); } renderSelectedNetwork() { const { selectedNetwork, deselectNetwork } = this.props; return ( {isNetworkOpen(selectedNetwork) ? : } ); } render() { const { classes, wifiSettings, selectedNetwork, handleValueChange, handleCheckboxChange, onSubmit, onReset } = this.props; return ( { selectedNetwork ? this.renderSelectedNetwork() : } { !isNetworkOpen(selectedNetwork) && } } label="Static IP Config?" /> { wifiSettings.static_ip_config && } ); } } WiFiSettingsForm.propTypes = { classes: PropTypes.object.isRequired, wifiSettings: PropTypes.object, deselectNetwork: PropTypes.func, selectedNetwork: PropTypes.object, onSubmit: PropTypes.func.isRequired, onReset: PropTypes.func.isRequired, handleValueChange: PropTypes.func.isRequired, handleCheckboxChange: PropTypes.func.isRequired }; export default withStyles(styles)(WiFiSettingsForm);