InputRadio
El componente InputRadio permite renderizar un conjunto de radios personalizados, que pueden incluir etiquetas, íconos y diversos estilos basados en su estado (activo/inactivo). Este componente es útil para permitir al usuario seleccionar una opción de un grupo predefinido.
Ejemplo
Importación
Para importar el componente InputRadio, se puede hacer desde fenextjs
import { InputRadio } from "fenextjs";Parámetros
| Parámetro | Tipo | Requerido | Default | Descripcion |
|---|---|---|---|---|
| items | InputRadioItemProps<T>[] | no | [] | Lista de elementos del radio. Cada elemento contiene un id, etiqueta y datos opcionales. |
| labelPosition | 'right' | 'left' | no | 'right' | Posición de la etiqueta en relación con el radio (a la derecha o izquierda). |
| name | string | no | '' | El atributo 'name' del elemento radio. Útil para agrupar radios con el mismo nombre. |
| onChange | (e: InputRadioItemProps<T>) => void | no | (e) => env_log(e, { name: 'input radio onchange' }) | Función que se ejecuta al cambiar el estado del radio. Recibe el elemento seleccionado como parámetro. |
| defaultValue | InputRadioItemProps<T> | no | undefined | Valor por defecto del radio al renderizarlo por primera vez. |
| value | InputRadioItemProps<T> | no | undefined | El valor actual del radio. Controla qué elemento está seleccionado. |
| disabled | boolean | no | false | Indica si el grupo de radios está deshabilitado, evitando que los usuarios seleccionen una opción. |
| classNameContent | string | no | '' | Clase CSS para personalizar el contenedor general del radio. |
| classNameLabel | string | no | '' | Clase CSS para la etiqueta del radio. |
| classNameLabelActive | string | no | '' | Clase CSS para la etiqueta cuando el radio está activo. |
| classNameLabelInactive | string | no | '' | Clase CSS para la etiqueta cuando el radio está inactivo. |
| classNameText | string | no | '' | Clase CSS para el texto junto al radio. |
| classNameContentRadio | string | no | '' | Clase CSS para el contenedor del radio. |
| classNameContentRadioActive | string | no | '' | Clase CSS para el contenedor del radio cuando está activo. |
| classNameContentRadioInactive | string | no | '' | Clase CSS para el contenedor del radio cuando está inactivo. |
| classNameRadio | string | no | '' | Clase CSS para el elemento input radio. |
| classNameRadioActive | string | no | '' | Clase CSS para el elemento input radio cuando está activo. |
| classNameRadioInactive | string | no | '' | Clase CSS para el elemento input radio cuando está inactivo. |
| icon | ReactNode | no | <Check /> | Icono que se muestra junto al radio cuando está activo. |
Storybook
Para ver el storybook del componente lo puede hacer con este link (opens in a new tab)
Usos
- Básico
<InputRadio
items={[
{ id: "1", label: "Opción 1" },
{ id: "2", label: "Opción 2" },
]}
/>- Radio con icono
<InputRadio
items={[
{ id: "1", label: "Opción 1" },
{ id: "2", label: "Opción 2" },
]}
icon={<Check />}
/>- Radio deshabilitado
<InputRadio items={[{ id: "1", label: "Opción 1" }]} disabled={true} />- Radio con onChange
<InputRadio
items={[{ id: "1", label: "Opción 1" }]}
onChange={(item) => console.log(item)}
/>