Skip to content

Date Range Filter

beta

The DateRangeFilter is a new filter field type (FilterFieldTypes.DateRange) in the filters system. It presents a dropdown with grouped preset date ranges (Recommended, Relative dates, Calendar months) and a “Select custom range” option. Clicking “Select custom range” reveals a two-month calendar alongside the preset list for picking an arbitrary date range.

Usage

import { FilterField, FilterFieldTypes } from '@harnessio/ui/components'
import type { DateRangeValue } from '@harnessio/ui/components'
const MyComponent = () => {
const [value, setValue] = useState<DateRangeValue | undefined>();
return (
<FilterField
filterOption={{
type: FilterFieldTypes.DateRange,
label: 'Timeframe',
value: 'timeframe',
}}
removeFilter={() => {}}
shouldOpenFilter={false}
onChange={(val) => setValue(val)}
value={value}
/>
);
};

With Custom Presets

You can provide your own set of presets via filterFieldConfig.presets. Each preset defines a label, a unique value, a group for visual grouping, and a getRange function that returns { from: Date, to: Date }.

Without Custom Range

Set showCustomRange: false to hide the “Select custom range” option and only show presets.

API Reference

FilterFieldTypes.DateRange

Use FilterFieldTypes.DateRange as the type in a FilterOptionConfig to render a date range filter.

Prop
Required
Default
Type
typetrueFilterFieldTypes.DateRange
labeltruestring
valuetruestring
filterFieldConfig.presetsfalseDateRangePreset[]
filterFieldConfig.showCustomRangefalsetrueboolean

DateRangeValue

The value emitted by the filter when a range is selected.

Prop
Required
Default
Type
fromtrueDate
totrueDate
presetfalsestring

DateRangePreset

Defines a preset date range option.

Prop
Required
Default
Type
labeltruestring
valuetruestring
getRangetrue() => { from: Date; to: Date }
grouptrue'recommended' | 'relative' | 'calendar'