"use client"; import * as React from "react"; import { format, subDays } from "date-fns"; import type { DateRange } from "react-day-picker"; import { Button } from "@/components/ui/button"; import { Calendar } from "@/components/ui/calendar"; import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover"; interface DateRangePickerProps { value?: DateRange; onChange?: (value: DateRange | undefined) => void; } export function DateRangePicker({ value, onChange }: DateRangePickerProps) { const [open, setOpen] = React.useState(false); const [internalDateRange, setInternalDateRange] = React.useState(() => { const to = new Date(); const from = subDays(to, 29); return { from, to }; }); const dateRange = value ?? internalDateRange; let dateRangeLabel = "Select date"; if (dateRange?.from) { dateRangeLabel = format(dateRange.from, "d MMM yyyy"); } if (dateRange?.from && dateRange.to) { dateRangeLabel = `${format(dateRange.from, "d MMM yyyy")} - ${format(dateRange.to, "d MMM yyyy")}`; } const handleDateChange = (nextValue: DateRange | undefined) => { if (!value) { setInternalDateRange(nextValue); } onChange?.(nextValue); }; return ( ); }