@eviljs/reactx
Version:
Awesome React UI Widgets
20 lines (19 loc) • 1.34 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { createElement as _createElement } from "react";
import { classes } from '@eviljs/react/classes';
import { compute } from '@eviljs/std/fn-compute';
import { useId } from 'react';
export function RadioGroup(props) {
const { className, items, selected, onChange, ...otherProps } = props;
const id = useId();
return (_jsx("div", { ...otherProps, className: classes('RadioGroup-e37b', className), children: items?.map((it, idx) => {
const labelProps = compute(it.labelProps, it.value, idx);
const inputProps = compute(it.inputProps, it.value, idx);
const spanProps = compute(it.spanProps, it.value, idx);
return (_createElement("label", { ...labelProps, key: idx, className: classes('item-bf74', labelProps?.className), "data-selected": selected === it.value },
_jsx("input", { ...inputProps, className: classes('radio-1370', inputProps?.className), type: "radio", name: `radio-group-${id}-${idx}`, value: it.value, checked: selected === it.value,
// readOnly={true}
onChange: event => onChange?.(event.target.value, idx) }),
_jsx("span", { ...spanProps, className: classes('label-b0ad', spanProps?.className), children: it.label })));
}) }));
}