InputSearch
El componente InputSearch permite realizar búsquedas de manera eficiente y personalizable. Incluye soporte para resultados de búsqueda, filtros por pestañas y opciones de carga adicional.
Ejemplo
Importación
Para importar el componente InputSearch, se puede hacer desde fenextjs
import { InputSearch } from "fenextjs";Parámetros
| Parámetro | Tipo | Requerido | Default | Descripcion |
|---|---|---|---|---|
| classNameSearch | string | no | '' | Clase CSS para personalizar el contenedor del campo de búsqueda. |
| classNameSearchBg | string | no | '' | Clase CSS para el fondo del campo de búsqueda. |
| classNameSearchContentResult | string | no | '' | Clase CSS para el contenedor de resultados de búsqueda. |
| classNameSearchResult | string | no | '' | Clase CSS para los elementos de resultado de búsqueda. |
| placeholder | string | no | 'Search' | Texto que se muestra cuando el campo de búsqueda está vacío. |
| icon | ReactNode | no | <SVGSearch /> | Ícono que se muestra en el campo de búsqueda. |
| iconClear | ReactNode | no | <Close /> | Ícono que se muestra para limpiar la búsqueda. |
| onSearch | (value: string, tabFilter?: InputSearchTabFilterProps[]) => Promise<InputSearchResultProps[]> | no | undefined | Función que se llama al realizar una búsqueda, pasando el valor y los filtros de pestañas. |
| onEnterSearch | (value: string) => void | no | undefined | Función que se ejecuta al presionar Enter en el campo de búsqueda. |
| onClearSearch | () => void | no | undefined | Función que se ejecuta al limpiar el campo de búsqueda. |
| onClickSearch | (result: InputSearchResultProps) => void | no | undefined | Función que se ejecuta al hacer click en un resultado de búsqueda. |
| useResult | boolean | no | false | Indica si se debe mostrar la lista de resultados de búsqueda. |
| useLoadMore | boolean | no | true | Indica si se debe permitir cargar más resultados. |
| ButtonLoadMoreProps | Omit<ButtonProps, 'onClick'> | no | { children: 'Load More' } | Propiedades para el botón de carga adicional. |
| resultList | InputSearchResultProps[] | no | undefined | Lista de resultados de búsqueda que se muestran. |
| resultEmpty | ReactNode | no | <Title tag='h4'>Not Results</Title> | Contenido que se muestra cuando no hay resultados de búsqueda. |
| resultPreSearch | ReactNode | no | <Title tag='h4'>Search</Title> | Contenido que se muestra antes de realizar una búsqueda. |
| listTabFilter | InputSearchTabFilterProps[] | no | [] | Lista de filtros por pestañas que se pueden aplicar a la búsqueda. |
| defaultTabFilterSelected | InputSearchTabFilterProps[] | no | [] | Lista de filtros por pestañas seleccionados por defecto. |
| onChangeTabFilterSelected | (selected: InputSearchTabFilterProps[]) => void | no | undefined | Función que se ejecuta al cambiar los filtros por pestañas seleccionados. |
Storybook
Para ver el storybook del componente lo puede hacer con este link (opens in a new tab)
Usos
- Búsqueda básica
<InputSearch onSearch={async (value) => await fetchResults(value)} />- Búsqueda con carga de más resultados
<InputSearch
onSearch={async (value) => await fetchResults(value)}
useLoadMore={true}
/>- Búsqueda con filtros por pestañas
<InputSearch
onSearch={async (value) => await fetchResults(value)}
useTabFilter={true}
listTabFilter={[{ id: "tab1", text: "Tab 1" }]}
/>