react-conventions
Version:
An open source set of React components that implement Ambassador's Design and UX patterns.
40 lines (33 loc) • 1.17 kB
JavaScript
import React from 'react'
import Checkbox from 'react-conventions/lib/Checkbox'
import Button from 'react-conventions/lib/Button'
import Icon from 'react-conventions/lib/Icon'
import style from './style.scss'
class ExampleCheckboxToggle extends React.Component {
constructor(props) {
super(props)
}
state = {
iconName: 'icon-minus-2',
checked: true
}
toggleIcon = () => {
const iconName = this.state.iconName === 'icon-minus-2' ? 'icon-check-1-1' : 'icon-minus-2'
this.setState({ iconName: iconName })
}
handleChange = (event) => {
this.setState({ checked: event.target.checked })
}
render() {
return(
<div>
<Button onClick={this.toggleIcon} optClass={style.toggle}>
<span>Use</span>
{this.state.iconName === 'icon-minus-2' ? <Icon name='icon-check-1-1' fill='#3C97D3' height='14' width='14' /> : <Icon name='icon-minus-2' fill='#3C97D3' height='14' width='14' /> }
</Button>
<Checkbox label="Default checkbox" value={this.state.checked} changeCallback={this.handleChange} iconName={this.state.iconName} />
</div>
)
}
}
export default ExampleCheckboxToggle