/* * Copyright (C) 2020-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/) * * This is free software, licensed under the GNU General Public License v3. * See /LICENSE for more information. */ import React from "react"; import PropTypes from "prop-types"; import { useUID } from "react-uid"; import Radio from "./Radio"; RadioSet.propTypes = { /** Name attribute of the input HTML tag. */ name: PropTypes.string.isRequired, /** RadioSet label . */ label: PropTypes.string, /** Choices . */ choices: PropTypes.arrayOf( PropTypes.shape({ /** Choice label . */ label: PropTypes.oneOfType([ PropTypes.string, PropTypes.element, PropTypes.node, PropTypes.arrayOf(PropTypes.node), ]).isRequired, /** Choice value . */ value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]) .isRequired, }) ).isRequired, /** Initial value . */ value: PropTypes.string, /** Help text message . */ helpText: PropTypes.string, inline: PropTypes.bool, }; function RadioSet({ name, label, choices, value, helpText, inline, ...props }) { const uid = useUID(); const radios = choices.map((choice, key) => { const id = `${name}-${key}`; return ( ); }); return (
{label && ( )} {radios} {helpText && (
{helpText}
)}
); } export default RadioSet;