UNPKG

materialuiupgraded

Version:

Material-UI's workspace package

69 lines (59 loc) 1.93 kB
import React from 'react'; import PropTypes from 'prop-types'; import { withStyles } from '@material-ui/core/styles'; import List from '@material-ui/core/List'; import ListItem from '@material-ui/core/ListItem'; import ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'; import ListItemText from '@material-ui/core/ListItemText'; import Checkbox from '@material-ui/core/Checkbox'; import Avatar from '@material-ui/core/Avatar'; const styles = theme => ({ root: { width: '100%', maxWidth: 360, backgroundColor: theme.palette.background.paper, }, }); class CheckboxListSecondary extends React.Component { state = { checked: [1], }; handleToggle = value => () => { const { checked } = this.state; const currentIndex = checked.indexOf(value); const newChecked = [...checked]; if (currentIndex === -1) { newChecked.push(value); } else { newChecked.splice(currentIndex, 1); } this.setState({ checked: newChecked, }); }; render() { const { classes } = this.props; return ( <div className={classes.root}> <List> {[0, 1, 2, 3].map(value => ( <ListItem key={value} dense button className={classes.listItem}> <Avatar alt="Remy Sharp" src="/static/images/remy.jpg" /> <ListItemText primary={`Line item ${value + 1}`} /> <ListItemSecondaryAction> <Checkbox onChange={this.handleToggle(value)} checked={this.state.checked.indexOf(value) !== -1} /> </ListItemSecondaryAction> </ListItem> ))} </List> </div> ); } } CheckboxListSecondary.propTypes = { classes: PropTypes.object.isRequired, }; export default withStyles(styles)(CheckboxListSecondary);