UNPKG

@findify/react-components

Version:
26 lines (25 loc) 1.1 kB
/** * @module components/CheckboxFacet */ import { useCallback } from 'react'; import Button from 'components/Button'; import Text from 'components/Text'; import Icon from 'components/Icon'; import styles from 'components/common/Checkbox/styles.css'; import cx from 'classnames'; export default ({ item, theme = styles, style, onItemClick, content, config, isMobile, }) => { const onClick = useCallback((evt) => { item.toggle(evt); onItemClick && onItemClick(evt); }, [item, onItemClick]); const isSelected = item.get('selected'); return (<Button style={style} role="checkbox" aria-checked={isSelected ? 'true' : 'false'} tabIndex={0} onClick={onClick} className={cx(theme.item, isMobile && theme.mobile)}> <Icon className={theme.icon} name={isSelected ? 'CheckboxFilled' : 'CheckboxEmpty'} title={isSelected ? 'Selected' : 'Not selected'}/> <Text primary lowercase className={theme.content} bold={isSelected}> {content({ item, config })} </Text> <Text secondary uppercase> ({item.get('count')}) </Text> </Button>); };