function ListGroup()

in initializer-page/src/components/common/builder/list/ListGroup.js [7:67]


function ListGroup({
  group,
  items,
  itemsSelected,
  isClose,
  add,
  remove,
  toggle,
}) {
  const toggleGroup = event => {
    event.preventDefault()
    toggle(group)
  }
  const onKeyDown = event => {
    const keyPressed = event.key
    if (keyPressed === 'Enter' || keyPressed === ' ') {
      toggleGroup(event)
    }
  }
  const isItemSelected = item => {
    return !!itemsSelected.find(o => o === item.id)
  }
  return (
    <div className='group'>
      <div className='group-title'>
        <a
          href='/'
          onClick={toggleGroup}
          className={!isClose ? 'toggleGroupItems' : ''}
          tabIndex={0}
          onKeyDown={onKeyDown}
        >
          <IconChevronRight />
          {group}
        </a>
      </div>
      {!isClose && (
        <div className='group-items' key={`links${group}`}>
          {items.map(item => (
            <ListItem
              key={item.id}
              id={item.id}
              name={item.name}
              description={item.description}
              valid={item.valid}
              message={item.message}
              selected={isItemSelected(item)}
              onChange={value => {
                if (value) {
                  add(item.id)
                } else {
                  remove(item.id)
                }
              }}
            />
          ))}
        </div>
      )}
    </div>
  )
}