import React from 'react';
import './CheckboxCard.css';

export default function CheckboxCard({ options = [], value = [], cols = 3, onChange }) {
  function toggle(v) {
    const arr = value.slice();
    const idx = arr.indexOf(v);
    if (idx >= 0) arr.splice(idx, 1); else arr.push(v);
    onChange && onChange(arr);
  }
  return (
    <div className="kole-checkcard-grid" style={{ gridTemplateColumns: `repeat(${cols}, 1fr)` }}>
      {options.map((o, i) => (
        <div
          key={i}
          className={'kole-checkcard' + (value.indexOf(o.value) >= 0 ? ' is-selected' : '')}
          onClick={() => toggle(o.value)}
        >
          {o.icon ? <div className="kole-checkcard-icon">{o.icon}</div> : null}
          <div className="kole-checkcard-body">
            <div className="kole-checkcard-title">{o.label}</div>
            {o.desc ? <div className="kole-checkcard-desc">{o.desc}</div> : null}
          </div>
          <div className="kole-checkcard-mark" />
        </div>
      ))}
    </div>
  );
}
