UNPKG

@activelylearn/material-ui

Version:

Material-UI's workspace package

168 lines (160 loc) 5.51 kB
import React from 'react'; import PropTypes from 'prop-types'; import { withStyles } from '@material-ui/core/styles'; import Input from '@material-ui/core/Input'; import InputLabel from '@material-ui/core/InputLabel'; import MenuItem from '@material-ui/core/MenuItem'; import FormHelperText from '@material-ui/core/FormHelperText'; import FormControl from '@material-ui/core/FormControl'; import Select from '@material-ui/core/Select'; const styles = theme => ({ root: { display: 'flex', flexWrap: 'wrap', }, formControl: { margin: theme.spacing.unit, minWidth: 120, }, selectEmpty: { marginTop: theme.spacing.unit * 2, }, }); class SimpleSelect extends React.Component { state = { age: '', name: 'hai', }; handleChange = event => { this.setState({ [event.target.name]: event.target.value }); }; render() { const { classes } = this.props; return ( <form className={classes.root} autoComplete="off"> <FormControl className={classes.formControl}> <InputLabel htmlFor="age-simple">Age</InputLabel> <Select value={this.state.age} onChange={this.handleChange} inputProps={{ name: 'age', id: 'age-simple', }} > <MenuItem value=""> <em>None</em> </MenuItem> <MenuItem value={10}>Ten</MenuItem> <MenuItem value={20}>Twenty</MenuItem> <MenuItem value={30}>Thirty</MenuItem> </Select> </FormControl> <FormControl className={classes.formControl}> <InputLabel htmlFor="age-helper">Age</InputLabel> <Select value={this.state.age} onChange={this.handleChange} input={<Input name="age" id="age-helper" />} > <MenuItem value=""> <em>None</em> </MenuItem> <MenuItem value={10}>Ten</MenuItem> <MenuItem value={20}>Twenty</MenuItem> <MenuItem value={30}>Thirty</MenuItem> </Select> <FormHelperText>Some important helper text</FormHelperText> </FormControl> <FormControl className={classes.formControl}> <Select value={this.state.age} onChange={this.handleChange} displayEmpty name="age" className={classes.selectEmpty} > <MenuItem value=""> <em>None</em> </MenuItem> <MenuItem value={10}>Ten</MenuItem> <MenuItem value={20}>Twenty</MenuItem> <MenuItem value={30}>Thirty</MenuItem> </Select> <FormHelperText>Without label</FormHelperText> </FormControl> <FormControl className={classes.formControl} disabled> <InputLabel htmlFor="name-disabled">Name</InputLabel> <Select value={this.state.name} onChange={this.handleChange} input={<Input name="name" id="name-disabled" />} > <MenuItem value=""> <em>None</em> </MenuItem> <MenuItem value="hai">Hai</MenuItem> <MenuItem value="olivier">Olivier</MenuItem> <MenuItem value="kevin">Kevin</MenuItem> </Select> <FormHelperText>Disabled</FormHelperText> </FormControl> <FormControl className={classes.formControl} error> <InputLabel htmlFor="name-error">Name</InputLabel> <Select value={this.state.name} onChange={this.handleChange} name="name" renderValue={value => `⚠️ - ${value}`} input={<Input id="name-error" />} > <MenuItem value=""> <em>None</em> </MenuItem> <MenuItem value="hai">Hai</MenuItem> <MenuItem value="olivier">Olivier</MenuItem> <MenuItem value="kevin">Kevin</MenuItem> </Select> <FormHelperText>Error</FormHelperText> </FormControl> <FormControl className={classes.formControl}> <InputLabel htmlFor="name-readonly">Name</InputLabel> <Select value={this.state.name} onChange={this.handleChange} input={<Input name="name" id="name-readonly" readOnly />} > <MenuItem value=""> <em>None</em> </MenuItem> <MenuItem value="hai">Hai</MenuItem> <MenuItem value="olivier">Olivier</MenuItem> <MenuItem value="kevin">Kevin</MenuItem> </Select> <FormHelperText>Read only</FormHelperText> </FormControl> <FormControl className={classes.formControl}> <InputLabel htmlFor="age-simple">Age</InputLabel> <Select value={this.state.age} onChange={this.handleChange} input={<Input name="age" id="age-simple" />} autoWidth > <MenuItem value=""> <em>None</em> </MenuItem> <MenuItem value={10}>Ten</MenuItem> <MenuItem value={20}>Twenty</MenuItem> <MenuItem value={30}>Thirty</MenuItem> </Select> <FormHelperText>Auto width</FormHelperText> </FormControl> </form> ); } } SimpleSelect.propTypes = { classes: PropTypes.object.isRequired, }; export default withStyles(styles)(SimpleSelect);