24 lines
827 B
React
24 lines
827 B
React
import React from 'react';
|
|
import './RadioCard.css';
|
|
|
|
export default function RadioCard({ options = [], value, cols = 3, onChange }) {
|
|
return (
|
|
<div className="aa-radiocard-grid" style={{ gridTemplateColumns: `repeat(${cols}, 1fr)` }}>
|
|
{options.map((o, i) => (
|
|
<div
|
|
key={i}
|
|
className={'aa-radiocard' + (value === o.value ? ' is-selected' : '')}
|
|
onClick={() => onChange && onChange(o.value)}
|
|
>
|
|
{o.icon ? <div className="aa-radiocard-icon">{o.icon}</div> : null}
|
|
<div className="aa-radiocard-body">
|
|
<div className="aa-radiocard-title">{o.label}</div>
|
|
{o.desc ? <div className="aa-radiocard-desc">{o.desc}</div> : null}
|
|
</div>
|
|
<div className="aa-radiocard-mark" />
|
|
</div>
|
|
))}
|
|
</div>
|
|
);
|
|
}
|