vision-agent / components /DatePicker.tsx
MingruiZhang's picture
feat: Internal page default filter out examples (#116)
1c2515f unverified
'use client';
import { useState } from 'react';
import { format } from 'date-fns';
import { Calendar as CalendarIcon } from 'lucide-react';
import { cn } from '@/lib/utils';
import { Button } from '@/components/ui/Button';
import { Calendar } from '@/components/ui/calendar';
import {
Popover,
PopoverContent,
PopoverTrigger,
} from '@/components/ui/popover';
type DatePickerProps = {
date: string;
setDate: (date: string) => void;
};
export function DatePicker({ date, setDate }: DatePickerProps) {
const [calendarOpen, setCalendarOpen] = useState(false);
return (
<Popover open={calendarOpen} onOpenChange={setCalendarOpen}>
<PopoverTrigger asChild>
<Button
variant={'outline'}
className={cn(
'w-[280px] justify-start text-left font-normal',
!date && 'text-muted-foreground',
)}
>
<CalendarIcon className="mr-2 size-4" />
{date ? format(date, 'PPP') : <span>Pick a date</span>}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0">
<Calendar
mode="single"
selected={new Date(date)}
onSelect={newDate => {
if (newDate) {
setDate(format(newDate, 'yyyy-MM-dd'));
setCalendarOpen(false);
}
}}
initialFocus
/>
</PopoverContent>
</Popover>
);
}