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
|