MDK Logo

DateRangePicker

Date-range selection component with preset shortcuts (last 7/14/30/90 days) and a modal interface. Controlled via `selected` / `onSelect`.

Date-range selection component with preset shortcuts (last 7/14/30/90 days) and a modal interface. Controlled via selected / onSelect.

import { DateRangePicker } from "@tetherto/mdk-react-devkit";
PropStatusTypeDefaultDescription
selectedOptionalDateRange | undefinedSelected date range
onSelectOptional((range: DateRange | undefined) => void) | undefinedCallback when date range changes
placeholderOptionalstring | undefined"Pick a date range"Placeholder text when no range is selected
dateFormatOptionalstring | undefined"MM/dd/yyyy"Date format for display
disabledOptional(boolean & (Matcher | Matcher[])) | undefinedfalseWhether the picker is disabled
showPresetsOptionalboolean | undefinedtrueWhether to show preset buttons
presetsOptionalPresetItem[] | undefinedCustom preset items
allowFutureDatesOptionalboolean | undefinedfalseWhether to allow future dates
triggerClassNameOptionalstring | undefinedCustom className for the trigger button
calendarClassNameOptionalstring | undefinedCustom className for the calendar
modalClassNameOptionalstring | undefinedCustom className for the modal

Usage

Single-date and range-date pickers built on react-day-picker. The range picker includes presets and a modal-style popover with Clear / Apply actions.

DatePicker props

PropTypeRequiredDefaultDescription
selectedDatenoSelected date.
onSelect(date?: Date) => voidnoSetter.
placeholderstringno"Pick a date"Trigger button placeholder.
dateFormatstringno"MM/dd/yyyy"date-fns format string.
disabledbooleannofalseDisable the trigger.
triggerClassNamestringnoClass names on the trigger button.
calendarClassNamestringnoClass names on the day-picker.

DateRangePicker props

Adds showPresets, presets: PresetItem[], allowFutureDates, and modalClassName. selected / onSelect use DateRange.

Data contracts

type DateRange = { from: Date | undefined; to?: Date | undefined };
type PresetItem = { label: string; value: DateRange };

Example

/** * Runnable example for DatePicker and DateRangePicker. */import { useState } from 'react'import type { DateRange } from '@tetherto/mdk-react-devkit'import { DatePicker, DateRangePicker } from '@tetherto/mdk-react-devkit'export const DatePickerExample = () => {  const [date, setDate] = useState<Date>()  const [range, setRange] = useState<DateRange>()  return (    <div className="mdk-example-row">      <DatePicker selected={date} onSelect={setDate} />      <DateRangePicker selected={range} onSelect={setRange} showPresets />    </div>  )}