shelving
Version:
Toolkit for using data in JavaScript.
17 lines (16 loc) • 994 B
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { formatValue } from "../../util/format.js";
import { Flex } from "../style/Flex.js";
import { RadioInput } from "./RadioInput.js";
/**
* Output a list of `<RadioInput>` elements for each item in an array.
* - The items can be any type, and can be formatted for output through an optional `formatter()` function.
* - A `placeholder` option is shown at the bottom if `required=false`.
*/
export function ArrayRadioInputs({ value, onValue, required = false, items, formatter = formatValue, ...props }) {
return (_jsxs(Flex, { column: true, children: [items.map((v, i) => {
return (_jsx(RadioInput //
, { value: value === v, onValue: () => onValue(v), required: required, ...props, children: formatter(v) }, i.toString()));
}), !required ? (_jsx(RadioInput //
, { value: !value, onValue: () => onValue(undefined), required: required, ...props })) : null] }));
}