Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 1x 5x 5x 5x 5x | const handlersFactory = ({disabled = false, onSelect, selectKey = 'Enter', selected, setInnerSelected, value}) => { const handleClick = ev => { if (!disabled) { onSelect(ev, {value, selected: !selected}) setInnerSelected(!selected) } } const handleKeyDown = ev => { const {key} = ev const isStringSelectKey = typeof selectKey === 'string' const isPressedSelectKey = isStringSelectKey ? key === selectKey : selectKey.includes(key) if (isPressedSelectKey && !disabled) { ev.preventDefault() onSelect(ev, {value, selected: !selected}) setInnerSelected(!selected) } } const handleFocus = ev => { ev.preventDefault() ev.stopPropagation() } return {handleClick, handleKeyDown, handleFocus} } export default handlersFactory |