filter
Date

FilterDate

El componente FilterDate permite filtrar datos por fecha o por rango de fechas. Ofrece opciones configurables para seleccionar fechas, personalizar el formato, y manejar acciones mediante hooks como useData y useDate.

Ejemplo

Importación

Para importar el componente FilterDate, se puede hacer desde fenextjs

import { FilterDate } from "fenextjs";

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
defaultValueFilterDateDataPropsno{}Valor inicial del filtro de fecha, incluyendo tipo, fecha o rango de fechas.
onChange(data: FilterDateDataProps) => voidnoundefinedFunción que se ejecuta cuando cambia el valor del filtro de fecha.
formatDateOptionFenextjsDateFormatOptionsno{}Opciones de formato para mostrar las fechas seleccionadas.
textValuestringno'Filtrar por fecha:'Texto principal que describe el propósito del filtro.
textFilterByDatestringno'Filtar por fecha'Texto que se muestra para la opción de filtro por fecha.
textFilterByRangestringno'Filtar por rango'Texto que se muestra para la opción de filtro por rango de fechas.
textBtnTodaystringno'Hoy'Texto del botón para seleccionar la fecha actual.
textBtnWeekstringno'Esta Semana'Texto del botón para seleccionar la semana actual.
iconTrashReactNodeno<SvgTrash />Icono que se muestra como indicador para eliminar filtros.
extraListBtn(data: ReturnType<typeof useData<FilterDateDataProps>>) => ReactNode[]no[]Lista de botones personalizados que se pueden agregar dinámicamente.
nMonthShownumberno2Número de meses visibles en el calendario.
classNamestringno''Clase CSS para personalizar el contenedor principal.
classNameDropDownDropDownClassPropsno{}Clase CSS para personalizar el menú desplegable.
classNameCollapseInputCalendarClassPropsno{}Clase CSS para personalizar el calendario desplegable.
classNameBtnTodayButtonClassPropsno{}Clase CSS para personalizar el botón 'Hoy'.
classNameBtnWeekButtonClassPropsno{}Clase CSS para personalizar el botón 'Esta Semana'.
classNameTextValuePick<TextProps, 'tag' | 'className'>no{}Clase CSS para personalizar el texto principal.
classNameTextSwichPick<TextProps, 'tag' | 'className'>no{}Clase CSS para personalizar los textos de los interruptores.
classNameInputSwichInputSwichClassPropsno{}Clase CSS para personalizar los interruptores.
classNameContentTopstringno''Clase CSS para personalizar el contenedor superior del contenido.
classNameLabelSwichstringno''Clase CSS para personalizar las etiquetas de los interruptores.
classNameClearstringno''Clase CSS para personalizar el icono de limpiar filtros.

Storybook

Para ver el storybook del componente lo puede hacer con este link (opens in a new tab)

Usos

  • Básico
<FilterDate />
  • Con valores iniciales
<FilterDate
  defaultValue={{ type: "range", dateRange: [new Date(), new Date()] }}
/>
  • Con botón extra
<FilterDate extraListBtn={[({ data }) => <button>Extra</button>]} />
  • Con formato personalizado
<FilterDate
  formatDateOption={{
    weekday: "long",
    year: "numeric",
    month: "long",
    day: "numeric",
  }}
/>