All files / molecule/dropdownOption/src/handlersFactory index.js

29.41% Statements 5/17
0% Branches 0/10
25% Functions 1/4
29.41% Lines 5/17

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 251x 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