"use client" import * as React from "react" import { CalendarIcon } from "@radix-ui/react-icons" import { addDays, format } from "date-fns" import { DateRange } from "react-day-picker" import { cn } from "../../design-lib/utils" import Stack from "../molecules/stack" import { Button } from "./button" import { Calendar } from "./calendar" import { Popover, PopoverContent, PopoverTrigger } from "./popover" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "./select" export function DatePicker({ range, preset, onPickDate, placeholder, }: { range?: boolean preset?: { placeholder?: string datas: { value: number label: string }[] } onPickDate?: (date: Date | DateRange | undefined) => void placeholder?: string }) { const [rangeDate, setRangeDate] = React.useState({ from: new Date(2022, 0, 20), to: addDays(new Date(2022, 0, 20), 20), }) const [date, setDate] = React.useState() const [presetDate, setPresetDate] = React.useState() if (range && preset) { throw new Error("DatePicker cannot have both range and preset props") } return ( {range ? ( { setRangeDate(range) onPickDate?.(range) }} numberOfMonths={2} /> ) : preset ? ( { setPresetDate(preset) onPickDate?.(preset) }} /> ) : ( { setDate(date) onPickDate?.(date) }} initialFocus /> )} ) }