Command Palette

Search for a command to run...

Docs
Dropdown Range Date Picker

Dropdown Range Date Picker

A range date picker with year/month dropdowns in a popover interface

Loading...

Installation

Usage

import { DropdownRangeDatePicker } from "@/components/ruixen/dropdown-range-date-picker";
import { useState } from "react";
 
export default function App() {
  const [range, setRange] = useState<{ from?: Date; to?: Date }>();
 
  return (
    <DropdownRangeDatePicker
      selectedRange={range}
      onChange={setRange}
      minYear={2000}
      maxYear={2030}
      monthFormat="MMM"
      label="Select date range"
      clearable
    />
  );
}

Props

PropTypeDefaultDescription
selectedRange{ from?: Date; to?: Date }-Selected date range
onChange(range: { from?: Date; to?: Date } | undefined) => void-Callback when range changes
minYearnumber1900Minimum selectable year
maxYearnumbercurrent + 10Maximum selectable year
monthFormatstring"MMMM"Month dropdown format
labelstring"Pick a date range"Button label
classNamestring-Button CSS classes
calendarClassNamestring-Calendar CSS classes
dropdownClassNamestring-Popover CSS classes
clearablebooleantrueShow clear button

Features

  • Popover Interface: Clean, non-intrusive date selection
  • Year/Month Dropdowns: Quick navigation to any period
  • Range Selection: Visual feedback for date ranges
  • Clear Function: Reset selection with one click
  • Apply Button: Confirm selection before closing
  • Compact Design: Minimal space usage in forms

Range Display

The button shows the selected range in a readable format:

// Single date selected
"April 15, 2024";
 
// Range selected
"April 15, 2024 - April 20, 2024";
 
// No selection
"Pick a date range";

Use Cases

  • Report Filtering: Select date ranges for reports
  • Booking Systems: Choose check-in/check-out dates
  • Analytics: Filter data by date range
  • Event Planning: Set event duration periods