InputSelect
El componente InputSelect proporciona una interfaz interactiva que permite a los usuarios seleccionar opciones de una lista, con la posibilidad de búsqueda y personalización avanzada.
Ejemplo
Importación
Para importar el componente InputSelect, se puede hacer desde fenextjs
import { InputSelect } from "fenextjs";
Parámetros
Parámetro | Tipo | Requerido | Default | Descripcion |
---|---|---|---|---|
options | InputSelectItemOptionBaseProps[] | sí | Lista de opciones disponibles en el select. | |
filterOptions | function | no | undefined | Función personalizada para filtrar las opciones del select. |
showOptions | 'hover' | 'focus' | 'focus-hover' | no | 'focus' | Define cuándo mostrar las opciones del select. |
hiddenOptions | 'not-hover' | 'not-focus' | 'not-focus-hover' | no | 'not-hover' | Define cuándo ocultar las opciones del select. |
defaultValue | InputSelectItemOptionBaseProps | no | undefined | Valor por defecto seleccionado en el select. |
typeSelect | 'div' | 'select' | 'datalist' | no | 'div' | Define el tipo de elemento select. |
typeSelectStyle | 'normal' | 'normal-out' | 'box' | 'list' | 'checkbox' | no | 'normal' | Estilos aplicados al componente select. |
useSwichtypeSelectStyle | boolean | no | false | Permite alternar entre estilos de tipo select. |
useTOption | boolean | no | false | Indica si se debe usar una opción traducida (useTOption). |
value | InputSelectItemOptionBaseProps | no | Valor actual del select. | |
noResult | InputSelectItemOptionBaseProps | no | Valor que se muestra cuando no hay resultados en la búsqueda. | |
loaderOption | InputSelectItemOptionBaseProps | no | Opción que se muestra mientras se cargan las opciones. | |
selected | InputSelectItemOptionBaseProps | no | Opción actualmente seleccionada. | |
create | InputSelectItemOptionBaseProps | no | Opción que permite crear un nuevo valor en el select. | |
onCreate | function | no | Función que se ejecuta cuando se crea un nuevo valor. | |
isSelectClearText | boolean | no | false | Indica si se puede limpiar el texto del select. |
isSelectChangeText | boolean | no | true | Indica si se puede cambiar el texto del select. |
onChange | function | no | Función que se ejecuta cuando cambia el valor seleccionado. | |
onChangeData | function | no | Función que se ejecuta cuando cambia el valor de los datos seleccionados. | |
onChangeText | function | no | Función que se ejecuta cuando cambia el texto del select. | |
onChangeValidate | function | no | Función personalizada de validación que se ejecuta cuando cambia el valor del select. | |
iconCloseMovil | ReactNode | no | <Cancel /> | Ícono que se muestra para cerrar el select en vista móvil. |
clearContent | ReactNode | no | 'Clear' | Contenido que se muestra para limpiar la selección. |
searchById | boolean | no | false | Indica si la búsqueda se realiza por ID. |
iconSearch | ReactNode | no | <SVGSearch /> | Ícono de búsqueda que se muestra en el select. |
changeByFirstOptionInOnBlur | boolean | no | false | Cambia al valor de la primera opción cuando el input pierde el foco. |
maxLengthShowOptions | number | no | 20 | Cantidad máxima de opciones que se muestran. |
nItems | number | no | Número de ítems que se muestran en el select. | |
showOptionIconImg | boolean | no | true | Muestra íconos de imagen junto a las opciones del select. |
validatorData | FenextjsValidatorClass | no | Clase de validación utilizada para validar los datos de entrada del select. | |
forceShowOptionOnLoad | boolean | no | false | Forza a mostrar las opciones al cargar el componente. |
iconDelete | ReactNode | no | <Trash /> | Ícono personalizado para eliminar una opción. |
Storybook
Para ver el storybook del componente lo puede hacer con este link (opens in a new tab)
Usos
- Básico
<InputSelect options={options} />
- InputSelect con filtro de opciones
<InputSelect options={options} filterOptions={filterOptions} />
- InputSelect con icono de búsqueda
<InputSelect options={options} iconSearch={<SVGSearch />} />
- InputSelect con opción personalizada de crear
<InputSelect
options={options}
onCreate={() => console.log("Crear nueva opción")}
/>