Files
aurora-admin/frameworks/CheckboxCard.jsx
T

30 lines
1011 B
React

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="aa-checkcard-grid" style={{ gridTemplateColumns: `repeat(${cols}, 1fr)` }}>
{options.map((o, i) => (
<div
key={i}
className={'aa-checkcard' + (value.indexOf(o.value) >= 0 ? ' is-selected' : '')}
onClick={() => toggle(o.value)}
>
{o.icon ? <div className="aa-checkcard-icon">{o.icon}</div> : null}
<div className="aa-checkcard-body">
<div className="aa-checkcard-title">{o.label}</div>
{o.desc ? <div className="aa-checkcard-desc">{o.desc}</div> : null}
</div>
<div className="aa-checkcard-mark" />
</div>
))}
</div>
);
}